Vidéos dev (hub)
Chemins :
${CLAUDE_PLUGIN_ROOT}est la racine de ce plugin. Si la variable n'est pas définie, la racine se trouve deux dossiers au-dessus du "Base directory" de cette compétence (<racine>/skills/<skill>). Si les compétences ont été copiées seules dans~/.claude/skills, utilisez~/.claude/skillsà la place de${CLAUDE_PLUGIN_ROOT}/skills.
Cette compétence conserve ce qui a été appris en réalisant les vidéos "Qu'est-ce que SSH" et "Bonnes pratiques Git et GitHub". Le résultat est un MP4 vertical 1080×1920 à 30 ips, avec des animations dessinées image par image en Python (Pillow), une voix neuronale gratuite (edge-tts) et une musique générée par code (numpy). Pas de After Effects, CapCut ni aucun logiciel payant.
Répondez en français, simple, résultat en premier.
Carte des compétences
| Compétence | Quand l'utiliser |
|---|---|
| video-dev (celle-ci) | Toujours en premier : questions, préparation, dossier, rendu final, livraison |
| video-conceito | Expliquer comment quelque chose fonctionne (SSH, DNS, HTTPS, Docker, JWT...) : diagrammes, paquets qui voyagent |
| video-tutorial-terminal | Enseigner des commandes à taper ensemble (Git, Docker CLI, npm, Linux...) : terminal avec frappe |
| narracao-voz | Écrire / ajuster le script parlé, la voix, la prononciation des termes en anglais, le timing des mots |
| trilha-video | Musique de fond et mixage avec la voix (ducking) |
Lisez la compétence du type choisi dès que vous connaissez le type. Narration et musique peuvent être lues lorsque vous arrivez à ces étapes.
Chemins
SK = ${CLAUDE_PLUGIN_ROOT}/skills (racine du plugin ; voir "Chemins" ci-dessus)
SK/video-dev/scripts/ motor.py, render.py, novo.py, checar.py
SK/video-dev/exemplos/ssh/ projet complet de la vidéo SSH (concept)
SK/video-dev/exemplos/git/ projet complet de la vidéo Git (tutoriel)
SK/narracao-voz/scripts/ narracao.py, pronuncia_base.json
SK/trilha-video/scripts/ trilhas.py, mixar.py
SK/video-dev/references/ elementos.md (API et layout), licoes.md (erreurs déjà commises)
Étape 1 — Poser les questions (avant tout fichier)
Posez les questions avec l'outil AskUserQuestion, en une seule série de 4 questions maximum, avec l'option recommandée en premier. Sautez ce que l'utilisateur a déjà répondu dans sa demande. S'il dit "décide toi-même", utilisez les valeurs par défaut (en gras).
Série 1 (toujours) :
- Type de vidéo : concept (comment ça marche, avec diagrammes) · tutoriel terminal (commandes pas à pas) · mixte (concept puis commandes : utiliser la compétence concept et emprunter le
Termdu tutoriel). - Visuel : Dracula (sombre, couleurs néon, comme les vidéos finales) · crème (fond papier, boîtes blanches, style papier).
- Durée : court, jusqu'à 60 s (5-6 scènes, bon pour Shorts) · moyen, 1:30-2 min (8-10 scènes) · complet, ~3 min (12-14 scènes, comme SSH et Git).
- Musique : synth (tech minimaliste, celle utilisée dans les vidéos) · lofi · ambiant · piano · sans musique.
Série 2 (seulement si ce n'est pas encore clair) :
- Public : débutant (explique chaque terme) ou qui programme déjà (va droit au but).
- Voix : pt-BR-AntonioNeural (masculine, celle utilisée) ou pt-BR-FranciscaNeural (féminine).
Lancez
narracao.py --vozespour voir les autres. - Points obligatoires : qu'est-ce qui ne doit pas manquer ? Un exemple, une commande ou une histoire spécifique ?
- Clôture : résumé / checklist (par défaut), appel "sauvegarde cette vidéo" ou question pour commenter.
Avant de continuer, confirmez en 2 ou 3 lignes : thème, type, visuel, durée, nombre de scènes et musique.
Étape 2 — Préparer l'ordinateur (une fois par machine)
python SK/video-dev/scripts/checar.py
Si quelque chose manque : python SK/video-dev/scripts/checar.py --instalar (installe edge-tts, pillow,
imageio-ffmpeg et numpy via pip ; ffmpeg est inclus dans imageio-ffmpeg, sans rien installer sur le
système). Les polices Bahnschrift et Consolas sont déjà fournies avec Windows.
Prévenez l'utilisateur une fois : la voix utilise Internet. Le texte du script est envoyé au service vocal de Microsoft. L'animation et la musique s'exécutent à 100 % sur l'ordinateur.
Attention aux chemins longs sous Windows : Python échoue avec "File name too long" dans des dossiers trop profonds (comme le dossier temporaire de Claude). Travaillez dans un dossier court.
Étape 3 — Créer le dossier de la vidéo
Préférez un dossier en dehors des dossiers synchronisés (OneDrive, Dropbox, iCloud) : le rendu écrit des milliers
d'images et la synchronisation ralentit tout. Suggestion : ~/Projets/videos/<nom-court>/. Demandez
si l'utilisateur préfère un autre emplacement.
python SK/video-dev/scripts/novo.py <dossier> --tipo conceito --titulo "Qu'est-ce que Docker" --tema dracula --cenas 12
Structure (1 réplique du script = 1 scène) :
<dossier>/
video.json titre, nom de fichier, thème, voix, débit, musique
roteiro.json ["réplique de la scène 1", "réplique de la scène 2", ...]
pronuncia.json optionnel : termes du projet -> orthographe pour la voix
cenas.py def cenas(): return [[éléments de la scène 1], ...]
audio/ scene01.mp3 + scene01.json (timing de chaque mot)
saida/ <nom>.mp4, <nom>_trilha.mp4, poster.jpg, preview/
Étape 4 — Script → montrer à l'utilisateur → approuver
Écrivez le script en suivant la compétence du type choisi (concept ou tutoriel) et les règles de parole de la compétence narracao-voz. Montrez le script avant d'animer : il est bien plus économique de changer du texte que des scènes. Ne continuez qu'après son accord.
Étape 5 — Narration
python SK/narracao-voz/scripts/narracao.py <dossier>
python SK/narracao-voz/scripts/narracao.py <dossier> --tempos 3 # quand chaque mot de la scène 3 est prononcé
La narration vient avant les scènes, car la durée de chaque scène est celle de la parole + 0,7 s, et les éléments apparaissent à la seconde où le mot correspondant est prononcé.
Étape 6 — Scènes (animation)
Écrivez cenas.py en utilisant from motor import * (API complète dans references/elementos.md).
Pour chaque scène : lancez --tempos N, choisissez ce qui apparaît à chaque mot-clé et utilisez ce temps
(ou 0,2 s avant) dans le t de l'élément.
Vérifiez en regardant les images, pas seulement le code :
python SK/video-dev/scripts/render.py <dossier> --preview # dernière image de chaque scène
python SK/video-dev/scripts/render.py <dossier> --cena 4 # scène 4, une image par seconde
Ouvrez les PNG avec l'outil Read et vérifiez : rien coupé sur les bords, rien superposé, texte assez grand pour être lu sur mobile, rien d'important dans les 250 px du bas (où se trouvent le sous-titre et les boutons TikTok/Reels).
Étape 7 — Rendu final + musique
python SK/video-dev/scripts/render.py <dossier> # saida/<nom>.mp4 + poster.jpg
python SK/trilha-video/scripts/mixar.py <dossier>/saida/<nom>.mp4 synth # saida/<nom>_trilha.mp4
Une vidéo de 3 min prend quelques minutes à rendre : lancez en arrière-plan.
Étape 8 — Vérifier et livrer
- Vérifiez avec ffmpeg la durée et la présence d'audio (
ffmpeg -i fichier.mp4affiche les flux). - Extrayez 3 ou 4 images du MP4 final à différents moments et examinez-les.
- Livrez avec SendUserFile (
display: "render") et dites où se trouve le dossier. - S'il veut une page pour regarder ou partager (comme celle des vidéos SSH et Git),
publiez comme Artifact avec les MP4 et les scripts dans
files. Ne rendez public que s'il le demande. - Rien ne va sur YouTube/TikTok/GitHub sans l'autorisation de l'utilisateur.
Modifications courantes après finalisation
| Demande | Que faire |
|---|---|
| Changer une phrase | éditer roteiro.json → narracao.py --so N → ajuster le timing de la scène N → rendu |
| Prononciation erronée | pronuncia.json dans le projet → narracao.py --so N (voir narracao-voz) |
| Autre visuel | --tema creme dans le rendu, ou changer tema dans video.json |
| Musique trop forte/faible | mixar.py ... --trilha 0.25 (voir trilha-video) |
| Version courte d'une longue vidéo | nouveau projet en copiant uniquement les scènes clés et un script resserré |
Avant de commencer, lisez references/licoes.md : ce sont les erreurs et les réussites des deux premières vidéos.