Que fait Viral Video Distiller Pro ?
Transforme une vidéo en un dossier de preuves auditable, un rapport de distillation lisible et un plan de migration structurelle directement exécutable. Principe fondamental : d'abord les faits, ensuite l'analyse ; les faits et les inférences sont séparés ; en l'absence de preuves, déclassement explicite.
Déclenchement et routage de l'intention
Prioriser une utilisation "en une phrase", ne pas demander à l'utilisateur de répéter le niveau de preuve, l'algorithme de coupure, la couverture de la chronologie ou les règles de validation.
Déclenchement automatique
Entrez dans cette compétence si l'une des conditions suivantes est remplie :
- Le texte contient des termes vidéo sémantiques tels que "analyser / décomposer / décortiquer / répliquer / imiter / étudier" et "vidéo / courte vidéo / Douyin / TikTok / Reels / Xiaohongshu / Bilibili / YouTube / narration".
- L'entrée contient une URL de plateforme vidéo identifiable, par exemple
douyin.com,v.douyin.com,tiktok.com,xiaohongshu.com,xhslink.com,bilibili.com,b23.tv,youtube.com,youtu.be,instagram.com/reel. - L'entrée contient un chemin de fichier vidéo local ou une pièce jointe avec les extensions
.mp4,.mov,.mkv,.webm,.m4v,.avi,.flv,.ts. - L'utilisateur ne fournit qu'un lien vidéo/fichier vidéo sans verbe : par défaut, interpréter comme "analyser cette vidéo" ; d'abord faire une pré-vérification, ne pas demander un long prompt supplémentaire.
Ne pas déclencher ou transférer
- Analyser uniquement des PDF, Word, articles web, images ou audio, sans intention d'analyse vidéo.
- Demander uniquement la lecture, le téléchargement, la compression, le transcodage, le téléchargement ou la suppression d'une vidéo, sans besoin de décomposition du contenu.
- Souhaiter un résumé rapide du contenu vidéo sans vouloir de crochets, de plans, d'interactions ou de scripts de production, utiliser la capacité de résumé vidéo standard.
Comportement par défaut pour "Analyser" et "Répliquer"
- "Analyser / Décomposer / Décortiquer" : générer directement un pack de distillation de production complet.
- "Répliquer / Imiter" : d'abord effectuer automatiquement l'analyse de la vidéo originale ; si l'utilisateur a déjà donné un nouveau thème/public, continuer à générer un script de migration original.
- L'utilisateur dit "répliquer" sans nouveau thème : ne pas interrompre l'analyse, d'abord livrer la distillation de la vidéo originale avec des emplacements remplaçables ; ne demander une courte question que lorsqu'un nouveau sujet spécifique est nécessaire pour générer un nouveau script.
- Interdire de demander à l'utilisateur de confirmer les plans, les niveaux de preuve, les seuils d'algorithme, les poids de notation ou les champs du rapport ; ce sont des responsabilités internes de cette compétence.
Prompt utilisateur recommandé : Analyse et réplique cette vidéo Douyin : <lien>.
Entrées applicables
- Fichiers locaux
.mp4,.mov,.mkv,.webm. - Liens publics Douyin ; analyser uniquement le contenu auquel l'utilisateur a le droit d'accéder et d'étudier.
- Suppléments optionnels : capture d'écran/JSON des données de la plateforme, public cible, nouveau thème, positionnement du compte.
Si seuls du texte, de l'audio ou des images clés sont disponibles, une analyse partielle peut être effectuée, mais il ne faut pas prétendre avoir réalisé une distillation vidéo complète. Marquer les modules non vérifiables comme N/A.
Livrables obligatoires
Le répertoire final est à la fois un pack de rapports et un pack d'actifs de production pouvant être monté et audité :
- Neuf fichiers principaux :
distillation-report.md,evidence.json,transcript.json,verbatim-transcript.md,second-by-second-timeline.csv,reproduction-script.md,capcut-execution-checklist.md,asset-checklist.md,quality-self-check-report.md. - Actifs de production :
source_video.mp4,keyframes/,audio-and-transcription/,storyboard-files/,reproduction-sop.md.
Les déchets de construction reproductibles comme .venv, cache de modèle, __pycache__, fichiers temporaires de téléchargement doivent être placés dans work/ en dehors du répertoire de livraison. La vidéo, les images, l'audio, la transcription, le storyboard et le SOP sont des actifs de processus vérifiables et doivent être livrés.
Processus d'exécution
1. Pré-vérification et limites d'autorisation
Exécuter :
python3 scripts/preflight.py "<chemin local ou lien>"
- Si le fichier local n'existe pas, d'abord confirmer le chemin.
- Pour les liens Douyin, exécuter
download_douyin.py: d'abord essayeryt-dlp; si celui-ci demande des cookies frais, échoue avec une erreur de connexion/captcha, ou si l'environnement n'a pasyt-dlp, le script demande automatiquement le HTML de la page de partage, extrait les candidats CDN restreints de Douyin/ByteDance, télécharge et vérifie avecffprobe. Si les deux voies échouent, demander alors seulement à l'utilisateur de fournir une vidéo locale. - Le fallback de la page de partage ne doit pas imprimer, sauvegarder ou écrire dans le rapport l'URL CDN complète signée, les cookies ou les paramètres d'authentification ; ne doit pas contourner le contrôle d'accès aux connexions, captchas, contenu payant ou privé. Traiter uniquement les liens de partage public que l'utilisateur est autorisé à analyser.
- Ne pas générer de rapport seconde par seconde uniquement à partir du titre, de la couverture ou de la description de la page web.
2. Créer les répertoires de travail et de livraison
python3 scripts/scaffold_delivery.py <répertoire de sortie> --source "<source>"
Utiliser assets/templates/distillation-report.md comme modèle de corps de rapport.
Le répertoire de sortie sauvegarde les actifs de production ; créer l'environnement d'exécution et le cache dans work/ au même niveau ou dans un répertoire temporaire système, ne pas créer .venv dans le répertoire de sortie.
3. Extraire les preuves déterministes
Pour les vidéos locales, exécuter :
python3 scripts/extract_evidence.py <vidéo> <répertoire de travail/evidence>
L'outil extrait les métadonnées média, une piste audio d'analyse mono 16 kHz, les intervalles de silence, les points de coupe candidats de scène et les images clés à 1 ips. Copier normalisée la vidéo originale en source_video.mp4, sauvegarder les images clés dans keyframes/, la piste audio d'analyse et les résultats ASR originaux dans audio-and-transcription/. Lire intégralement references/automated-visual-analysis.md : confirmer automatiquement les coupes via multi-signaux, les résultats de faible confiance sont automatiquement déclassés en coupes suspectes ou événements visuels internes. Ne pas demander de participation humaine pendant l'analyse, ni appeler un résultat de seuil de scène unique un véritable plan.
3a. Obtenir la transcription orale avec horodatage (ASR)
Prioriser l'exécution de Whisper (modèle small, multiplateforme, prend en charge le chinois) :
python3 scripts/run_asr_whisper.py <vidéo ou audio> <répertoire de livraison> [--model small] [--language zh]
- La première utilisation télécharge automatiquement le modèle (small ~460 Mo, mis en cache localement), et nécessite l'installation des dépendances :
pip install openai-whisper(oufaster-whisper). - Le script produit une transcription avec horodatages de début et de fin, fusionne dans
evidence/raw_evidence.json(analysis_mode.asr="A",speech_metrics, éléments de preuveev-asr), et génèretranscript.json,verbatim-transcript.mdetaudio-and-transcription/asr_raw.json. - Le texte ASR original est immuable : chaque segment conserve
raw_text; les corrections fiables sont écrites dansnormalized_text, et lescorrections[]enregistrent le mot original, le mot corrigé, la justification et la confiance. Ne pas corriger sans justification fiable. - Si Whisper n'est pas disponible et ne peut pas être installé : marquer le module correspondant comme N/A, ne pas inventer le débit de parole ; si un autre outil ASR est disponible, fusionner sa sortie, enregistrer également
ev-asravec le niveau réel.
Si l'environnement dispose d'une capacité OCR, générer une observation des sous-titres et la fusionner dans le registre des preuves ; sinon, marquer le module correspondant comme N/A ou utiliser l'observation multimodale directe marquée B. Ne pas inventer pour compléter.
4. Construire le pack de preuves unifié
Lire intégralement references/evidence-schema.md et references/analysis-protocol.md. Fusionner raw_evidence.json dans evidence.json du répertoire de livraison :
- Chaque observation enregistrée sous un ID de preuve unique.
- Toutes les conclusions citent
evidence_ids. - Pour les inférences de niveau C, écrire
rationaleet expliquer les interprétations alternatives. - Avant la livraison, écrire
delivery_metrics.evidence_item_count = len(evidence_items); le rapport d'auto-vérification de qualité référence cette valeur, ne pas additionner manuellement. - Lors de l'utilisation de termes comme "source externe / projet officiel / corroboration croisée", enregistrer la source dans
external_sources[](id/title/url/accessed_at/grade), les conclusions associées référencentexternal_source_ids; si non enregistré, supprimer ces termes, ne pas sous-entendre une vérification. - Le
second-by-second-timeline.csvdoit avoir une ligne par seconde et couvrir au moins 95 % de la durée ; remplir respectivementvisual_evidence_ids,audio_evidence_ids,subtitle_evidence_idset les niveaux de confiance de chaque modalité. Les faits visuels ne peuvent citer que des images, OCR ou observations multimodales directes ; l'ASR ne peut pas à lui seul étayer une description visuelle ; de même pour l'audio et les sous-titres. Chaque ligne doit citer au moins une preuve temporellement adjacente d'une durée ne dépassant pas 15 secondes et chevauchant cette seconde. Les espaces blancs, les scènes noires et le silence doivent également occuper une ligne avec l'état spécifié. - Le crochet 3s couvre fixement 3 000-3 000 secondes, ne pas utiliser d'informations après 3 secondes.
5. Analyser les mécanismes viraux
Analyser dans l'ordre suivant, sans conclure d'abord puis chercher des preuves :
- Image de début, première phrase, sous-titres, son, promesse et asymétrie d'information.
- Pauses ASR + virages sémantiques + limites de paragraphe des points de coupe candidats de plan.
- Avec ASR complet seulement, calculer les caractères chinois par minute, les pauses sémantiques et l'accentuation ; sans ASR, les indicateurs précis de narration orale sont N/A. Les pauses acoustiques, la musique de fond, les effets sonores et le volume sonore sont analysés indépendamment.
- Rapporter séparément les points de coupe candidats, les coupes confirmées automatiquement, les coupes suspectes, les rafraîchissements de sous-titres et les événements visuels internes ; le taux de rafraîchissement visuel global explique le périmètre de déduplication.
- Position, occupation d'écran, nombre de lignes, couleur, surlignage des mots-clés, animation d'entrée/sortie des sous-titres. Si la couverture OCR/images clés est inférieure à 95 %, écrire seulement "cohérent / globalement cohérent observé aux points d'échantillonnage", interdire d'écrire "strictement synchronisé sur toute la vidéo".
- Phrases d'interaction originales, horodatages, actions cibles et mécanisme de commentaire.
- Les cinq actions de fin : like, follow, favori, teaser de prochaine vidéo, question ouverte.
- Calculer automatiquement la note selon les huit dimensions de poids fixes, la couverture et les dimensions manquantes ; ne pas remplir manuellement la note totale. La note est basée sur des preuves, ne pas présupposer un score élevé parce que l'utilisateur prétend qu'il s'agit d'un hit.
- Générer pour chaque segment clé une "expert insight" : faits → mécanisme → réaction du public → formule de migration ; interdire de décrire simplement l'image.
6. Générer le pack de production de migration structurelle
Lire intégralement references/report-contract.md, remplir le modèle distillation-report.md. Sortir ensuite :
"Résumé en une phrase" : d'abord remplir les huit emplacements dans evidence.json.executive_summary, puis les combiner en un paragraphe compact. La chaîne d'outils ne peut être qu'une inférence de niveau C, lister en même temps la justification et les interprétations alternatives ; sans données de plateforme, utiliser "mécanisme de propagation", ne pas affirmer directement "raison du succès viral".
Si la chaîne d'outils n'est qu'une inférence de niveau C, reproduction-script.md ne peut fournir que des flux indépendants de l'outil ou des implémentations candidates clairement marquées, ne pas élever le nom de logiciel inféré en dépendance certaine, version, commande d'installation ou CLI. Fournir des commandes certaines uniquement après validation réelle et enregistrement dans toolchain_inference.execution_verified=true.
reproduction-script.md: temps, emplacements fonctionnels, narration originale, visuels, sous-titres, effets sonores, objectif d'interaction.storyboard-files/storyboard-table.csv: champs fixestime_range,shot_function,normalized_visual_text,normalized_spoken_text,asset_ids,evidence_ids,confidence. Utilisertranscript.json.normalized_textpour la narration, conserver les preuves OCR originales pour le texte à l'écran avec normalisation séparée, ne pas transmettre directement le bruit de reconnaissance évident au monteur ; les projets de montage ou EDL/XML sont également placés dans ce répertoire.reproduction-sop.md: étapes opérationnelles séquentielles de migration de thème, script, storyboard, préparation des actifs, montage, contrôle qualité à publication.capcut-execution-checklist.md: pistes, points de coupe, modèles de sous-titres, images clés, volume, exportation et vérifications avant publication.asset-checklist.md: rôle de l'actif, spécifications, source/état de licence, actif alternatif ; ne pas réutiliser directement les actifs de la vidéo originale.verbatim-transcript.mdettranscript.json: conserver horodatages, locuteur et confiance.quality-self-check-report.md: enregistrer les lacunes de preuves, les résultats de déclassement automatique, les résultats de gate et la liste des faibles confiances ; ne pas exiger de validation humaine avant livraison.
"Réplication un pour un" signifie ici uniquement un mappage un pour un des emplacements structurels, des nœuds rythmiques et des fonctions de plan ; les dialogues, exemples, personnes, marques, musique et images doivent être originaux ou sous licence.
7. Exécuter le gate de production
python3 scripts/validate_delivery.py <répertoire de livraison>
Ne déclarer la livraison complète que si la sortie est PASS. En cas d'échec, corriger chaque erreur individuellement, ne pas supprimer les règles pour contourner.
8. Guidage progressif pour la réplication après analyse
Une fois le pack d'analyse passé le gate, ne pas seulement indiquer le chemin des fichiers, ni demander à l'utilisateur de soumettre tous les matériaux en une seule fois. Copier assets/templates/remake-brief.json dans le répertoire de livraison, puis poser une question nécessaire à la fois dans l'ordre suivant ; après la réponse de l'utilisateur, écrire immédiatement dans le brief, puis passer à l'étape suivante :
D'abord exécuter le script d'orchestration déterministe pour que les étapes suivantes consomment réellement les produits d'analyse :
python3 scripts/create_remake_project.py init --analysis <répertoire de livraison d'analyse> --output <répertoire de projet de réplication original>
Le script lit le rapport, le script de production de réplication, le SOP, la chronologie, le storyboard normalisé, l'inventaire des actifs et la checklist CapCut, génère remake-context.json et retourne un next_field/question unique. Après chaque réponse de l'utilisateur, exécuter :
python3 scripts/create_remake_project.py set --output <répertoire de projet de réplication original> --field <next_field> --value "<réponse utilisateur>"
- Nouveau thème : D'abord demander "À quel nouveau thème veux-tu migrer cette structure ?" C'est la seule question obligatoire sans valeur par défaut fiable.
- Public cible : Recommander un public basé sur le thème et demander confirmation à l'utilisateur ; si l'utilisateur a déjà un positionnement de compte, l'utiliser directement.
- Durée et format : Donner une valeur recommandée basée sur la vidéo de référence et la plateforme de publication, par exemple Douyin par défaut
60s, 9:16; confirmer les deux paramètres fortement corrélés en une seule fois. - Mode de présentation : Recommander parmi narration en personne, explication par screencast, animation PPT/texte, montage de métrages purs, demander seulement à l'utilisateur de confirmer ou de modifier.
- Action de fin : Recommander un CTA principal (like, follow, favori, question de commentaire ou message privé) basé sur le stade du compte.
- Actifs disponibles : Demander enfin si l'utilisateur a une photo de profil, logo, screencast, image, voix-off ou couleur de marque. Ne pas bloquer s'il n'y a pas d'actifs, fournir une solution de repli avec TTS + graphiques de remplacement originaux + animation de texte pur.
À chaque étape, d'abord afficher "Contenu confirmé + Question à laquelle répondre maintenant". Si l'utilisateur dit "Tu décides / Par défaut ça va", adopter la valeur recommandée et continuer, sans répéter la question. Une fois l'information suffisante, générer automatiquement le pack de projet de réplication original : script de narration original, SRT, storyboard normalisé, tableau des lacunes d'actifs, checklist CapCut, légendes de publication et render-manifest.json.
Lorsque le script retourne status=ready, exécuter :
python3 scripts/create_remake_project.py build --output <répertoire de projet de réplication original>
Ensuite, l'Agent doit lire generation-task.md, remake-context.json et remake-brief.json, et remplir le pack de projet avec du contenu original ; ne pas faire passer les squelettes d'espace réservé générés par le script pour un brouillon final.
La limite actuelle de "génération en un clic" de cette compétence est : générer un pack de projet de réplication exécutable en un clic, ne pas promettre de sortir directement un MP4. Ce n'est que lorsque l'environnement d'exécution dispose et valide réellement un backend de rendu comme Remotion ou un brouillon CapCut que l'on peut changer render_backend en ce backend correspondant et prétendre générer une vidéo finalisée.
Le premier message de guidage après analyse est fixé à :
L'analyse est terminée. Je peux maintenant t'aider à la migrer en une vidéo originale. Nous ne confirmons qu'un élément à la fois. Dis-moi d'abord : quel nouveau thème veux-tu raconter avec cette structure ?
Matrice de déclassement
| Preuves disponibles | Peut être réalisé | Doit être marqué N/A |
|---|---|---|
| Vidéo + FFmpeg + ASR + OCR | Analyse complète | Données de plateforme non vérifiables |
| Vidéo + FFmpeg + Whisper ASR | Média, candidats audio, candidats de plan, observation visuelle, narration, horodatages au mot | Indicateurs OCR |
| Vidéo + FFmpeg, sans ASR/OCR | Média, pauses acoustiques, candidats de plan, observation visuelle | Débit de parole, rythme sémantique, accentuation, courbe émotionnelle, note de narration et indicateurs OCR ; retirer la dimension narration du score total et renormaliser |
| Seulement audio/transcription avec horodatages | Narration, structure narrative, interactions partielles | Densité de plans, emballage de sous-titres visuels |
| Seulement texte | Structure du texte et interactions candidates | Tous les indicateurs audio-visuels précis |
| Échec du téléchargement du lien | Informations visibles au niveau du lien | Analyse vidéo seconde par seconde ; demander un fichier local |
Interdictions
- Interdiction d'inventer le nombre de vues, la date de publication, l'ASR, la couleur des sous-titres, le nombre de plans ou la chaîne d'outils.
- Interdiction de prendre les points de coupe candidats de l'algorithme directement pour des coupes de plan confirmées automatiquement.
- Interdiction de demander une confirmation humaine ou de faire de la validation humaine une condition préalable à la livraison ; les résultats de faible confiance doivent être automatiquement déclassés.
- Interdiction d'estimer la vitesse de parole précise, l'accentuation ou les pauses sémantiques en l'absence d'ASR.
- Interdiction de remplir le rythme sémantique de la narration, la courbe émotionnelle ou la note de narration en l'absence d'ASR ; marquer N/A et retirer du dénominateur du score global.
- Interdiction d'utiliser des tableaux à longs intervalles pour se faire passer pour une chronologie seconde par seconde.
- Interdiction de remplir la chronologie seconde par seconde avec des résumés de chapitres répétés, ou d'utiliser des preuves de toute la vidéo pour se faire passer pour des preuves directes de cette seconde.
- Interdiction d'utiliser des preuves ASR pour étayer des faits visuels tels que la couleur, la composition, le plan, le style des sous-titres, ou d'utiliser un seul niveau de confiance global pour masquer l'absence de preuves par modalité.
- Interdiction, sous échantillonnage OCR/images clés clairsemé, de prétendre que "les sous-titres sont strictement synchronisés sur toute la vidéo".
- Interdiction de réécrire silencieusement le texte ASR original ; le texte normalisé doit conserver
raw_textet la traçabilité viacorrections. - Interdiction d'estimer manuellement le nombre total de preuves, ou de prétendre à une corroboration croisée avec des sources externes sans enregistrer
external_sources. - Interdiction pour le storyboard de continuer à utiliser des mots de reconnaissance erronés originaux qui ont été corrigés par
corrections; le storyboard doit comporter des champs d'actif, de preuve et de confiance. - Interdiction de placer
.venv, le cache de modèle ou les fichiers de téléchargement temporaires dans la livraison finale ; interdiction également de supprimer la vidéo originale, les images clés, l'audio d'analyse, la transcription, le storyboard ou le SOP de réplication. - Interdiction d'écrire les inférences de chaîne d'outils de niveau C comme des dépendances certaines ou des commandes d'installation, d'initialisation ou de rendu non exécutées et non validées.
- Interdiction de sortir une note globale qui ne peut pas être recalculée avec des poids fixes.
- Interdiction d'utiliser "environ", "estimer" pour masquer des chiffres précis sans preuve.
- Interdiction de copier de longs passages de dialogues originaux, d'emballage de marque, de musique ou de matériel visuel.
- Interdiction de sortir seulement un joli rapport sans
evidence.jsonet résultat de validation. - Interdiction de s'arrêter dès le premier échec de
yt-dlp: pour les liens de partage public Douyin, essayer automatiquement le fallback CDN de la page de partage ; ne demander un fichier local qu'après l'échec du fallback. - Interdiction d'enregistrer ou d'afficher les cookies, l'URL CDN complète signée et les paramètres de requête d'authentification de la page de partage ; ne pas utiliser le fallback pour contourner le contrôle d'accès.