API для сторонних приложений и сервисов

  • Обновлено

Разработчики сторонних приложений и сервисов могут использовать мощные функции воспроизведения видео в Infuse для просмотра, добавления в закладки, скачивания и отслеживания статуса воспроизведения с помощью гибких схем URL. Также появилась поддержка x-callback , которая позволяет вернуться в другое приложение после выполнения действия.

Доступные платформы: iPhone, iPad, Apple TV, Mac и Vision

Версия Infuse: 8.4.7 (или более поздняя)

Отправка видео в Infuse для воспроизведения

Воспроизведение одного или нескольких видео и возврат к другому приложению по завершении.

infuse://x-callback-url/play?url=https://files.firecore.com/infuse/sample-5s-360p.mp4&
position=0&
filename=Inception-2010.mp4&
sub=https://files.firecore.com/infuse/example.srt&
url=https://files.firecore.com/infuse/mov_bbb.mp4&
position=6&
filename=Mad-Men-S01-E01.mp4&
sub=https://files.firecore.com/infuse/example2.srt&
x-success=some-app://success&
x-error=some-app://error

Отчеты об успехах и ошибках

x-success

some-app://success?lastPlayedUrl=https://files.firecore.com/infuse/mov_bbb.mp4&
position=8

x-error

some-app://error?errorCode=100&
errorMessage=Unsupported%20content&
failedUrl=invalid_url1&
failedUrl=invalid_url2

Примечания

  • Поддерживает ввод одного или нескольких url
  • Параметры «Subtitle», «filename» и «position» являются необязательными
  • Указание имени файла может помочь предоставить точные метаданные при использовании одного из рекомендуемых стилей именования файлов
  • Указание значения позиции (выраженного в виде целого числа секунд) приведет к тому, что воспроизведение видео начнется или возобновится с указанной позиции
  • Все URL-адреса воспроизводятся последовательно в виде временного списка воспроизведения
  • Функция x-success вызывается не для каждого URL-адреса в списке, а только один раз — по завершении воспроизведения плейлиста или при закрытии проигрывателя. Возвращает последний URL-адрес и время (в секундах).
  • x-error вызывается один раз и возвращает неудачные URL (недействительные или с ошибками воспроизведения).

Сохранение ссылок в Infuse для воспроизведения и/или загрузки

Сохраните (закладка) один или несколько URL-адресов видео, чтобы воспроизвести их позже

infuse://x-callback-url/save?
url=https://files.firecore.com/infuse/sample-5s-360p.mp4&
filename=Inception-2010.mp4&
sub=https://files.firecore.com/infuse/example1.srt&
url=https://files.firecore.com/infuse/mov_bbb.mp4&
filename=Mad-Men-S01-E01.mp4&
sub=https://files.firecore.com/infuse/example2.srt&
download=0&
x-success=some-app://success&
x-error=some-app://error

Отчеты об успехах и ошибках

x-success

some-app://success

x-error

some-app://error?errorCode=100&
errorMessage=Unsupported%20content&
failedUrl=invalid_url1&
failedUrl=invalid_url2

Примечания

  • Поддерживает ввод одного или нескольких url
  • Параметры субтитров и имени файла являются необязательными
  • Указание имени файла может помочь предоставить точные метаданные при использовании одного из рекомендуемых стилей именования файлов
  • Параметр Download может использоваться для начала загрузки файлов для автономного воспроизведения (0= только ссылка на сохранение, 1= ссылка на сохранение и загрузка)
  • Параметр загрузки применяется ко всему запросу
  • x-success не имеет параметров
  • x-error вызывается один раз и возвращает неудачные URL (недействительные ссылки EG)

Кодировка URL

Согласно спецификации x-callback-url, все значения строк запросов должны быть url-safe или закодированы. В некоторых случаях некодированные URL могут работать, но при использовании действий с несколькими параметрами или URL с несколькими ключами вам, вероятно, придется вручную кодировать ваши URL.

Примеры

URL без кодировки

http://192.168.162.100/Movies/movie.mkv

Кодированный URL

http%3A%2F%2F192.168.162.100%2FMovies%2Fmovie.mkv

Глубокие ссылки для включения элементов библиотеки

Приложения могут напрямую ссылаться на элементы в библиотеке Infuse, используя соответствующие идентификационные номера TMDB. Примечание: Если название отсутствует в библиотеке, будет показана страница-заглушка с данными TMDB.

Ссылка на фильм

infuse://movie/{tmdb_id}

Ссылка на телесериал

infuse://series/{tmdb_id}

Ссылка на сезон телесериала

infuse://series/{tmdb_id}-{season_number}

Ссылка на эпизод телесериала

infuse://series/{tmdb_id}-{season_number}-{episode_number}

Необязательно

Добавьте параметр «play» в конец глубокой ссылки, чтобы автоматически запустить воспроизведение элемента библиотеки, на который ведет ссылка.

Пример

infuse://movie/1327819?play

Статус «В процессе воспроизведения»

Infuse может публиковать в локальной сети информацию о сервисе «Сейчас воспроизводится» в режиме «только для чтения», позволяя другим приложениям видеть, что именно воспроизводится в данный момент — независимо от источника (NAS, Plex, Jellyfin и т. д.). Это позволяет другим сторонним приложениям или сервисам получать информацию о том, что в данный момент воспроизводится в Infuse.

Примечание: эта функция по умолчанию отключена, но её можно включить в Infuse: > «Настройки» > «Воспроизведение» > «API „Сейчас воспроизводится“». Требуется Infuse версии 8.5.9 или более поздней.

Открытие

Характеристики Значение
Тип услуги _infuse-np._tcp
Домен local.
Имя экземпляра Infuse (название устройства)
Порт эфемерный — всегда считывается из записи SRV

Конечная точка

GET /nowplaying
HTTP/1.1, unencrypted, Connection: close
200 + JSON body; 400 malformed request; 404 any other method/path

Поля ответа

Поле Описание
state воспроизведение, пауза или режим ожидания (воспроизведение не ведётся)
positionSeconds Текущая позиция воспроизведения, секунды
durationSeconds Общая продолжительность, секунды
item Сведения об элементе воспроизведения; значение null, если состояние находится в режиме ожидания

Пример

{
  "state": "playing" | "paused" | "idle",
  "positionSeconds": double | null,
  "durationSeconds": double | null,
  "item": {
    "kind": "movie" | "episode",
    "tmdbID": string | null,
    "imdbID": string | null,
    "tvdbID": string | null,
    "season": int | null,
    "episode": int | null,
    "title": string | null,
    "seriesTitle": string | null
  } | null
}

Поля элемента

Поле Описание
kind фильм или серия сериала
tmdbID Идентификатор TMDB — идентификатор фильма для фильмов, идентификатор серии для эпизодов
imdbID Идентификатор IMDb (например, «tt0133093»), если имеется
tvdbID Идентификатор TVDB (при наличии)
season / episode Номера сезонов и серий (серии)
title Название; для неопознанных элементов используется имя файла
seriesTitle Название сериала (только эпизоды)
Поделиться этой статьей

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 82 из 130

Еще есть вопросы? Отправить запрос