facebook pixel
Menu
Découvrez notre nouvelle API "Order Promises"

Découvrez notre nouvelle API "Order Promises"

Lorsque votre emploi du temps est déjà bien rempli, passer des commandes à répétition sur le même site Web peut devenir une tâche ennuyeuse et chronophage. Cela peut vous convenir si vous n’avez besoin que de 1 à 5 vidéos par mois, mais à mesure que votre volume et la fréquence augmentent, il est fort probable que vous souhaitiez simplifier le processus. La connexion de nos systèmes à vos propres applications contribue grandement à économiser du temps et des efforts.

Vous pouvez utiliser notre nouvelle API Order Promises pour gérer cette intégration. Elle permet aux clients existants de créer des commandes à partir de leurs plateformes, au moyen d’une interface de programmation complète composée de quelques méthodes.

Accéder à l’API

Pour accéder à notre API, vous devez d’abord vous rendre dans votre section client (C’est par ici) et cliquez sur le profil de l’utilisateur pour accéder aux paramètres de votre compte.

Ensuite, cliquez sur la section Api key et vous pourrez alors générer une clé API. Si vous ne voyez pas cette section, il est possible que vous ne disposiez pas des autorisations nécessaires pour la consulter. Adressez-vous à l’administrateur de votre compte si vous souhaitez obtenir l’accès à cette section.

L’ajout de cette clé à l’url de chaque requête vous permettra d’utiliser l’API comme bon vous semble.

Vérifier que tout fonctionne correctement

Pour vérifier que tout fonctionne, vous pouvez essayer d’envoyer une requête GET à https://gapps.soustitreur.com/public/v1/order/check?apikey={YOUR_API_KEY}. Lorsque cela est fait adéquatement, le résultat sera l’information relative à votre compte client :

{
  "status": "OK",
  "data": {
    "id": 6725,
    "first_name": "Test",
    "last_name": "Test",
    "email": "test@test.com",
    "role": "user"
  }
}

Il faut souligner qu’à l’heure actuelle, notre API ne prend en charge que JSON comme moyen d’échange d’informations.

Création de commandes

Maintenant que vous savez comment fonctionne notre API, vous pouvez commencer à créer des commandes pour que nous les exécutions. Pour ce faire, vous pouvez essayer d’envoyer une requête POST à https://gapps.soustitreur.com/public/v1/order/new?apikey={YOUR_API_KEY}.

Le corps de la demande JSON doit contenir les champs suivants :

{
  "filetransfertmode": "FTP" | "GDRIVE" | "YOUTUBE" | "PUBLICURL",
  "videolang": "en_US" | "fr_FR" | "fr_CA" | "pt_BR" | "pt_PT" | "es_LA" | "es_ES" | "nl_NL" | "de_DE",
  "fileurl": "...",
  "rushmode": true | false,
  "proofreading": true | false,
  "tvsubtitles": true | false,
  "burnvideo": true | false,
  "translateto": [
     "en_US" | "fr_FR" | "fr_CA" | "pt_BR" | "pt_PT" | "es_LA" | "es_ES" | "nl_NL" | "de_DE",
    ...
  ],
  "edlcontent": "..." | null,
  "ordernotes": "..." | null
}
  • filetransfertmode: spécifie le mode de transfert de fichiers. (voir ci-dessous).
  • videolang: La langue de la vidéo
  • fileurl: URL source de la vidéo. Le format dépend du mode de transfert de fichiers requis (voir ci-dessous).
  • rushmode: false si vous souhaitez une livraison dans un délai d’environ 3 jours; true pour livraison en 24 heures ou moins (cette dernière option venant avec supplément de prix).
  • proofreading: false si vous souhaitez une transcription de qualité de base; true si vous souhaitez que la transcription soit révisée par l’un de nos réviseurs seniors (moyennant un supplément).
  • tvsubtitles: true si vous souhaitez que nous détections le texte incorporé ou incrusté dans la vidéo et que nous marquions automatiquement les sous-titres qui doivent changer de position (moyennant un supplément de prix)
  • burnvideo: true si vous souhaitez que nous intégrions de manière permanente des sous-titres incrustés à votre fichier vidéo (moyennant un supplément).
  • translateto: liste des langues dans lesquelles vous souhaitez que nous traduisions vos sous-titres (supplément par traduction). Cette liste peut être vide si aucune traduction n’est nécessaire.
  • edlcontent: Contenu du fichier EDL. Ceci nous permet d’aligner la transcription avec les changements de scène de votre projet.
  • ordernotes: les demandes spéciales concernant votre commande, séparées par de nouvelles lignes. Vous pouvez ajouter toute une série de spécifications à ces notes, mais certaines d’entre elles sont automatiquement traitées par notre système. Par exemple :
    • CENSOR: censure vos sous-titres lorsque nécessaire (disponible uniquement pour le français, l’anglais et l’espagnol).
    • {number of lines}l{number of characters per line}c: spécifie un format en nombre de lignes et de caractères par ligne (par exemple, 1l15c signifie une ligne de 15 caractères maximum).
    • NO_SIGNATURE or pas de signature: retire la signature que nous ajoutons automatiquement à la fin de chaque vidéo.
    • frontsignature: place la signature automatique au tout début des sous-titres.

Une requête réussie à ce point d’accès renverra le corps de réponse JSON suivant :

{
	"status": "OK",
	"data": {
		"ordernum": {Tracking number of your order}
	}
}

Si un problème survient au cours du processus de création de la commande, le corps de la réponse prendra la forme suivante :

