HiAPI
Blog

Guide d'utilisation

Créer des vidéos courtes avec l'API texte-vidéo happyhorse-1.1 : un workflow de bout en bout

Jul 7, 2026
Créer des vidéos courtes avec l'API texte-vidéo happyhorse-1.1 : un workflow de bout en bout

La vidéo courte est un jeu de volume. TikTok, Reels et Shorts récompensent les comptes qui publient chaque jour, et le principal goulot d'étranglement de production est souvent le B-roll : ces clips verticaux de 3 à 8 secondes qui portent l'accroche, le point fort du produit ou une boucle satisfaisante. HappyHorse 1.1 texte-vidéo est particulièrement adapté à ce cas d'usage, car il génère un audio natif dans le même appel — sans musique ni bruitage séparés — et prend en charge directement la sortie verticale 9:16, donc aucun recadrage n'est nécessaire en post-production.

Ce guide est un workflow de bout en bout : des modèles de prompts calibrés pour la vidéo courte, le cycle de vie des tâches asynchrones, un script de production en lot qui rend une semaine de vidéos en une seule exécution, et le calcul des coûts par plateforme. Chaque clip intégré ci-dessous a été généré avec exactement la même requête que celle montrée à côté — audio activé, directement depuis l'API.

Prérequis. Vous avez besoin d'une clé hiapi (Authorization: Bearer sk-…). Si vous n'avez jamais appelé /v1/tasks, parcourez d'abord la documentation Création d'API asynchrone ou le tutoriel curl + Python happyhorse-1.1 — cet article s'appuie sur ce tutoriel et se concentre sur le workflow vidéo courte.

Pourquoi ce modèle convient à la vidéo courte

Trois caractéristiques comptent pour ce format :

  • Audio natif. Ambiances, bruitages et effets ponctuels sont générés avec la vidéo. Pour le contenu « étrangement satisfaisant » et le B-roll, le son est le contenu — un clip avec un vrai audio se démarque nettement des clips IA muets que les créateurs remplissent avec de la musique de stock.
  • Le 9:16 comme citoyen de première classe. aspect_ratio accepte 9:16 (ainsi que 16:9, 1:1, 4:5, 21:9, 9:21, etc.), vous pouvez donc rendre en vertical natif au lieu de recadrer un master horizontal et perdre la composition.
  • Plage de 3 à 15 secondes. duration accepte tout entier de 3 à 15 — exactement l'intervalle de la vidéo courte. L'accroche fait 3 secondes, le point fort produit 4 à 6 secondes, une micro-histoire complète tient en 12 à 15 secondes.

Le schéma d'entrée est volontairement compact. Seul prompt est obligatoire ; les paramètres utiles sont :

Champ Valeurs Valeur par défaut pour la vidéo courte
prompt chaîne (obligatoire) voir les modèles ci-dessous
aspect_ratio 16:9, 9:16, 3:4, 4:3, 4:5, 5:4, 1:1, 9:21, 21:9 9:16
resolution 720p, 1080p 720p pour les brouillons, 1080p pour les publications principales
duration entier de 3 à 15 (secondes) 3–5

