Communitygithub.com

runapi-ai/vidu

Générez des vidéos Vidu Q4 à partir d'une première image, d'images de référence ou d'un fichier audio optionnel via RunAPI. Utilisez l'interface en ligne de commande RunAPI pour une génération unique ou le SDK pour une intégration applicative.

Qu'est-ce que vidu ?

Cette compétence permet de générer des vidéos Vidu Q4 en utilisant l'API RunAPI, en s'appuyant sur une première image, des images de référence ou un fichier audio optionnel. La compétence est conçue pour deux cas d'utilisation principaux : la génération ponctuelle via l'interface en ligne de commande `runapi` et l'intégration applicative via le SDK RunAPI. Pour une utilisation unique, la compétence guide l'utilisateur à travers la découverte du contrat d'API, la construction d'une requête JSON valide, l'exécution asynchrone, la surveillance de la tâche et la vérification des livrables, y compris le téléchargement de tous les fichiers vidéo générés et la validation de leur type MIME. Pour une intégration dans une application ou un backend, la compétence oriente directement vers l'utilisation du SDK approprié et applique les mêmes règles de vérification et d'arrêt. La compétence inclut des mécanismes de récupération en cas d'erreur, comme la correction unique de la forme de la requête ou la nouvelle tentative en cas d'échec de transport transitoire, mais s'arrête en cas d'échec terminal ou de contradiction dans le contrat d'API. Cette compétence est utile pour les développeurs souhaitant générer des vidéos de manière automatisée et fiable, en évitant les erreurs d'intégration et en assurant la conformité des livrables.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/runapi-ai/vidu/tree/HEAD/skills/vidu

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vidu sur RunAPI

Choisir la route

  • Pour un artéfact ou un résultat ponctuel, utilisez le service vidu enregistré dans la CLI runapi. Si le catalogue de commandes installé ne le liste pas, arrêtez-vous et signalez le service manquant sans inventer de commande.
  • Pour une application, un backend, un worker, une bibliothèque, un pipeline webhook ou une base de code de production, allez directement à Intégrer avec le SDK. N'utilisez jamais la CLI comme environnement d'exécution en production.

Découvrir le contrat

Authentifiez-vous, puis inspectez le catalogue de commandes installé et le contrat actuel de l'opération sélectionnée :

runapi auth status > auth.json
jq -e '.authenticated == true' auth.json
runapi vidu --help
runapi vidu <opération> --help
curl --fail --location https://runapi.ai/docs/api/vidu/<opération>.md --output contrat.md

Si l'authentification est fausse, arrêtez-vous avant de soumettre. Demandez à l'utilisateur de fournir une RUNAPI_API_KEY valide, ou importez une clé fournie par l'utilisateur depuis stdin avec runapi auth import-token --token - ; n'utilisez la connexion interactive via navigateur que lorsque l'utilisateur le demande explicitement. Choisissez <opération> uniquement parmi les opérations listées dans l'aide du service. Considérez l'aide de la commande comme faisant autorité pour l'opération installée, le modèle et la liste des champs de premier niveau. Considérez sa référence d'API comme faisant autorité pour le schéma complet de la requête, les champs imbriqués, les règles conditionnelles, le comportement de la tâche et les variantes de réponse. Si les deux surfaces sont en désaccord, arrêtez-vous et signalez le décalage de contrat sans deviner.

Construire la requête

Créez request.json comme un JSON valide en utilisant uniquement les champs acceptés par le contrat de l'opération découverte. Pour le modèle et les valeurs choisis, évaluez chaque règle conditionnelle applicable comme un ensemble : satisfaites chaque champ obligatoire, omettez chaque champ interdit, et arrêtez-vous en cas de contradictions non résolues.

Parcourez les objets et tableaux imbriqués avant l'exécution. Respectez chaque relation stipulée par le contrat découvert, y compris les contraintes d'unicité et les références croisées entre valeurs imbriquées.

Pour une entrée média locale découverte, y compris les champs de type fichier et les champs d'URL média de premier niveau, placez un chemin de fichier local lisible par l'agent directement dans request.json. La CLI consomme les champs de fichier comme déclarés et télécharge les chemins locaux dans les champs d'URL média de premier niveau. Utilisez runapi files create uniquement lorsque l'utilisateur a besoin d'une URL réutilisable, fournit du Base64, ou que le contrat découvert exige explicitement un téléchargement séparé.

