https://gateway.streamfizz.live/apiImporte une piste de sous-titres depuis un fichier VTT ou SRT accessible publiquement. Un fichier SRT est converti en WebVTT automatiquement.
La piste est créée non publiée : elle n'apparaît pas dans le lecteur tant
que updateSubtitle(isPublished: true) ne l'a pas rendue visible.
| Nom | Type | Description |
|---|---|---|
mediaId* | ID! | Média auquel rattacher la piste. |
url* | String! | URL publique du fichier .vtt ou .srt. |
language* | Language! | Langue du fichier importé — voir getLanguages. |
label | String | Libellé affiché. Par défaut, le nom de la langue. |
Media| Nom | Type | Description |
|---|---|---|
id | ID! | Identifiant unique du média. |
title | String | Titre du média. |
type | MediaType | Type de média. |
sourceKey | String | Clé S3 du fichier source original. |
fileName | String! | Nom original du fichier uploadé. |
cote | String | Cote ou référence métier interne. |
note | String | Note interne sur le média. |
myCapability | AuthzCapability! | Ce que l'appelant a le droit de faire sur ce contenu, compte tenu de ses
groupes et de ses accès directs : |
encodingVersion | String | Version actuelle d'encodage (ex: "v0", "v2.1"). |
isEncodingDone | Boolean | Indique si l'encodage est terminé. |
isContentPlayable | Boolean | Indique si le média peut être lu (encodage OK). |
duration | Float | Durée du média en secondes. |
ratio | Float | Ratio d'aspect (largeur / hauteur). |
playlistKey | String | Clé S3 de la playlist HLS. |
playlistCdnUrl | String | URL CDN de la playlist HLS. |
thumbKeys | [String] | Clés S3 des miniatures générées. |
thumbCdnUrls | [String] | URLs CDN des miniatures générées. |
selectedThumbKey | String | Clé S3 de la miniature sélectionnée. |
selectedThumbCdnUrl | String | URL CDN de la miniature sélectionnée. |
thumbnailVttCdnUrl | String | URL CDN du fichier VTT des vignettes de prévisualisation. |
deltaChapter | Int | Décalage en secondes appliqué aux points de chapitre à la lecture, pour rattraper la latence d'encodage et de diffusion. |
publicUrl | String | URL de la page de lecture publique. |
publicEmbedUrl | String | URL d'intégration (embed) publique. |
publisher | User! | Utilisateur ayant publié le média. |
account | Account | Compte propriétaire du média. |
accessGroups | [Group!]! | - |
directUsers | [PublicUser!]! | - |
createdAt | DateTime! | Date de création du média. |
updatedAt | DateTime! | Date de dernière modification du média. |
encodingProgress | [EncodingProgress] | Progression d'encodage pour chaque version. |
versioningProgress | EncodingProgress | Progression du versioning en cours (ou null). |
lastVersioning | DateTime | Date du dernier versioning terminé. |
mediaInfos | Json | Infos techniques d'encodage (ffprobe-like pour v1+, array typé pour v0 legacy). |
subtitles | [Subtitle!] | Sous-titres associés au média. |
files | [File!] | Fichiers joints au média. |
chapters | [Chapter] | Chapitres associés au média. |
clips | [Clip!] | Clips dérivés du média. |
live | Live | Live associé si ce média est un replay. |
discussion | Discussion | Discussion (chat) associée au média. |
moderatorContents | [ModeratorContent] | Modérateurs désignés pour ce média. |
relatedTags | [Tag] | Tags rattachés. |
relatedCategories | [Category] | Catégories rattachées. |
pageSetting | BrandSetting | Paramètres de personnalisation de la page de lecture. |
embedSetting | BrandSetting | Paramètres de personnalisation de l'embed. |
preRoll | RollPreset | Annonce intro associée. |
postRoll | RollPreset | Annonce outro associée. |
seo | SEO | Paramètres SEO de la page de lecture. |
confidentiality | Confidentiality | Niveau de confidentialité (nouveau modèle). |
privacy | Privacy | Paramètres de confidentialité (accès utilisateur). |
playlists | PlaylistConnection | Playlists contenant ce média. |
webTVs | WebTVConnection | WebTVs contenant ce média. |
metadata | MediaMetadata | Métadonnées descriptives (production, auteur, contenu). |
originalPublisher | DeletedUser | - |
| Code | Message | Description |
|---|---|---|
UNAUTHENTICATED | You are not authorized to perform this action | Clé API manquante, invalide, expirée ou révoquée. La réponse porte un code HTTP 200 : c'est le corps GraphQL qui signale l'échec. |
INPUT_VALIDATION_ERROR | Validation failed: {field}: {message} | Un ou plusieurs champs sont invalides (format, longueur, protocole…). Le détail est dans extensions.fieldErrors[]. |
INTERNAL_SERVER_ERROR | Internal server error | Erreur interne du serveur. Le message est volontairement générique : le détail est journalisé côté Streamfizz, jamais renvoyé. |
| Code | Message | Description |
|---|---|---|
URL_UNREACHABLE | Unable to reach URL | Impossible de se connecter au serveur (DNS, timeout, connexion refusée) |
URL_ACCESS_DENIED | Cannot access URL | Accès refusé ou ressource non trouvée (403, 404) |
DOWNLOAD_FAILED | Failed to fetch URL: {reason} | L'URL répond mais le transfert a échoué. Contrairement à createMedia, le fichier est téléchargé pendant la requête : l'échec est donc visible immédiatement. |
INVALID_SUBTITLE_FORMAT | URL must point to a .vtt or .srt file | L'URL ne pointe pas vers un fichier .vtt ou .srt, ou le contenu SRT n'a pas pu être converti en WebVTT. |
NOT_FOUND | Media '{id}' not found | Le média n'existe pas ou n'appartient pas au compte |
60 requêtes par minute par clé API
En cas de dépassement, une erreur 429 Too Many Requests est retournée.