Deux choses qu'il n'accepte pas, pour que vous ne perdiez pas une requête à le découvrir : pas de commutateur audio (l'audio est toujours activé), et pas de seed. Envoyer l'un ou l'autre renvoie une erreur de validation 400.

Trois vrais clips, trois types de vidéo courte

Ce sont les trois formats qui dominent le fil de la vidéo courte, chacun généré en un seul appel API. Les prompts suivent un modèle reproductible que vous pouvez ajuster : étiquette de format → sujet et action → composition → lumière → indication audio.

1. B-roll lifestyle (le classique du café)

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "Test de vidéo courte verticale : un barista réalise un latte art dans un café lumineux, composition verticale style téléphone, audio naturel de lait qui mousse et de conversations de café.",
    "duration": 4,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

Remarquez l'indication audio à la fin du prompt (« lait qui mousse et conversations de café »). Nommer explicitement les sons voulus est l'astuce la plus efficace avec ce modèle — sans indication, il génère quand même de l'audio, mais le décrire donne une piste d'ambiance utilisable.

2. Teaser de lancement produit

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "Teaser de lancement produit, vertical 9:16 : une basket rétro à semelle épaisse crème et orange brûlé tourne lentement sur un plateau tournant noir mat, une lumière de contour dure dessine sa silhouette, de fines particules de poussière flottent dans le faisceau, fond de studio sombre, beaucoup d'espace vide au-dessus pour superposer un titre. Impactant, cinématographique. Audio natif : un bourdonnement de basse grave, et un léger sifflement doux lorsque la chaussure termine sa rotation.",
    "duration": 3,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

Deux astuces propres à la vidéo courte ici. Premièrement, « beaucoup d'espace vide au-dessus pour superposer un titre » — vous placerez du texte sur ce clip dans le monteur, demandez donc au modèle de laisser un espace négatif plutôt que de laisser vos sous-titres se battre avec l'image. Deuxièmement, l'audio est conçu, pas ambiant : un bourdonnement de basse plus un sifflement synchronisé sur le rythme de l'action, exactement ce qu'utilisent les teasers produit.

3. Boucle macro étrangement satisfaisante

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "Macro étrangement satisfaisant, vertical 9:16 : une spatule affûtée coupe proprement un bloc de sable cinétique vert menthe pâle sur une table blanche, la coupe s'effrite au ralenti, les grains s'écoulent, lumière de studio douce et uniforme, très gros plan remplissant l'image. Audio natif : craquement sec et granuleux au moment de la coupe, sans musique.",
    "duration": 3,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

« sans musique » est important : pour le contenu de type ASMR, le modèle doit consacrer son budget audio au bruitage (le craquement granuleux), et le préciser l'empêche d'ajouter une musique générique.

Modèles de prompts adaptés à la vidéo courte

Distillés à partir des clips ci-dessus et des exécutions qui les ont produits :

  1. Commencez par le format. Ouvrez par « vidéo courte verticale », « teaser de lancement produit, vertical 9:16 », « macro étrangement satisfaisant ». Le modèle cadre pour le format que vous spécifiez — une composition style téléphone ne ressemble pas à un plan cinématographique large.
  2. Un sujet, une action. 3 à 5 secondes, c'est un temps. « un barista réalise un latte art » fonctionne ; une histoire en trois actes en 4 secondes ne donne qu'un fouillis. Si vous avez besoin de plusieurs temps, générez plusieurs clips et montez-les ensemble — c'est aussi comme se monte une vraie vidéo courte.
  3. Écrivez l'audio en une phrase. Terminez chaque prompt par Audio natif : <les 1 à 3 sons voulus>. Fond ambiant (« conversations de café »), bruitage (« craquement sec et granuleux ») ou effet ponctuel conçu (« bourdonnement de basse grave et léger sifflement doux ») fonctionnent tous.
  4. Prévoyez l'espace pour les superpositions. Si le clip doit porter des sous-titres ou un titre, demandez « de l'espace vide au-dessus » ou « un espace négatif propre dans le tiers supérieur ». C'est moins cher que de recadrer en post-production.
  5. Terminez sur un état bouclable. Le fil lit en boucle automatiquement. Un prompt qui se termine là où il a commencé (« la chaussure termine sa rotation ») boucle proprement et accumule discrètement des vues répétées.

Workflow asynchrone : soumettre, interroger, télécharger

Chaque génération est une tâche asynchrone : POST /v1/tasks renvoie immédiatement un taskId, vous interrogez GET /v1/tasks/:id jusqu'à ce que status vaille success, puis vous téléchargez output[0].url. Un clip de 4 secondes en 720p se rend généralement en 1 à 3 minutes environ.

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.1/text-to-video",
    "input": {
      "prompt": "Test de vidéo courte verticale : un barista réalise un latte art dans un café lumineux, composition verticale style téléphone, audio naturel de lait qui mousse et de conversations de café.",
      "duration": 4,
      "resolution": "720p",
      "aspect_ratio": "9:16"
    }
  }'
# → {"code":200,"data":{"taskId":"tk-hiapi-…"},"message":"success"}

Une règle opérationnelle qui piège les gens : les URL de sortie expirent. output[0].url dans la réponse porte un expireAt — téléchargez le mp4 dès que la tâche réussit et placez-le dans votre propre stockage. Ne mettez pas d'URL en lien direct dans un CMS ou un outil de planification.

Production en lot : une semaine de clips en une exécution

L'API de tâches brille quand vous soumettez en parallèle. Comme la création renvoie immédiatement, le bon modèle de volume est de soumettre toutes les tâches, puis de toutes les interroger — cinq clips se rendent à peu près dans le temps réel d'un seul clip.

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

BATCH = [
    ("mon-coffee",  "Vidéo courte verticale : un café filtre qui préinfuse au ralenti, vapeur qui s'enroule, lumière chaude du matin. Audio natif : bruit d'eau, ambiance douce de café.", 4),
    ("tue-sneaker", "Teaser de lancement produit, vertical 9:16 : une basket néon éclabousse une eau peu profonde, gouttes figées en plein air, fond sombre. Audio natif : un profond bruit d'éclaboussure.", 3),
    ("wed-sand",    "Macro étrangement satisfaisant, vertical 9:16 : un bloc de sable cinétique lavande coupé par un fil fin, la coupe s'effrite. Audio natif : craquement sec et granuleux, sans musique.", 3),
    ("thu-city",    "Vidéo courte verticale : rue néon pluvieuse la nuit, parapluies qui passent, reflets qui ondulent. Audio natif : bruit de pluie et circulation lointaine.", 5),
    ("fri-dessert", "Vidéo courte verticale macro : une cuillère casse la croûte caramélisée d'une crème brûlée, la crème en dessous cède. Audio natif : craquement net, puis silence.", 3),
]

