product-video
Des images réelles + un journal d'événements → un plan déclaratif (YAML) → pvk render → planche contact → final.
Les scripts gèrent le timing, les zooms, les superpositions et l'audio ; vous scénarisez, rédigez le plan et vérifiez les images.
PVK=~/.claude/skills/product-video/bin/pvk # ou `pvk` après `pip install -e ~/.claude/skills/product-video`
Quand l'utiliser
| L'utilisateur souhaite | Créer | Lire d'abord |
|---|---|---|
| Que les utilisateurs découvrent une fonctionnalité ou une application entière ("vidéo hướng dẫn", didacticiel, onboarding) | didacticiel : chapitres de 1 à 3 min, puis pvk join | references/storyboard.md |
| Attirer l'attention sur un produit ou une version ("vidéo quảng cáo", promo, lancement, teaser) | promo : un montage 16:9 de 30 à 45 s sur le rythme | references/storyboard.md |
| Une courte démo d'application web ou un clip de reproduction de bug | la compétence web-video seule | - |
Règles strictes
- Application réelle, données fictives. Filmez le produit réel avec des données fictives réalistes. Pas de maquettes, et jamais de données clients réelles, secrets ou comptes de production (
references/privacy.md). - Scénario d'abord, puis un accord. Rédigez le scénario en langage simple et obtenez l'approbation avant toute prise.
- Le design du projet. Exécutez
theme initsur le projet, vérifiez le résultat par rapport à son guide de design. - Musique et effets sonores obligatoires. Chaque vidéo reçoit un fond sonore et des sons d'interface ; masterisez à -16 LUFS.
- Brouillon, vérification, puis final. Rendez avec
--draft --check, ouvrez chaque planche contact, corrigez, et seulement ensuite--final. - Rien ne quitte la machine (téléversements, publications, pièces jointes) sans l'accord du propriétaire.
- Ne gérez jamais les dialogues de sécurité, de trousseau ou de connexion. Laissez-les à l'utilisateur.
Étape 0. Configuration (une fois par machine)
$PVK doctor # ffmpeg, Python 3.11+, packages, Chromium, polices, outils optionnels
python3 -m pip install -r ~/.claude/skills/product-video/requirements.txt && python3 -m playwright install chromium
$PVK fonts # télécharge Inter, Playfair Display, JetBrains Mono (OFL) dans ~/.cache/product-video
$PVK sfx gen && $PVK music beds
$PVK selftest # rend un court chapitre et une promo de la démo fournie (~1 min)
Outils manquants : affichez la commande d'installation et demandez ; n'installez pas en silence.
Étape 1. Thème à partir du projet
cd <dossier-video> # p. ex. <projet>/video (gardez les sorties hors de git)
$PVK theme init --repo <projet> --out theme.json
$PVK fonts --theme theme.json
$PVK overlay chapter title="Aperçu" --theme theme.json --out preview.png # examinez-le
Corrigez les couleurs, les polices, brand et logo dans theme.json à la main là où le guide de design en dit plus (references/theme.md).
Étape 2. Scénario
Didacticiel : un chapitre par tâche que l'utilisateur doit apprendre ; chaque chapitre = carte chapitre, images avec 3 à 8 légendes numérotées, carte récapitulative. Promo : 5 à 8 moments forts, chacun une courte carte titre + un moment d'images de 2 à 4 s, carte de fin. Rédigez-le sous forme de tableau (temps, écran, légende, son) et obtenez un accord. Détails : references/storyboard.md.
Étape 3. Capture
| Produit | Comment |
|---|---|
| Application native macOS | écrivez scene.py (voir examples/scene_native.py), puis $PVK capture native scene.py --app "App" --out takes/s1 --rehearse, puis sans --rehearse |
| Application web | enregistrez avec web-video (record.py --slug x), puis $PVK capture import video-out/x/v1 --name w1 |
| Autre | placez raw.mp4 et un events.json (voir references/plan-format.md) dans takes/<nom>/ |
| Pas encore d'application / essai | $PVK demo --out takes/demo |
Avant chaque prise : données fictives chargées, notifications désactivées (Ne pas déranger), anciennes notifications fermées, taille de fenêtre fixe.
Après chaque prise : $PVK check popups takes/s1 et $PVK check grab takes/s1 grab.png 1 5 9 pour l'examiner.
Pièges macOS (touches Mission Control, Cmd vs Ctrl, le vrai pointeur, HUDs) : references/pitfalls.md.
Étape 4. Plan
Copiez examples/tutorial.yaml ou examples/promo.yaml à côté des prises et modifiez-le. Les temps dans les clips sont en secondes source à partir du events.json de la prise ; les boîtes sont en pixels source. Format complet : references/plan-format.md.
$PVK render ch01.yaml --only-plan # rapide : out/plan/ch01.md liste chaque clip, légende, zoom, son, avertissement
Corrigez chaque avertissement (légendes courtes, chevauchements, callouts qui traversent un zoom, numéros d'étape à 2 chiffres).
Étape 5. Brouillon et vérification
$PVK render ch01.yaml --draft --check # 720p ; out/drafts/ch01.mp4 + out/check/ch01/contact-*.png
$PVK render ch01.yaml --frames 3.2,7.5 # images fixes aux moments de sortie, pour un examen plus rapproché
$PVK promo promo.yaml --draft --check # promos : même moteur, coupures alignées sur la grille rythmique
Ouvrez chaque planche contact (lisez les PNG). Vérifiez : légendes lisibles et ne couvrant pas l'action, zoom au bon endroit, pas de pop-up OS ou de notification persistante, curseur là où se trouve le clic, cartes correctement orthographiées, volume sonore environ -16 LUFS. Jusqu'à 3 passes de correction, puis montrez le brouillon et la planche à l'utilisateur.
Étape 6. Final et montage complet
$PVK render ch01.yaml --final # 1080p, out/final/ch01.mp4
$PVK join out/final/tutorial.mp4 out/final/ch0*.mp4
$PVK check out/final/tutorial.mp4
Rapport : chemins des fichiers, durées, volume sonore, ce que vous n'avez pas pu vérifier (vous ne pouvez pas entendre le mix : dites-le).
Musique et son
music: bed:soft-piano | bed:ambient | bed:promo sont des fonds sonores synthétisés (travail personnel, gratuit). Pour les pistes sous licence : $PVK music fetch (où les obtenir), puis $PVK music add track.mp3 --title ... --author ... --source URL --license ... (normalise à -20 LUFS et enregistre dans music/LICENSES.md). Ne commettez jamais de pistes tierces. Carte des effets sonores, ducking et volume sonore : references/audio.md.
Références
references/storyboard.md: didacticiel vs promo, structure des chapitres, rédaction des légendes, coupures rythmiquesreferences/plan-format.md: chaque clé du plan, le format events.json, le calcul de la timelinereferences/theme.md: theme.json,theme init, polices (OFL), logoreferences/audio.md: fonds sonores, musique sous licence, carte des effets sonores, objectifs de volumereferences/capture.md: capture native macOS, import web-video, structure des prisesreferences/pitfalls.md: tout ce qui a mal tourné dans des projets réels et la solutionreferences/privacy.md: règles relatives aux données et au partage