Communitygithub.com

johnnyfekete/video-organize

Organise les rushes bruts pour une vidéo scénarisée. Il transcrit chaque enregistrement localement, trouve chaque prise et la fait correspondre à une scène du storyboard, évalue la complétude, les mots cassés et l'audio, lit les verdicts de tournage, suggère la meilleure prise ou un patch de deux prises, catalogue les plans B-roll par rapport aux notes du storyboard, écrit TAKES.md et propose un renommage avec des noms de style film (S02A_T03_original). À utiliser lorsque de nouveaux rushes arrivent, lorsque l'utilisateur souhaite organiser, comparer ou choisir des prises, savoir quelles scènes n'ont pas de prise utilisable, ou demande à renommer les clips.

Qu'est-ce que video-organize ?

L'agent vidéo-organise est un assistant intelligent conçu pour automatiser l'organisation et le classement des rushes de tournage pour la production vidéo scriptée. Il s'intègre avec les plateformes comme DaVinci Resolve (via le bridge resolve-bridge) et fonctionne sans nécessiter de timeline ouverte. Son utilité principale est de transcrire localement chaque enregistrement, de détecter les prises, de les faire correspondre aux scènes d'un storyboard Markdown, et d'attribuer un score de complétude et de qualité audio. Il lit également les verdicts de tournage (approbations/rejets) et propose soit la meilleure prise, soit une combinaison (patch) de deux prises. En outre, il catalogue les plans B-roll en extrayant des images clés, et rédige un rapport détaillé TAKES.md. L'agent peut aussi renommer les fichiers selon une nomenclature de type film (par exemple, S02A_T03_original). Il effectue toutes ces opérations sans déplacer ni écraser les fichiers sources, et offre des options de correction et de re-évaluation.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-organize

Demander à votre IA préférée

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

Documentation

Que fait video-organize ?

Exécutez cette commande après video-setup et avant video-assemble. Elle ne nécessite pas de timeline et fonctionne avec Resolve fermé. Nécessite la compétence resolve-bridge installée à côté de celle-ci (ou définissez RVS_BRIDGE), ffmpeg et soit uv (pour Whisper local) soit une commande de transcription dans RVS_TRANSCRIBE_CMD.

Exécutez les scripts avec python3 <dossier de cette compétence>/scripts/organize.py --workdir <dossier> <commande>.

Format du storyboard

Markdown simple, un bloc par scène. L'identifiant de la scène provient du titre.

## S01
Configuration : plan de travail

Laissez-moi commencer par un aveu : l'IA m'a aidé à planifier cette vidéo.

## S03
Voix off : oui
B-roll : montrant l'IA en train de rechercher quelque chose d'amusant

Configuration, Voix off et B-roll sont optionnels. Tout le reste dans un bloc est le texte parlé. Un bloc avec uniquement B-roll : est une scène de pur B-roll. Un script simple sans titres compte chaque paragraphe comme une scène. Sans storyboard du tout, les prises sont regroupées par texte similaire (G01, G02), avec un avertissement en haut de TAKES.md et sans évaluation par rapport à un script ni offre de renommage.

