Extension de video avec /v1/videos/extensions
Prolonger une video existante
L’endpoint d’extension vous permet d’allonger une video en generant une suite coherente. C’est la fonctionnalite ideale quand vous avez un clip trop court ou quand vous souhaitez developper une scene au-dela de sa duree initiale.
L’endpoint POST /v1/videos/extensions
{
"model": "grok-imagine-video",
"prompt": "Continue la scene avec un zoom arriere revelant le paysage complet",
"video_url": "https://exemple.com/video-courte.mp4",
"duration": 5
}
Parametres
- model :
grok-imagine-video - prompt : description de ce qui doit se passer dans la suite
- video_url : URL de la video a prolonger
- duration : duree de l’extension, entre 2 et 10 secondes (defaut : 6 secondes)
Differences avec l’edition
| Aspect | Edition (/edits) | Extension (/extensions) |
|---|---|---|
| Objectif | Modifier le contenu | Ajouter de la duree |
| Parametre video | video.url (objet) | video_url (string) |
| Duree sortie | Max 8.7s | 2-10s supplementaires |
| Contenu original | Modifie | Preserve |
Notez la difference de syntaxe : l’edition utilise un objet video avec une propriete url, tandis que l’extension utilise directement video_url comme chaine de caracteres.
Strategies d’extension
Continuer le mouvement
Le cas le plus simple : demander au modele de poursuivre ce qui se passe dans la video :
{
"model": "grok-imagine-video",
"prompt": "Le personnage continue sa marche le long de la plage, les vagues deferlent doucement",
"video_url": "https://exemple.com/promenade.mp4",
"duration": 6
}
Introduire un changement
Vous pouvez demander un changement de direction ou un nouvel element :
{
"model": "grok-imagine-video",
"prompt": "La camera pivote vers la droite revelant un phare au loin, la lumiere du phare commence a tourner",
"video_url": "https://exemple.com/plage.mp4",
"duration": 8
}
Transition vers une conclusion
Pour terminer une sequence de maniere naturelle :
{
"model": "grok-imagine-video",
"prompt": "La scene se termine avec un fondu progressif vers le noir, les dernieres lueurs du soleil disparaissent a l'horizon",
"video_url": "https://exemple.com/coucher-soleil.mp4",
"duration": 4
}
Chainer les extensions
Vous pouvez etendre une video plusieurs fois pour creer des sequences plus longues. Le principe est simple : chaque extension produit une nouvelle video, dont l’URL peut servir de source pour l’extension suivante.
import httpx
import time
api_key = "votre_cle"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
def attendre_video(request_id):
"""Interroge le statut jusqu'a completion."""
while True:
resp = httpx.get(
f"https://api.x.ai/v1/videos/{request_id}",
headers=headers
).json()
if resp["status"] == "done":
return resp["video_url"]
if resp["status"] == "failed":
raise Exception("Generation echouee")
time.sleep(5)
# Video de base
video_url = "https://exemple.com/video-initiale.mp4"
# Chainer 3 extensions
prompts = [
"Le personnage traverse le pont, vue de profil",
"Il s'arrete au milieu et regarde la riviere en contrebas",
"Il reprend sa marche vers l'autre rive, la camera le suit"
]
for prompt in prompts:
resp = httpx.post(
"https://api.x.ai/v1/videos/extensions",
headers=headers,
json={
"model": "grok-imagine-video",
"prompt": prompt,
"video_url": video_url,
"duration": 5
}
).json()
video_url = attendre_video(resp["request_id"])
print(f"Extension terminee : {video_url}")
Attention au chainage
- Chaque extension est facturee separement
- La coherence visuelle peut se degrader au fil des extensions
- Telechargez chaque version intermediaire (URLs temporaires)
- Limitez-vous a 3-4 extensions enchainees pour preserver la qualite
Combinaison generation + extension
Un workflow courant consiste a generer une video courte (3-5 secondes) puis a l’etendre :
- Generation initiale : video de 3 secondes avec un prompt precis ->
POST /v1/videos/generations - Extension : ajout de 5 secondes de suite ->
POST /v1/videos/extensions - Extension finale : ajout de 4 secondes de conclusion ->
POST /v1/videos/extensions
Resultat : une video de 12 secondes, construite etape par etape avec un controle precis sur chaque segment.
Points cles a retenir
- L’extension prolonge une video existante de 2 a 10 secondes (defaut 6)
- Le parametre est
video_url(string), pasvideo.url(objet) - Le chainage permet de creer des sequences longues etape par etape
- La coherence se degrade au-dela de 3-4 extensions successives
- Combinez generation initiale + extensions pour un controle precis du contenu