Communitygithub.com

Viral Video Distiller Pro

Analyse les mécanismes des vidéos virales (Douyin, Bilibili, Xiaohongshu, etc.) : crochets 3s, structure narrative, rythme oral, rafraîchissements visuels, habillage sous-titres, points d'interaction. Produit un script clé en main et un SOP de recréation.

Qu'est-ce que Viral Video Distiller Pro ?

Viral Video Distiller Pro est un Agent Skill conçu pour l'analyse forensique et la réplication structurelle de vidéos courtes virales. Il prend en charge les plateformes chinoises (Douyin, Bilibili, Xiaohongshu) et internationales (TikTok, YouTube, Instagram Reels). Le skill suit un processus rigoureux : extraction de preuves (métadonnées, pistes audio, images clés, scènes), transcription ASR (via Whisper), analyse du hook 3s, du rythme de narration, des transitions visuelles, de l'habillage des sous-titres et des points d'interaction. Il génère neuf documents de livraison, dont un rapport de distillation, une chronologie CSV seconde par seconde, un script de production, et un SOP de réplication. L'utilisateur peut déclencher l'analyse simplement avec une URL ou un fichier vidéo, et le skill propose un guidage progressif pour la recréation originale (nouveau thème, public, durée, etc.) sans exiger de confirmation manuelle sur les détails techniques. Le système applique une matrice de dégradation automatique lorsque certaines preuves (ASR, OCR) sont manquantes, et interdit toute invention de données. Il est idéal pour les créateurs de contenu, les marketeurs et les analystes qui veulent décortiquer et reproduire les mécanismes viraux.

Compatible avec~Claude Code✓Codex CLI~Cursor
npx skills add YvanDeng/viral-video-distiller-pro

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 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 essayer yt-dlp ; si celui-ci demande des cookies frais, échoue avec une erreur de connexion/captcha, ou si l'environnement n'a pas yt-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 avec ffprobe. 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 (ou faster-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 preuve ev-asr), et génère transcript.json, verbatim-transcript.md et audio-and-transcription/asr_raw.json.
  • Le texte ASR original est immuable : chaque segment conserve raw_text ; les corrections fiables sont écrites dans normalized_text, et les corrections[] 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-asr avec 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 rationale et 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érencent external_source_ids ; si non enregistré, supprimer ces termes, ne pas sous-entendre une vérification.
  • Le second-by-second-timeline.csv doit avoir une ligne par seconde et couvrir au moins 95 % de la durée ; remplir respectivement visual_evidence_ids, audio_evidence_ids, subtitle_evidence_ids et 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 :

  1. Image de début, première phrase, sous-titres, son, promesse et asymétrie d'information.
  2. Pauses ASR + virages sémantiques + limites de paragraphe des points de coupe candidats de plan.
  3. 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.
  4. 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.
  5. 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".
  6. Phrases d'interaction originales, horodatages, actions cibles et mécanisme de commentaire.
  7. Les cinq actions de fin : like, follow, favori, teaser de prochaine vidéo, question ouverte.
  8. 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.
  9. 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 fixes time_range,shot_function,normalized_visual_text,normalized_spoken_text,asset_ids,evidence_ids,confidence. Utiliser transcript.json.normalized_text pour 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.md et transcript.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>"
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Action de fin : Recommander un CTA principal (like, follow, favori, question de commentaire ou message privé) basé sur le stade du compte.
  6. 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 disponiblesPeut être réaliséDoit être marqué N/A
Vidéo + FFmpeg + ASR + OCRAnalyse complèteDonnées de plateforme non vérifiables
Vidéo + FFmpeg + Whisper ASRMédia, candidats audio, candidats de plan, observation visuelle, narration, horodatages au motIndicateurs OCR
Vidéo + FFmpeg, sans ASR/OCRMédia, pauses acoustiques, candidats de plan, observation visuelleDé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 horodatagesNarration, structure narrative, interactions partiellesDensité de plans, emballage de sous-titres visuels
Seulement texteStructure du texte et interactions candidatesTous les indicateurs audio-visuels précis
Échec du téléchargement du lienInformations visibles au niveau du lienAnalyse 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_text et la traçabilité via corrections.
  • 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.json et 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.

Skills associés