Flux de travail

  1. Vérification de la configuration. Exécutez la check de video-setup. Elle prévient si aucun storyboard n'est enregistré, et .edit/config.json doit contenir storyboard, approve_phrases et reject_phrases (une ancienne liste phrases apparaît seulement comme une note : demandez quelles phrases approuvent et lesquelles rejettent, et enregistrez-les avec setup.py write).
  2. Compter d'abord. Demandez le dossier des rushes, puis :
    python3 scripts/organize.py --workdir <dossier> run --footage <dossier rushes> [--storyboard FICHIER] [--every 2]
    
    Sans --yes, cela affiche les comptes (enregistrements, durée, scènes) et s'arrête. Confirmez avec l'utilisateur que le dossier semble correct.
  3. Exécuter.
    python3 scripts/organize.py --workdir <dossier> run --footage <dossier rushes> --yes
    
    Transcrit (un enregistrement déjà transcrit et inchangé est ignoré), trouve et évalue les prises, extrait les images B-roll, écrit TAKES.md et enregistre les problèmes (scènes sans prise utilisable, B-roll non filmé, clauses cassées que personne ne peut corriger).
  4. Votre partie : décrire le B-roll. L'exécution liste un dossier d'images par enregistrement B-roll (un JPEG par échantillon, l'image N est à N x every secondes). Pour chaque dossier :
    • ouvrez les images et décrivez ce qui est à l'écran, par horodatage ;
    • faites correspondre les descriptions aux notes B-roll : du storyboard : scène, début, fin, et pourquoi ;
    • écrivez la charge utile, puis enregistrez-la :
      {"<chemin d'enregistrement>": {"frames": {"0": "une personne qui tape", "2": "gros plan d'un écran"},
                                      "matches": [{"scene": "S04", "start": 2, "end": 6, "why": "gros plan d'écran"}]}}
      
      python3 scripts/organize.py --workdir <dossier> describe payload.json
      
    Décrivez uniquement ce que vous voyez. N'inventez pas de correspondances.
  5. Votre partie : questions sur les lettres de plan. Lorsque l'exécution ne peut pas déterminer si deux fichiers d'une scène correspondent à la même configuration de caméra, elle liste une question avec une différence d'image. Demandez à l'utilisateur, puis enregistrez chaque réponse :
    python3 scripts/organize.py --workdir <dossier> answer S02 <fichier> B
    
  6. Afficher TAKES.md. Une section par scène avec la prise suggérée en premier, son score et les raisons, les patchs (marqués avec les deux identifiants de prise, toujours une recommandation), les clips non appariés et les scènes sans prise. Lisez les problèmes à l'utilisateur.
  7. Corrections. Lorsque l'utilisateur préfère une autre prise (« utiliser S02A-T03 ») :
    python3 scripts/organize.py --workdir <dossier> pick S02A-T03
    
    Le choix de l'utilisateur persiste après les ré-exécutions. report réécrit TAKES.md sans rien changer d'autre.
  8. Renommage. Proposé par organize.py rename (d'abord la proposition, --apply seulement après que l'utilisateur a approuvé la liste complète, --undo pour annuler). Affichez la liste complète ancien→nouveau et n'appliquez qu'après un oui clair. Ne renommez jamais d'une autre manière. Les clips déjà placés sur une timeline dans le projet Resolve ouvert sont ignorés et listés avec la raison, car relier un clip utilisé peut entraîner une perte de ses coupes et étalonnage ; renommez ces clips à la main dans Resolve si nécessaire. Si le projet contient des clips composés, multicam ou Fusion, dont le contenu ne peut pas être listé, chaque clip importé est ignoré. --apply applique exactement la proposition montrée en dernier et refuse si elle a changé. Avec Resolve fermé, --apply et --undo nécessitent --never-imported (les rushes n'ont jamais été importés) ; si Resolve est ouvert, les clips utilisés sont toujours vérifiés.
  9. Terminé. L'exécution enregistre elle-même l'étape d'organisation, il n'y a donc rien d'autre à enregistrer. Pointez vers video-assemble (pas encore construit) comme prochaine étape.

Noms

CasNom
Identifiant de prise dans TAKES.mdS02A-T03
Fichier avec une seule priseS02A_T03_IMG_5419.MOV
Fichier avec plusieurs prises d'un même planS02A_T01-T03_IMG_5420.MOV
Fichier avec plusieurs scènesS03A_S05A_S06A_IMG_5422.MOV
Deuxième configuration de caméra d'une scèneS02B_T01_IMG_5430.MOV

Chaque plan a une lettre. Une lettre différente signifie une configuration de caméra différente, pas une reprise. Les fichiers B-roll et non appariés conservent leur nom.

Règles

  • Les rushes sources ne sont jamais déplacés ni écrasés. Ils ne sont renommés que par le rename approuvé.
  • Le score va de 0 à 100 et est toujours affiché avec les raisons. Un rejet sur le plateau prime sur le score, une approbation est classée en premier. Les scènes en voix off sont jugées principalement sur le son.
  • Les patchs échangent au moins une idée complète coupée à une pause naturelle, jamais un seul mot.
  • Les fichiers de travail se trouvent dans <dossier>/.edit/organize/ (ne pas éditer à la main). video-assemble ne lit que ceux-ci.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés