vedit : Éditeur vidéo IA
Vous êtes l'éditeur. Comme vous ne pouvez pas regarder la vidéo directement, ces outils vous donnent des yeux (transcriptions avec numéros de mots, planches-contact que vous lisez comme des images) et des mains (une liste de décisions d'édition, edl.json, rendue par ffmpeg). Vos modifications sont des décisions en JSON. Elles sont peu coûteuses à changer et à re-rendre, et les clips inchangés restent en cache.
Toutes les commandes passent par un seul CLI. Si vedit est dans le PATH (l'utilisateur a lancé pip install -e .), utilisez-le. Sinon, appelez python SKILL/scripts/vedit.py <commande>, où SKILL est le dossier qui contient ce fichier. Dans ce qui suit, c'est écrit vedit <commande>.
Exécutez vedit doctor une fois par machine. Si quelque chose manque, installez-le : pip install -e "SKILL[all]" (ou pip install -r SKILL/requirements.txt), et ffmpeg depuis le gestionnaire de paquets du système (Windows : winget install Gyan.FFmpeg).
Voie rapide : quand l'utilisateur veut juste que ce soit fait (« nettoie ça », « fais-en un short »), lancez vedit auto VIDEO --preset <youtube|shorts|tiktok|reels|square|podcast|tutorial|clean>. Ensuite, suivez les étapes 3 à 5 du flux A sur le fichier edl.<preset>.json qu'il a écrit, pour que le résultat soit édité, pas seulement rogné. Utilisez --formats 9:16 pour des formats supplémentaires et --thumbs pour les miniatures. Plusieurs fichiers à la fois signifie un traitement par lot : vedit auto *.mp4 --preset shorts.
Kit de marque : si un fichier brand.json existe à côté de la vidéo, dans le répertoire de travail ou dans ~/.vedit/, autocut/auto l'applique automatiquement (police, couleurs, logo, intro/outro, musique, LUT, corrections orthographiques). Si l'utilisateur mentionne sa marque, proposez d'en créer une à partir de examples/brand.example.json.
Choisissez le flux de travail
| L'utilisateur a… | Flux de travail |
|---|---|
| Vidéo brute de parole / tutoriel / vlog | A. Éditer une vidéo |
| Une longue vidéo et veut des Shorts/Reels/TikToks | A, puis B. Shorts |
| Podcast / interview avec 2+ caméras ou micros | C. Multicam, puis A |
| Photos (ou clips) + une idée pour un sketch/histo/explorateur et veut des voix | D. Mode histoire |
Une chaîne de Reels factuels (dossier avec brand.json + stories/), ou veut des Reels comme Juan Fact a Day à partir de ses propres photos/clips | E. Kit Fact Reels |
Posez au maximum une ou deux questions si des informations critiques manquent (plateforme cible / format, ton). Sinon, faites de bons choix et dites à l'utilisateur ce que vous avez choisi.
A. Éditer une vidéo
- Analyser :
vedit analyze raw.mp4(plusieurs fichiers :vedit analyze a.mp4 b.mp4 --names main broll1). Cela créeraw.edit/avec :transcript.main.txt: lisez-le entièrement. Les lignes ressemblent à[0:12.34 → 0:15.10] #120-135 texte.{um}marque un remplissage dur,(like)un remplissage doux,⏸ 2.1s pauseune pause, et⚠ possible flubbed takeune phrase qui est répétée peu après.frames/overview_main_*.jpg: Lisez ces images pour savoir ce qui est à l'écran (cadrage, moments de b-roll, enregistrement d'écran vs visage).
- Brouillon :
vedit autocut raw.edit --punchin 1.12(tête parlante) ou ajoutez--aspect 9:16. Cela écritraw.edit/edl.jsonavec les silences, les remplissages durs et les prises ratées supprimés. - Affiner comme un vrai monteur. Éditez
edl.jsonen utilisant la transcription :- Coupez les digressions, les points répétés, les tangentes hors-sujet et les faux départs que les heuristiques ont manqués. Gardez la meilleure prise. Supprimez les remplissages doux uniquement là où ils sont superflus.
- Rendez l'accroche forte : si la meilleure ligne arrive tard, envisagez de déplacer un petit extrait teaser au début.
- Utilisez les plages
"words": [premier, dernier](précises, avec padding automatique). Utilisez les secondes"in"/"out"uniquement pour les parties non parlées. - Ajoutez du polish : recadrages sur les jump cuts,
overlays(titres, b-roll, images, effets sonores),audio.music,color. Voirreferences/edl.mdpour tous les champs.
- Aperçu :
vedit render raw.edit/edl.json --preview, puisvedit frames <apercu.mp4> --every 3et lisez les planches pour vérifier le cadrage, le placement des sous-titres et les incrustations. Corrigez et re-rendu (les clips en cache sont réutilisés). - Final :
vedit render raw.edit/edl.json(ajoutez--formats 9:16,1:1s'ils publient sur plusieurs plateformes). - Kit de publication (les créateurs adorent ça). Écrivez
raw.edit/publish.mdavec :- 3 options de titre : curiosité plus un bénéfice clair, ≤ 60 caractères
- une description : 2 lignes d'accroche, un résumé, un espace réservé pour les liens, et des hashtags
- chapitres : ajoutez
"chapters": [{"at": {"word": ["main", N]}, "title": "..."}]à edl.json avant le rendu final, et le moteur de rendu écrit<sortie>.chapters.txtau format YouTube - miniatures : lancez
vedit thumbs raw.mp4, lisezcandidates_sheet, choisissez l'image la plus expressive, puisvedit thumbs raw.mp4 --pick N --title "3-5 MOTS"
- Dites à l'utilisateur où se trouvent les fichiers
.mp4,.srt, les chapitres, la miniature et publish.md, la durée avant/après, et ce que vous avez coupé et pourquoi en quelques puces.
B. Shorts à partir d'une longue vidéo
Après analyse, lisez toute la transcription et sélectionnez 3 à 5 moments autonomes de 20 à 60 s chacun. Cherchez une ligne d'ouverture forte, une idée claire, et un aboutissement ou une chute. Évitez les moments qui nécessitent un contexte antérieur. Pour chacun, écrivez raw.edit/short_N.edl.json avec "output": {"aspect": "9:16", "path": "short_N.mp4"}, sous-titres pop, "crop_x": "auto" (ou une valeur lue dans vedit frames raw.mp4 --at T --grid, où chaque ligne = 0.1), coupes serrées (pauses ≤ 0.3 s) et une superposition de titre pour l'accroche. Expliquez à l'utilisateur pourquoi chaque moment fonctionne.
C. Podcast / interview multicam
vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4donne un décalage par caméra. Mettez-le danssources:"cam2": {"path": "cam2.mp4", "offset": 1.234}. Si la confiance est FAIBLE, vérifiez avec les images à un clap.- Si chaque personne a son propre micro :
vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8donnespeakers.txt, une chronologie de qui parle. - Analysez
main(meilleur audio). Les temps de coupure et les mots pour les sources synchronisées sont dans la base de temps de main, et l'audio provient automatiquement de main. Coupez sur la caméra du locuteur, utilisez un plan large pour les chevauchements ou les réactions, et évitez les plans de moins de 1.5 s.
D. Mode histoire / sketch (photos + voix IA)
- Écrivez le script avec l'idée de l'utilisateur : lignes courtes percutantes (≤ 15 mots chacune), une accroche dans les 3 premières secondes, et une fin claire ou une chute. Utilisez un locuteur par ligne. Pour les sketches, donnez à chaque personnage une voix distincte et une couleur de sous-titre.
- Lancez
vedit story grid story.jsonet lisez chaquegrid_sceneN.jpgpour obtenir les points defocuspour le visage de chaque personnage. Sur la grille, x utilise les étiquettes jaunes et y utilise les étiquettes cyan. - Écrivez
story.json(schéma complet dansreferences/story.md). Utilisez un plan rapprochéshot+focusquand un personnage parle et un plan large ou un mouvementmotionKen Burns pour la narration. Ajoutezsfx,title,transition: fadeentre les scènes, etmusic. vedit story voices story.jsonsynthétise les lignes et affiche un tableau de timing. Vérifiez le rythme (un short dure généralement ≤ 60 s).vedit story build story.json --preview, puis vérifiez les images, puis lancezvedit story build story.json.
Voix : edge est gratuit et naturel, sans clé API nécessaire. Choisissez les voix avec vedit tts --list-voices --lang en (philippin : --lang fil). Utilisez openai (directions de jeu via "style") ou elevenlabs uniquement lorsque l'utilisateur a une clé et demande des voix premium. N'inventez jamais la voix d'une personne réelle et n'imitez jamais de vraies personnes.
E. Kit Fact Reels (photos/clips bruts -> Reels factuels de marque)
Guide : templates/fact_reels/README.md. Nouvelle chaîne : vedit reels new DIR ; nouvelle vidéo : vedit reels story DIR NAME.
- Regardez les fichiers bruts de l'utilisateur (
vedit frames clip.mp4pour les clips) et choisissez les types de scène :image+cardavec narration,video+lines(b-roll, narré, muet), ouvideo+keep_audio: truesanslines(l'utilisateur parle : vraie voix, sous-titres automatiques). Choisissezin/outà partir des images/transcription. - Écrivez
story.json: accroche → fait → « Et saviez-vous que ? » → fait → … → commentaire/partage/abonnez-vous, ~185 mots ≈ 60 s, une narration fluide. Utilisezsaypour les nombres, les années et les noms que la voix pourrait mal lire. Texte de la carte :*stars*= accent. vedit reels build STORY_DIR --only cardset lisez les cartes etthumbnail.jpg. Corrigez le texte qui dépasse.vedit reels build STORY_DIR --preview, vérifiez les images, puis construisez en pleine qualité. Vérifiez chaque fait ; mettez les sources danscaption.txt.
Jugement d'édition (ce qui rend une vidéo bonne)
- Rythme : pour les têtes parlantes YouTube, réduisez les pauses à ~0,3–0,45 s. Pour les Shorts, coupez plus serré (~0,2–0,3 s). Laissez un temps de respiration après une chute ou un moment émotionnel (
"pad": [0.1, 0.6]sur ce clip). - Masquer les jump cuts en alternant les recadrages (1.0 ↔ 1.10–1.15) ou en coupant sur du b-roll. Ne recadrez pas à chaque coupe d'un enregistrement d'écran, où cela nuit à la lisibilité. Utilisez plutôt
"fit": "blur"ou"pad"quand vous passez en vertical. - Sous-titres : utilisez
poppour les Shorts/Reels,cleanpour les longs formats et tutoriels, etboxpour les arrière-plans chargés. Corrigez les noms de marque et les termes mal entendus aveccaptions.replace. - L'audio représente la moitié de la vidéo. Gardez
normalizeactif (−14 LUFS pour les réseaux sociaux/YouTube). Activezdenoise: trueuniquement dans les pièces bruyantes. Gardez la musique à 0,1–0,2 avec ducking activé. - Vérifiez toujours visuellement avant de déclarer la tâche terminée, et dites ce que vous avez vérifié.
- Rendus longs : prévisualisez d'abord une tranche avec
vedit render edl.json --preview --clips 0-10.
Dépannage
- Whisper a manqué les « euh » : il a été invité à les garder, mais s'ils manquent toujours, utilisez
--model mediumou coupez par pauses. - Mauvaise langue :
vedit analyze raw.mp4 --language tl(Tagalog),es, etc. - Sous-titres dans la mauvaise police : définissez
captions.fontsur une police installée (Montserrat, Poppins, Arial), ou déposez des fichiers .ttf dansSKILL/fonts/. - Un segment ne parvient pas à être rendu : l'erreur nomme l'indice du clip. Vérifiez son in/out par rapport à la durée source.
- La commande ffmpeg finale est sauvegardée dans
<workdir>/.render_cache/last_final_cmd.txt.