https://gateway.streamfizz.live/apiTraduit une piste de sous-titres vers une ou plusieurs langues. Une piste est créée par langue cible, en statut Pending. Consomme le quota de caractères traduits.
| Nom | Type | Description |
|---|---|---|
mediaId* | ID! | Média auquel la piste source est rattachée. |
subtitleId* | ID! | Piste source. Doit être en statut Ready, et sa langue doit elle-même porter l'opération Translate — voir getLanguages. |
targetLanguages* | [Language!]! | Langues cibles, portant l'opération Translate — voir getLanguages. |
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 | - |
Le traitement se fait en arrière-plan et rien ne vous rappellera : la piste revient en statut Pending, puis passe à Processing et enfin Ready. Relisez-la sur le média pour suivre son avancement — quelques secondes suffisent entre deux appels, une transcription se compte en minutes.
{
getMedia(id: "MEDIA_ID") {
subtitles {
id
label
languages
source
status
cdnUrl
}
}
}cdnUrl reste null tant que le statut n'est pas Ready. Un statut Error est définitif : la piste ne se reprendra pas toute seule.| 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 |
|---|---|---|
SUBTITLE_NOT_TRANSLATABLE | Source subtitle has no file to translate yet | La piste source n'a pas encore de fichier : une transcription en cours ne peut pas être traduite. |
LANGUAGE_NOT_TRANSLATABLE | Language '{language}' does not support Translate | Une des langues cibles, ou la langue de la piste source, n'est pas traduisible. |
QUOTA_EXCEEDED | The quota for TRANSLATE_CHARACTER has been exceeded | Le quota de caractères traduits du compte est atteint. Il est calculé sur la longueur de la piste source multipliée par le nombre de langues cibles. |
NOT_FOUND | Subtitle '{id}' has not been found on this media | La piste source n'existe pas ou n'est pas rattachée à ce média |
60 requêtes par minute par clé API
En cas de dépassement, une erreur 429 Too Many Requests est retournée.