OpenClip : édition vidéo
edit_video effectue une opération par appel sur un fichier vidéo : rogner, découper, pivoter, redimensionner, compresser ou couper le son. C'est GRATUIT, il nécessite un compte OpenClip mais pas d'abonnement ni de crédits.
Enchaînez les appels pour combiner les opérations : transmettez la sortie d'un appel au suivant.
Configuration (une fois)
OpenClip est un serveur MCP distant à l'adresse https://openclip.app/mcp. Connectez-vous avec votre compte OpenClip lorsque l'invite OAuth apparaît, il n'y a pas de clé API à copier.
- Claude Code :
claude mcp add --transport http openclip https://openclip.app/mcp, puis/mcppour autoriser. - Claude Desktop / web : Paramètres, Connecteurs, "Ajouter un connecteur personnalisé", collez l'URL, connectez-vous.
- Cursor (
.cursor/mcp.json) :{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Clients sans en-têtes : générez un jeton MCP sur
openclip.app/settings/connectet connectez-vous àhttps://openclip.app/mcp/keyavecAuthorization: Bearer <token>.
Vérification de base : appelez get_account.
Obtenir le fichier
create_upload(filename, content_type)renvoie unidet uneupload_url.- Transférez les octets bruts vers
upload_urlvia PUT. - Passez l'
idretourné comme argumentvideo.
N'appelez PAS complete_upload. Cela déclenche le pipeline de clipping payant. Les outils gratuits lisent directement le fichier téléchargé. Une vidéo déjà présente dans list_videos peut également servir d'entrée.
Opérations
Chaque appel est edit_video(video, operation, ...params).
- crop - soit
aspect("1:1","9:16","16:9","4:5") soit les coordonnées explicitesx,y,width,height. Utilisezaspect: "9:16"pour recadrer une vidéo paysage pour TikTok, Reels et Shorts. - trim -
start_msetend_ms, tous deux obligatoires. Les temps sont en millisecondes. - rotate -
degrees(90,180,270) et/ouflip(none,horizontal,vertical). - resize -
widthetheighten pixels. - compress - soit
target_mb(viser une taille de fichier) soitcrf(de 18 à 32, plus faible = meilleure qualité et fichier plus volumineux). Utiliseztarget_mblorsque l'utilisateur impose une limite de taille. - mute - aucun paramètre, supprime la piste audio.
Interrogation (polling)
edit_video renvoie un tool_job (hashid) avec status: "queued". Interrogez get_tool_job_status(tool_job) toutes les 5 à 10 secondes :
queued/processing- en cours, continuez à interroger.completed- renvoie les URLs CDN permanentesoutputsainsi queresult_meta.failed- renvoieerror.
Ne supposez jamais qu'un appel s'est terminé de manière synchrone.
Règles
- Une opération par appel. Pour découper puis recadrer, effectuez d'abord le découpage, puis passez sa sortie à un appel de rognage.
- Les temps sont en millisecondes partout, pas en secondes.
- Les URLs de sortie sont des liens CDN permanents, ni signés ni à durée limitée.
- L'utilisation gratuite est limitée en débit par jour avec une limite de taille par fichier. Le texte d'erreur explique comment lever une limite.
Exemples de requêtes vers actions
- "Coupe ça aux 30 premières secondes" -
create_upload, PUT des octets,edit_video(video, operation="trim", start_ms=0, end_ms=30000), interroger. - "Mets ça à la verticale pour TikTok" -
edit_video(video, operation="crop", aspect="9:16"), interroger. - "Ce fichier fait 400 Mo, passe-le sous 50" -
edit_video(video, operation="compress", target_mb=50), interroger. - "Supprime le son" -
edit_video(video, operation="mute"), interroger. - "Découpe la minute du milieu et rends-la carrée" - découper, interroger, puis rogner la sortie avec
aspect="1:1", interroger à nouveau.
Lié
La conversion entre formats (mp4, gif, mp3) est assurée par convert_media, voir la compétence openclip-convert. Transformer une longue vidéo en courts clips classés est le pipeline payant, voir openclip-clipping.