Que fait CarVendors Video Studio v4 ?
Parle à l'utilisateur en bengali simple et court. Tout dans les vidéos est en anglais britannique.
$CS = ce dossier de skill (~/.claude/skills/carvendors-studio, Windows %USERPROFILE%\.claude\skills\carvendors-studio).
$PY = le Python du skill : Mac ~/.cache/carvendors-studio/venv/bin/python, Windows
%USERPROFILE%\.cache\carvendors-studio\venv\Scripts\python.exe (créé par l'installation ; contient numpy + scipy).
0. Règles inflexibles
- Aucun fait inventé. Prix, kilométrage, moteur, année, « nouvelle arrivée », « vendu », financement, économie, plaques uniquement avec preuve. Les anciens textes et commentaires TikTok ne sont pas des preuves.
- Le réel reste réel. Uniquement des images réelles et des photos de showroom réelles ; pas de voitures, personnes, showrooms, panneaux générés par IA.
- Marque : CarVendors.co.uk est la marque principale ; « Concessionnaire vedette : B&F Cars » est secondaire. CarVendors aide les gens à trouver/entrer en contact avec des voitures ; il ne vend pas la voiture. Les deux sont nos sociétés.
- Vidéo complète, durée équilibrée : garde la SOURCE entière dans l'ordre (pas de coupures de scène). Ajoute un hook et un outro. Durée totale ≈ source + 3-7 s. Rogne uniquement les images noires/gelées/dupliquées.
- Économique par conception : utilise la voie rapide (
batch.py+build.py). N'écris pas de HTML de composition à la main, ne réanalyse pas les hooks (le catalogue partagé les contient), regarde UNE planche contact par vidéo. Demande seulement quand tu es bloqué. - Ne jamais imprimer ou copier les clés API (
~/.config/video-studio/.env). Ne jamais écraser une exportation (_v2,_v3…). - Incertain de l'emplacement de quelque chose ou de ce que l'utilisateur veut → vérifie
$PY $CS/tools/paths.py showet le dossier Drive CarVendors (paths.py get carvendors— il contient tout le contexte : sources, logo, photos de showroom, bannières, avis clients, aperçus de style de texte), puis pose une courte question.
1. Où se trouvent les choses (automatique, Mac + Windows)
$PY $CS/tools/paths.py show trouve le dossier Google Drive « My Drive » de ce PC et lit la configuration d'équipe
My Drive/Projects/CarVendors/_studio/config.json (chemins relatifs à My Drive + paramètres par défaut de l'équipe). Pas de configuration lorsque Drive est en cours d'exécution. Remplacements pour un PC : paths.py set <clef> <chemin> / paths.py drive <chemin My Drive>.
Clefs : car_sources (dossiers 1-200 avec video.mp4, comments.txt, parfois Voice/), hooks, bgm, sfx,
fonts, logos, showroom_pics, text_refs, outros, exports (vidéos finies pour téléchargement), studio
(catalogue partagé + registre), projects_root (dossiers de travail locaux, ~/Projects/videos).
2. La boucle de traitement en masse (par défaut)
$PY $CS/tools/batch.py plan 1-20 # dossiers de travail ~/Projects/videos/bnf-vNNN + brouillon job.json + planche contact + zones de texte
→ pour chaque vidéo : regarde work/qa/contact.jpg, édite job.json (§3), mets "ready": true
$PY $CS/tools/batch.py render 1-20 # construit et rend chaque travail prêt, exporte vers Drive, écrit le registre des hooks
$PY $CS/tools/batch.py status 1-200
Une vidéo à la main : $PY $CS/tools/build.py <job.json> (vérification uniquement) → facultatif
npx hyperframes snapshot <job>/work/hf --at <t> → build.py <job.json> --render.
Travaille par lots de 10-20 ; après chaque lot, regarde les planches d'images (output/*_frames.jpg) avant le suivant.
3. Ce qu'il faut décider par vidéo (le seul travail d'IA)
À partir de la planche contact + source_info + text_hint dans job.json :
- slug : nom de modèle court, par ex.
mitsubishi-asx. - Apparence du texte : suis exactement
references/text-style.md(les images d'aperçu danstext_refs) : texte blanc Montserrat Black, UN accent = pastilles/étiquettes rouge marque#E8202A, cartes blanches avec texte charbon, vert uniquement pour les petits points/coches, logo propre en haut-centre. Jamais de boîtes/pastilles/insignes charbon/noir sur les images. - Ancien texte (chaque boîte
text_hint,src= pixels source,canvas= 1080x1920 px), meilleure option économique : garder (inoffensif, lisible, cohérent avec la marque, par ex. un nom de modèle simple) → couvrir aveccovers[](text-cover, stylecard= carte blanche + étiquette kicker rouge, sur les coordonnéescanvas, TOUJOURS avec une ligne, par ex. kicker "EN VEDETTE" + "Repéré chez B&F Cars") lorsque cela affiche des prix, « TikTok », d'autres entreprises, des affirmations grossières ou non vérifiées → supprimer (remove[]= boîtesrc, inpainting) uniquement si une couverture cacherait la voiture. Jamais de couverture vide. - Superpositions (0-3, moments clés uniquement, jamais sur le visage/insigne/roues de la voiture) :
label-cardsur le premier plan ·punch-text(« Iconique Abarth / [Style] », « Parfait pour / [Conduite en ville] », « Sportif / [Intérieur] ») sur les plans de détail ou d'intérieur ·hero-model(grand « ABARTH / 595 ») quand le ciel est vide ·detail-line« Dans les / détails. » sur un gros plan. Pastille = rouge marque toujours. Sur nuage blanc / pare-brise lumineux : déplace le texte oulineBg0.35-0.5 (lueur douce, pas de boîte). Les temps sont en secondes depuis le début de la vidéo principale. - hook : laisse
"auto"(le moins utilisé, pas utilisé dans les N dernières éditions)."car_hook": truepour le dossier Car Hooks. Un hook nommé :{"file": "Car Hooks/Car Flip.mp4", "in": 0, "out": 3.2}— action entière, coupe uniquement le temps mort après le payoff.transition:cut(par défaut) ·whip·flash·zoom— exactement une. - voix : uniquement si
ready_voiceoverexiste et que l'utilisateur le souhaite ; transcris et vérifie d'abord les faits. Tout le reste (insigne logo, musique, outro, étalonnage) provient des paramètres par défaut de l'équipe ; ne remplace que pour une raison.
Liste complète des champs : docstring de tools/build.py. Exemple : examples/job-v002.json.
4. Hooks partagés, outro, musique (identiques sur chaque PC via Drive)
$PY $CS/tools/hooks.py list|stats|pick <id>|sheet <name>|scan— catalogue de tous les hooks (durée, pic d'action, in/out suggérés, bande d'aperçu) et compteurs d'utilisation depuis_studio/ledger/*.json. Exécutescanaprès avoir ajouté des hooks.- Outro : mets la vidéo outro de l'équipe dans le dossier
outroset définisdefaults.outro_videodans_studio/config.json; chaque nouvelle construction l'utilise. En attendant : outro avec photo réelle de showroom (defaults.outro_photo). - Musique : liste
defaults.musicdans la configuration (pistes de bibliothèque, licence vérifiée, ligne de crédit dans la publication). Logo :defaults.logo(logo-badge, styleclean, en haut-centre — l'apparence de référence).
5. Avant de dire qu'une vidéo est terminée
build.py signale hyperframes check — il doit afficher « Check passed » (corrige le contraste par position ou lineBg).
Regarde la planche d'images : ancien texte disparu ou couvert, pas de texte sur la voiture, logo lisible, hook → coupe principale nette.
Rapporte en bengali : chemin(s) de sortie, hook utilisé, ce qui a été couvert/supprimé, tout blocage. Donne le texte de publication
en anglais britannique quand demandé (inclut la ligne de crédit musicale pour les pistes NCS).
6. Lire plus seulement quand nécessaire
references/text-style.md— L'apparence du texte (palette, typographie, les sept éléments, placement). À lire avant les superpositions.references/components.md— Les variables de chaque composant (label-card, punch-text, text-cover, logo-badge, hero-model, detail-line, shape-text, verified-feature, caption-line, localized-contrast, outro-real-showroom).references/design.md— Système de conception complet, couleurs, préréglages typographiques (PUNCH / CINEMATIC), échelle de l'ancien texte, finition éditeur humain, étalonnage couleur, marque/affirmations.references/audio.md— Voix (ElevenLabstools/tts.py, modèle choisi par vidéo, pré-approuvé pour ce travail), musique/SFX, volume sonore.references/quality.md— Portes qualité et historique.- Nouvelles publicités à partir de zéro (histoire + scènes IA + voix) : planifie d'abord avec l'utilisateur ; mêmes règles,
build.pypour l'assemblage.