def submit(prompt, duration):
    r = requests.post(API, headers=HEADERS, json={
        "model": "happyhorse-1.1/text-to-video",
        "input": {"prompt": prompt, "duration": duration,
                  "resolution": "720p", "aspect_ratio": "9:16"},
    }, timeout=60)
    return r.json()["data"]["taskId"]

# 1) soumettre toutes les tâches d'abord
tasks = {key: submit(p, d) for key, p, d in BATCH}

# 2) interroger jusqu'à l'état terminal de toutes
while tasks:
    time.sleep(10)
    for key, tid in list(tasks.items()):
        t = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
        if t["status"] == "success":
            url = t["output"][0]["url"]          # expire — télécharger immédiatement
            open(f"{key}.mp4", "wb").write(requests.get(url, timeout=180).content)
            print(f"done: {key}.mp4")
            del tasks[key]
        elif t["status"] == "fail":
            print(f"FAILED {key}: {t.get('error')}")
            del tasks[key]

Notes de production pour exécuter ce type de script à grande échelle :

  • En cas d'échec, resoumettez, ne réinterrogez pas. Une tâche échouée est terminale ; soumettez une nouvelle tâche avec les mêmes entrées (et si elle échoue deux fois pour des raisons de contenu, reformulez parfois le prompt).
  • Tenez un manifeste. Écrivez {key, prompt, taskId, local_path} dans un fichier JSON au fur et à mesure, et au redémarrage sautez les clés dont le mp4 existe déjà. Les traitements par lots sont interrompus ; la reprise est gratuite si vous la planifiez à l'avance.
  • Attention aux limites de concurrence. Si vous soumettez des dizaines de tâches, espacez les soumissions d'une à deux secondes plutôt que d'en envoyer 50 au même instant.

Combien ça coûte

La facturation se fait à la seconde de vidéo produite (page de tarifs) : 0,16 $/seconde en 720p, 0,21 $/seconde en 1080p, quel que soit le ratio d'image. La durée est le seul levier de coût, ce qui fait de la vidéo courte l'endroit le moins cher pour utiliser ce modèle :

Clip Spécification Coût
Accroche / boucle satisfaisante 3 s · 720p 0,48 $
Temps fort de B-roll standard 4 s · 720p 0,64 $
Teaser produit 5 s · 720p 0,80 $
Publication principale 5 s · 1080p 1,05 $
Publication quotidienne, 30 brouillons de 4 s par mois 720p ~19,20 $

Un processus à deux niveaux pratique : itérez les prompts en 3 s/720p (environ un demi-dollar par essai), et ne re-rendez en 1080p que les gagnants pour la publication. Les prompts passent proprement d'une résolution à l'autre, donc vous ne refaites pas le travail créatif — vous payez pour les pixels seulement une fois que vous savez que le clip le mérite.

De la sortie API à la publication

Le modèle vous remet un clip vertical fini avec audio ; le reste est de l'habillage :

  • Durée par plateforme : les clips de 3 à 5 secondes fonctionnent bien en boucle sur TikTok et Reels ; pour Shorts, assembler deux ou trois temps en 10 à 15 secondes retient souvent l'audience plus longtemps. duration jusqu'à 15 secondes couvre une micro-histoire complète en un seul appel, si vous ne voulez pas monter.
  • Superposition de texte : ajoutez les sous-titres dans le monteur (CapCut, Premiere, ffmpeg drawtext). C'est pourquoi l'astuce du prompt « laisser de l'espace vide » compte.
  • Conservez l'audio natif comme couche de base, même si vous ajoutez de la musique — un vrai bruitage sous un lit musical donne plus de valeur de production qu'une musique seule.
  • Série cohérente : la vidéo courte récompense la répétition de format. Fixez la structure du prompt (composition, lumière, style audio) et ne changez que le sujet — les trois modèles de genre ci-dessus sont conçus pour être réutilisés ainsi.

Si votre série repose sur des actifs de marque — vraies photos produit, mascotte, visages — associez ce workflow à happyhorse-1.1 image-vidéo : générez ou photographiez une image clé une fois, puis pilotez le mouvement à partir d'elle pour que le sujet reste identique dans chaque publication.

Lancez le rendu

Le chemin le plus rapide : obtenez une clé, copiez la requête du barista de cette page, et en quelques minutes vous avez votre premier clip vertical avec audio. La page du modèle happyhorse-1.1 texte-vidéo contient la référence des paramètres en direct et les tarifs, et le démarrage rapide couvre l'authentification si c'est votre premier appel à hiapi. Rendez trois brouillons, gardez le meilleur, et vous avez la publication de demain pour moins qu'un café.

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API