Skip to main content
POST
Importez dans votre compte un lien de vidéo YouTube (watch, youtu.be ou shorts) avec kind project, ou un fichier audio ou vidéo à partir d’une URL HTTPS publique directe. Les vidéos YouTube sont téléchargées à la résolution de votre offre ; les autres URL doivent pointer directement vers un fichier média. Les redirections et les réseaux privés sont refusés ; les limites de taille et de durée s’appliquent. Utilisez le fileKey obtenu dans projects_create.

Authentification et autorisations

string
requis
Envoyez une clé API VoiceCheap dans cet en-tête. Authorization: Bearer avec la même clé API est également accepté. Les jetons d’accès OAuth sont acceptés uniquement par MCP, pas par cet endpoint REST.
Autorisations requises: projects:write. Un abonnement payant actif est requis. Les autorisations ne modifient ni les rôles dans l’équipe, ni la propriété des ressources, ni les crédits média, ni les limites du forfait.

Paramètres

string
requis
Valeur textuelle.Longueur maximale: 4096. Format: “uri”.
string
Valeur textuelle.Longueur minimale: 1. Longueur maximale: 255. Motif: ^[^/\\\r\n\0]+$.
string
requis
Valeur textuelle.Valeurs acceptées: “transcription”, “video_to_srt”, “add_subtitles”, “animated_captions”, “project”.
string
Facultatif au niveau du transport : le serveur injecte un identifiant avant la validation si ce champ est omis. Fournissez votre propre UUID v4 stable pour récupérer le résultat en toute sécurité si la réponse est perdue.Format: “uuid”. Motif: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$.
Le JSON Schema ci-dessous conserve les noms de champs exacts, les types imbriqués, les valeurs par défaut, les limites et les valeurs acceptées exposés par la découverte. Les règles supplémentaires entre champs figurent dans les notes de l’opération.

Idempotence

Utilisez un UUID v4 dans requestId ou dans l’en-tête HTTP Idempotency-Key pour chaque mutation. Après une erreur réseau, réutilisez le même identifiant avec des arguments identiques. Si les deux sont fournis, ils doivent correspondre. Rejouer une requête enregistrée ne répète pas l’opération et ne décompte pas un nouvel appel mensuel. Les requêtes en échec ou interrompues ne sont pas relancées automatiquement. Toute mutation peut renvoyer HTTP 202 lorsqu’une nouvelle tentative retrouve la même requête encore en cours, même si sa première exécution est habituellement synchrone. Si l’exécution est terminée mais que resultStored vaut false, une nouvelle tentative renvoie HTTP 200 avec l’état de la requête enregistrée, au lieu du résultat d’origine. Récupérez le résultat avec l’action d’historique, de résultat ou de téléchargement de son domaine.

Exemples de requêtes

Remplacez les exemples d’identifiants de ressources et de clés média par des valeurs renvoyées pour votre compte. Conservez le même identifiant de requête lorsque vous réessayez la même mutation.

Réponse

Cette opération renvoie HTTP 202 pendant son exécution. Conservez requestId et interrogez action_request_get avec cet identifiant et le nom de l’opération d’origine. Les états de suivi sont running, completed, failed et interrupted. Un résultat terminé peut renvoyer vers une tâche média distincte ; poursuivez avec l’action de statut ou de résultat propre à l’opération. Référence média importée appartenant à l’utilisateur, dont la taille, la durée, le type de média et l’URL de lecture ont été validés. Il s’agit du résultat final de l’action, obtenu après suivi.

Champs du résultat

Récupérer et suivre cette requête

Utilisez le même identifiant, même après une perte de connexion. Si resultStored vaut false, récupérez le résultat avec l’action d’historique, de résultat ou de téléchargement correspondante. Ne lancez jamais une seconde génération uniquement pour vérifier l’avancement.
HTTP 200

Notes de l’opération

  • Nécessite un abonnement payant et l’autorisation de l’action. L’offre personnelle d’outils de l’acteur est vérifiée de nouveau à l’exécution ; les outils enregistrés et les références d’envoi appartiennent à cet acteur, y compris lorsque l’identifiant d’accès est associé à une équipe.
  • Une action réussie consomme un appel mensuel API/MCP partagé. Beginner autorise 500 appels/mois, Starter 5,000 et Creator 25,000 ; Pro, Scale et Enterprise n’ont pas de plafond mensuel. Les limites par minute restent applicables : respectivement 30, 60, 120, 180, 300 et 600. Les quotas de génération des outils sont distincts.
  • Utilisez un requestId au format UUID v4, ou un en-tête Idempotency-Key identique, et conservez la même action, le même identifiant et les mêmes arguments lors des nouvelles tentatives. La restitution d’un résultat en cache ne consomme pas d’appel mensuel supplémentaire.
  • Le préfixe d’envoi détermine l’autorisation requise. tools utilise transcription:write, subtitles utilise subtitles:write, projects utilise projects:write et voices utilise voices:write.
  • Pour les outils, les sous-titres et les projets, kind accepte transcription, video_to_srt, add_subtitles, animated_captions ou project. Le champ kind sélectionné détermine les limites du workflow ; le préfixe n’impose pas de kind.
  • Le champ kind choisi applique ses propres limites : transcription 200 MiB ; video_to_srt et add_subtitles 300 MiB ; animated_captions 250 MiB et audio uniquement ; project utilise la limite d’envoi de l’offre (Beginner 5 GiB, Starter 10 GiB, Creator 20 GiB, Pro 30 GiB, Scale 40 GiB, Enterprise 60 GiB). Les médias utilisés seuls sont limités à 2 heures. Les sous-titres autorisent 30 minutes avec Beginner et 60 minutes avec les offres publiques supérieures, plus une tolérance de 2 secondes pour le conteneur. La durée d’un projet est limitée à 2 heures, ou 3 heures avec Enterprise.
  • Cette action s’exécute de manière asynchrone. Interrogez régulièrement action_request_get avec le nom de l’opération et le requestId d’origine jusqu’à la fin, avant de récupérer fileKey dans le résultat.
  • Avec kind project, url peut être un lien de vidéo YouTube (youtube.com/watch, youtu.be ou youtube.com/shorts). La vidéo est téléchargée comme lors d’un import dans l’application web, avec le plafond de résolution YouTube de l’offre, après vérification de sa durée par rapport à l’offre ; les diffusions en direct sont refusées. Toute autre url doit être une URL HTTPS publique pointant directement vers un fichier audio/vidéo : les redirections, identifiants de connexion, fragments, ports autres que 443 et adresses DNS non publiques sont rejetés. Les autres kinds n’acceptent pas les liens YouTube ; utilisez les actions YouTube dédiées.
  • filename est facultatif lorsque le chemin de l’URL se termine par un nom de fichier média pris en charge. Le nom de fichier enregistré est nettoyé. Le serveur analyse la durée réelle avant de renvoyer un fileKey.
  • L’importation prépare le média et consomme un appel d’intégration mensuel réussi ; le quota quotidien de génération de l’outil est consommé uniquement par la génération suivante.

Utilisation

Chaque invocation réussie consomme un appel du quota mensuel API/MCP. Les crédits média et les quotas de génération propres à l’opération s’appliquent également.

Erreurs