Les développeurs d'applications et de services tiers peuvent tirer parti des puissantes fonctionnalités de lecture vidéo d'Infuse pour lire, ajouter des signets, télécharger et surveiller l'état de la lecture à l'aide de schémas d'URL flexibles. La prise en charge de x-callback est également disponible, ce qui permet de revenir à une autre application une fois qu'une action a été effectuée.
Plateformes disponibles : iPhone, iPad, Apple TV, Mac et Vision
Version d'Infuse : 8.4.7 (ou ultérieure)
Envoi de vidéos à Infuse pour lecture
Lire une ou plusieurs vidéos et revenir à une autre application une fois la lecture terminée
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://errorRapports de réussite et d'erreur
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
Notes
- Prise en charge d'entrées d'url simples ou multiples
- Les paramètres « Sous-titre », « Nom de fichier » et « Position » sont facultatifs
- La spécification d'un nom de fichier peut aider à fournir des métadonnées précises lors de l'utilisation de l'un des styles de dénomination de fichier recommandés
- Si vous indiquez une valeur de position (exprimée en nombre entier de secondes), la lecture de la vidéo commencera ou reprendra à partir de la position indiquée
- Tous les URL sont lus séquentiellement sous la forme d'une liste de lecture temporaire.
- La fonction x-success n'est pas appelée pour chaque URL de la liste, mais une seule fois, à la fin de la lecture de la liste de lecture ou à la fermeture du lecteur. Renvoie la dernière URL + la position (en secondes).
- x-error est appelé une fois et renvoie les URLs qui ont échoué (erreurs invalides ou de lecture)
Sauvegarde de liens dans Infuse pour la lecture et/ou le téléchargement
Enregistrer (signet) une ou plusieurs URL vidéo pour les lire plus tard
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
Rapports de réussite et d'erreur
x-success
some-app://success
x-error
some-app://error?errorCode=100& errorMessage=Unsupported%20content& failedUrl=invalid_url1& failedUrl=invalid_url2
Notes
- Prise en charge d'entrées d'url simples ou multiples
- Les paramètres sous-titre et nom de fichier sont facultatifs.
- La spécification d'un nom de fichier peut aider à fournir des métadonnées précises lors de l'utilisation de l'un des styles de dénomination de fichier recommandés
- Le paramètre de téléchargement peut être utilisé pour commencer à télécharger des fichiers pour une lecture hors ligne (0=lien de sauvegarde uniquement, 1=lien de sauvegarde et téléchargement).
- Le paramètre de téléchargement s'applique à l'ensemble de la demande
- x-success n'a pas de paramètres
- x-error est appelé une fois et renvoie les URL qui ont échoué (liens invalides EG)
Codage de l'URL
Conformément à la spécification x-callback-url, toutes les valeurs des chaînes de requête doivent être sûres ou codées. Les URL non codées peuvent fonctionner dans certains cas, mais lorsque vous utilisez des actions avec des paramètres multiples ou des URL avec des clés multiples, vous devrez probablement coder manuellement vos URL.
Exemples
URL non codé
http://192.168.162.100/Movies/movie.mkvURL codé
http%3A%2F%2F192.168.162.100%2FMovies%2Fmovie.mkvDes liens profonds pour enrichir les documents de la bibliothèque
Les applications peuvent renvoyer directement aux éléments de la bibliothèque Infuse en utilisant les numéros d'identification TMDB appropriés. Note : Si un titre n'est pas présent dans la bibliothèque, une page de remplacement avec les données de la BDMT sera affichée.
Lien vers un film
infuse://movie/{tmdb_id}Lien vers une série télévisée
infuse://series/{tmdb_id}Lien vers une saison de série télévisée
infuse://series/{tmdb_id}-{season_number}Lien vers un épisode de série télévisée
infuse://series/{tmdb_id}-{season_number}-{episode_number}Facultatif
Ajoutez le paramètre « play » à la fin d'un lien profond pour lancer automatiquement la lecture de l'élément de la bibliothèque vers lequel renvoie le lien.
Exemple
infuse://movie/1327819?playÉtat de la lecture en cours
Infuse peut diffuser un service « Now Playing » en lecture seule sur le réseau local, permettant ainsi aux autres applications de voir ce qui est en cours de lecture, quelle que soit la source (NAS, Plex, Jellyfin, etc.). Cela permet à d'autres applications ou services tiers d'accéder aux informations relatives au contenu en cours de lecture dans Infuse à tout moment.
Remarque : cette fonctionnalité est désactivée par défaut, mais peut être activée dans Infuse > Paramètres > Lecture > API « En cours de lecture ». Nécessite la version 8.5.9 ou une version ultérieure d'Infuse.
Découverte
| Caractéristiques techniques | Valeur |
|---|---|
| Type de service | _infuse-np._tcp |
| Domaine | local. |
| Nom de l'instance | Infuse (nom de l'appareil) |
| Port | éphémère - lecture toujours à partir de l'enregistrement SRV |
Point d'extrémité
GET /nowplaying
HTTP/1.1, unencrypted, Connection: close
200 + JSON body; 400 malformed request; 404 any other method/path
Champs de réponse
| Champ | Description |
|---|---|
| state | en cours de lecture, en pause ou inactif (rien n'est en cours de lecture) |
| positionSeconds | Position actuelle de lecture, en secondes |
| durationSeconds | Durée totale, en secondes |
| item | Détails de l'élément de lecture ; valeur nulle lorsque l'état est « inactif » |
Exemple
{
"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
}Champs de l'article
| Champ | Description |
|---|---|
| kind | film ou épisode |
| tmdbID | Identifiant TMDB — identifiant de film pour les films, identifiant de série pour les épisodes |
| imdbID | Identifiant IMDb (par exemple « tt0133093 »), le cas échéant |
| tvdbID | Identifiant TVDB, le cas échéant |
| season / episode | Numéros de saison et d'épisode (épisodes) |
| title | Titre : si l'élément n'est pas identifié, on utilise le nom du fichier par défaut |
| seriesTitle | Titre de la série (épisodes uniquement) |