Разработчики сторонних приложений и сервисов могут использовать мощные функции воспроизведения видео в 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 | Название сериала (только эпизоды) |