Invariants sémantiques :

  • Le format, la taille et la durée audio des médias distants sont vérifiés de manière asynchrone par le fournisseur de génération.

Validez le fichier avant de l'envoyer :

jq empty request.json

Exécuter

Soumettez exactement une fois et persistez la réponse de la tâche avant d'attendre :

runapi vidu <opération> --async --input-file request.json > task.json
task_id="$(jq -er '.id' task.json)"

Pour un résultat ponctuel, attendez immédiatement cette même tâche et sauvegardez la réponse JSON complète. Cette attente bloquante est le comportement par défaut :

runapi wait "$task_id" --service vidu --action <opération> > result.json

Uniquement lorsque l'utilisateur demande explicitement une exécution en arrière-plan, une interrogation (polling) ou une intégration webhook, vous pouvez vous arrêter après avoir validé task.json. Signalez l'identifiant de la tâche et ne prétendez pas que le livrable est complet.

Vérifier

Un statut de succès n'est pas le livrable. Lisez et validez la réponse complète selon le contrat de résultat découvert. Préservez le résultat complet non média dans le format exact demandé, y compris JSON, texte, SRT ou VTT.

Pour chaque livrable média demandé listé dans la réponse, téléchargez-les tous plutôt que de retourner uniquement la première URL. Avant le téléchargement, déduisez son type MIME attendu ou sa famille à partir des métadonnées de réponse lorsqu'elles sont présentes, puis du format de sortie sélectionné, puis d'un champ de résultat non ambigu tel que videos, images ou audios dans la référence d'API. Les familles de repli déclarées dans le catalogue pour cette compétence sont video/*. Arrêtez-vous uniquement lorsqu'aucun type ou famille attendu unique ne peut être établi à partir de ces sources.

Pour chaque fichier téléchargé, exigez à la fois un fichier non vide et le type MIME attendu ou la famille :

curl --fail --location <url-du-livrable> --output <fichier-téléchargé>
for file in <fichiers-téléchargés>; do
  mime_attendu=<motif-du-type-ou-de-la-famille-MIME-attendu-pour-ce-fichier>
  test -s "$file"
  [[ "$(file --brief --mime-type "$file")" == $mime_attendu ]]
done

Ne signalez pas l'achèvement lorsqu'un livrable demandé est manquant, vide ou a un type MIME inattendu. Enregistrez la Conformité de la compétence séparément du Résultat de la tâche afin qu'un échec du service ne cache pas si ce guide a été suivi.

Récupérer ou s'arrêter

  • Corrigez la forme d'une requête au maximum une fois, et uniquement lorsque le contrat découvert ou l'erreur de validation retournée identifie la correction.
  • Réessayez une panne de transport transitoire au maximum une fois, et uniquement lorsque des preuves confirment qu'aucune tâche n'a été créée, qu'aucune facturation n'a eu lieu et que la reprise est sûre.
  • Si l'attente expire ou perd le transport après que task.json existe, préservez l'erreur et relancez runapi wait pour cette même tâche au maximum une fois. Ne soumettez jamais une tâche de remplacement.
  • En cas d'échec terminal de RunAPI ou du service, préservez la preuve de la tâche/de l'erreur et arrêtez-vous. Conservez le modèle et la capacité sélectionnés, et ne soumettez pas une autre requête payante sans autorisation de l'utilisateur.
  • Si le contrat manque d'un fait nécessaire pour construire ou vérifier la requête, arrêtez-vous et signalez le manque dans le contrat. Ne transformez pas un défaut de produit en une solution de contournement permanente dans la compétence.

Intégrer avec le SDK

Utilisez cette route uniquement pour l'intégration dans une application ou du code de production. Ouvrez la référence actuelle du SDK RunAPI ci-dessous, sélectionnez le package pour le langage cible et Vidu, et confirmez sa commande d'installation, ses méthodes client, ses types de requête, ses types de réponse et ses classes d'erreur avant de coder. Construisez la requête à partir du même contrat de produit découvert et appliquez les mêmes règles de vérification et d'arrêt des livrables. N'invoquez pas runapi comme sous-processus dans le code de production.

Références

Variantes

Skills associés