{
	"status": "ERROR",
	"msg": "..."
}

Comprendre les modes de transfert de fichiers

Pour transcrire votre vidéo, nous avons besoin d’un moyen de la télécharger à partir de nos serveurs. Nous disposons actuellement de trois moyens pour ce faire : le téléchargement à partir d’un serveur FTP, de Google Drive ou d’un lien Youtube.

Création d’une commande à partir d’un fichier se trouvant sur un serveur FTP

Pour créer une commande à partir d’une vidéo hébergée sur un serveur FTP, le champ filetransfertmode doit être réglé sur FTP et le champ fileurl doit avoir l’un des formats suivants :

  • Si votre serveur FTP exige un nom d’utilisateur et un mot de passe :
ftp://{URL-encoded username}:{URL-encoded password}@{FTP hostname}/{filename}
  • Si votre serveur FTP ne requiert que le nom d’utilisateur :
ftp://{URL-encoded username}@{FTP hostname}/{filename}
  • Si votre serveur FTP ne nécessite aucune authentification :
ftp://{FTP hostname}/{filename}

Assurez-vous que votre fichier ne contient pas d’espaces ni de caractères spéciaux, et qu’il se termine par l’extension de fichier correcte.

Créer une commande à partir d’un fichier stocké sur Google Drive

Pour créer une commande à partir d’une vidéo stockée sur Google Drive, le champ filetransfertmode doit être réglé à GDRIVE et le champ fileurl doit être une url partageable. Assurez-vous que le fichier est disponible publiquement, car dans le cas contraire, nous ne pourrons pas l’obtenir.

Créer une commande depuis un lien Youtube

Pour créer une commande à partir d’un lien Youtube, le champ filetransfertmode doit être réglé à YOUTUBE et le champ fileurl doit être un lien Youtube non privé.

Créer une commande à partir d’une URL publique

Pour créer une commande à partir d’une URL publique, le champ filetransfertmode doit être défini sur PUBLICURL et le champ fileurl doit être un lien d’un fichier stocké sur un serveur web. Assurez-vous que le fichier multimédia est accessible via HTTP ou HTTPS.

Vérifier l’état de votre commande

Une fois votre commande passée, il faudra un certain temps avant que nous commencions à travailler dessus. Vous allez peut-être vouloir vérifier comment les choses avancent. Dès que le travail sera terminé, vous allez probablement vouloir télécharger le résultat ou effectuer des modifications dans notre éditeur.

Il se peut aussi que nous n’ayons pas pu traiter votre demande dans son intégralité. Peut-être que vos identifiants FTP étaient erronés, ou que la vidéo Google Drive ou Youtube n’était pas publique et que nous n’avons pas pu la télécharger.

Pour résoudre ces problèmes, vous pouvez envoyer une requête GET à l’URL suivante : https://gapps.soustitreur.com/public/v1/order/status?apikey={YOUR_API_KEY}&ordernum={Tracking number of your order}

Une requête réussie à ce point d’accès renverra le corps de réponse JSON suivant :

{
  "status": "OK",
  "data": {
    "orderstatus": "DONE" | "WAITING_FOR_DISPATCH" | "DOWNLOADED_BY_SOUSTITREUR",
    "files": [
      {
        "title": "...",
        "tasktype": "TRANSLATION" | "TRANSCRIPTION",
        "duration": {number},
        "mediafile": "...",
        "lang": "en_US" | "fr_FR" | "fr_CA" | "pt_BR" | "pt_PT" | "es_LA" | "es_ES" | "nl_NL" | "de_DE",
        "burnedvideofile": "..." | null,
        "taskdone": true | false,
        "editorlink": "..." | null,
        "downloadables": [
			{
				"category": "...",
				"type": "...",
				"url": "..."
			},
			...
		]
      },
	  ...
    ]
  }
}
  • orderstatus: Statut actuel de la commande. Il peut avoir l’une de ces trois valeurs :
    1. WAITING_FOR_DISPATCH: Votre commande vient d’entrer dans notre système. Elle n’a pas encore été traitée d’aucune manière. Aucun sous-traiteur/traducteur n’a encore commencé à travailler dessus.
    2. DOWNLOADED_BY_SOUSTITREUR: Notre équipe a commencé à travailler sur votre commande. Il se peut que certaines transcriptions ou traductions soient terminées.
    3. DONE: Votre commande est terminée. Toutes les transcriptions et traductions non annulées sont complétées.
  • files: Liste des transcriptions et traductions envoyées à notre service de traduction. Chaque fichier comporte les champs suivants :
    • title: Titre de la vidéo.
    • tasktype: Type d’élément. Peut être TRANSLATION ou TRANSCRIPTION.
    • duration: Durée de la vidéo en nombre de secondes.
    • mediafile: Lien pour visionner la vidéo.
    • lang: Langue de la vidéo.
    • burnedvideofile: Vidéo avec sous-titres incrustés (uniquement à non “null”/vide si commandé).
    • editorlink: Lien vers l’éditeur. Il n’est pas “null” (vide) une fois que l’article est entièrement transcrit ou traduit.
    • downloadables: Liste des fichiers disponibles au téléchargement, tels que SRT multiplateforme, transcription de texte (.txt), SRT Adobe Premiere, fichiers VTT, etc.

Si votre demande n’a pas pu être satisfaite, le corps de la réponse contiendra un champ msg similaire à celui du point de terminaison précédent, expliquant la raison pour laquelle la commande n’a pas pu être passée :

{
	"status": "ERROR",
	"msg": "..."
}