Résumé Vidéo Détaillé
Lien vidéo fourni par l'utilisateur : $ARGUMENTS
Étape 0 — Déterminer le type d'entrée
-
Pas de lien, question sur des vidéos passées → allez à la section « Requête d'archive » en bas ; ne récupérez pas de nouvelle transcription.
-
Lien vidéo unique → allez directement à l'Étape 1.
-
Plusieurs liens vidéo → exécutez chacun via les Étapes 1-3 dans l'ordre. Chaque vidéo obtient son propre résumé complet (même format), séparé par
---, et chacun est sauvegardé dans son propre fichier. Vous pouvez ajouter une note d'une ou deux phrases à la toute fin sur ce que les vidéos partagent/différencient (pas un rapport). -
Lien de playlist (URL contenant
/playlist?list=et pas dev=) → récupérez d'abord la liste :bash ~/.claude/skills/video-summary/fetch_transcript.sh --list "<URL_PLAYLIST>"Chaque ligne donne
url | titre | durée.- 5 vidéos ou moins : traitez-les toutes dans l'ordre (comme des liens multiples).
- Plus de 5 : montrez d'abord à l'utilisateur le nombre de vidéos et la liste des titres ; demandez s'il les veut toutes, les N premières, ou une sélection. Ne commencez pas le traitement sans confirmation.
-
URL mixte vidéo + playlist (
watch?v=...&list=...) → résumez uniquement cette vidéo unique ; à la fin du résumé, mentionnez en une phrase que le lien appartient à une playlist et que vous pouvez résumer le reste s'il le souhaite.
Étape 1 — Récupérer la transcription
Exécutez :
bash ~/.claude/skills/video-summary/fetch_transcript.sh "<URL_VIDEO>"
Le script affiche :
=== VIDEO INFO ===— titre, chaîne, durée, date=== CHAPTERS ===— liste horodatée si le créateur a défini des chapitres (section absente sinon)=== TRANSCRIPT ===— transcription propre avec horodatages
Remarques :
- Les vidéos déjà récupérées sont lues instantanément depuis l'archive
~/VideoSummaries/transcripts/<video-id>.txt(vous verrez une ligne(Transcript read from archive: ...)) — pas besoin d'Internet. - Si la transcription est très longue (la sortie du script est tronquée), redirigez la sortie vers un fichier brouillon et lisez-la par morceaux — ne sautez rien.
- Pour les vidéos sans sous-titres, si whisper est installé, le script télécharge l'audio et le transcrit localement — cela peut prendre quelques minutes, donc exécutez la commande avec un long délai d'attente (600000 ms). Une ligne "(No subtitles — ... whisper ...)" sur stderr indique ce chemin.
- S'il retourne "ERROR: no subtitles" + "WHISPER_SUGGESTION" : dites à l'utilisateur que la vidéo n'a pas de sous-titres et que l'installation de whisper (transmettez les commandes d'installation du message d'erreur) lui permettrait de la résumer aussi. N'inventez jamais d'analyse sans transcription.
- S'il retourne "ERROR: could not fetch video info" + "COOKIE_SUGGESTION" : ne réessayez PAS avec des cookies par vous-même — dites à l'utilisateur que YouTube bloque la requête et demandez s'il souhaite réessayer avec les cookies du navigateur. S'il approuve, réexécutez la même commande avec la variable d'environnement
COOKIES=1(mentionnez qu'une demande d'autorisation du trousseau macOS peut apparaître).
Étape 2 — Rédiger le résumé détaillé
L'objectif est un RÉSUMÉ DÉTAILLÉ : quelqu'un qui n'a pas regardé la vidéo doit apprendre chaque sujet principal, argument et chiffre clé — mais ce n'est PAS une redite de la transcription. Ne sautez aucun sujet principal ; ne relayez pas chaque phrase ou exemple secondaire au sein d'un sujet.
Longueur cible : ~300-450 mots au total pour une vidéo de 15 minutes ; adaptez proportionnellement pour les vidéos plus longues mais ne dépassez jamais une page (~700 mots).
Langue : écrivez toujours le résumé dans la langue dans laquelle l'utilisateur communique (quelle que soit la langue de la vidéo). En cas de doute, utilisez la langue de la vidéo.
Structure :
# <Titre de la vidéo>
**Chaîne :** ... · **Durée :** ... · **Date :** ...
## Aperçu
Le sujet et le message central de la vidéo (2-3 phrases).
## Sujets principaux
Un point par sujet principal dans la vidéo (une vidéo typique en a 4-8) :
- **[MM:SS] Titre du sujet** — l'essence du sujet en 2-4 phrases : l'idée principale, tout chiffre/exemple critique, la conclusion atteinte.
Titres de section : si la sortie du script a `=== CHAPTERS ===`, construisez les points à partir de ces chapitres et horodatages (traduisez les titres dans la langue de sortie ; sautez les chapitres sans contenu comme les intros/sponsors, fusionnez les chapitres très courts consécutifs en un seul point). S'il n'y a pas de CHAPTERS, identifiez vous-même les transitions de sujets dans la transcription.
## Conclusion
Le message final de l'orateur et l'action recommandée pour le spectateur (2-4 phrases). Si vous avez votre propre commentaire/réserve, ajoutez-le à la toute fin en une seule phrase, clairement séparée.
Règles :
- N'incluez jamais les intros, les appels à s'abonner, les lectures de sponsors ou les annonces.
- Prenez les horodatages à partir des repères
[MM:SS]dans la transcription ; ne les inventez jamais. - Horodatages cliquables : pour les vidéos YouTube, transformez chaque repère
[MM:SS]en lien vers cette seconde de la vidéo :[06:09](https://youtu.be/<ID_VIDEO>?t=369)(t = nombre total de secondes). Appliquez ceci à la fois dans la sortie de discussion et dans le fichier sauvegardé. Pour les sources non YouTube, laissez le repère en texte brut ; ne fabriquez pas de liens. - N'ajoutez aucune information qui ne figure pas dans la transcription.
- S'il y a 1-2 citations vraiment marquantes, incluez-les dans le point concerné ; n'ouvrez pas de section séparée.
- Si l'utilisateur demande « d'approfondir » ou à propos d'une partie spécifique, la transcription est en contexte — développez cette partie autant qu'il le souhaite.
- Suggestion visuelle : si la transcription comporte 3+ références visuelles ("ce graphique", "ce tableau", "à l'écran", "comme vous pouvez le voir ici", etc.), ajoutez une seule ligne à la fin du résumé : "📊 Cette vidéo semble très visuelle — je peux aussi analyser ses graphiques/captures d'écran si vous le souhaitez." Si l'utilisateur approuve, passez en Mode Analyse Visuelle. S'il n'y a pas de références visuelles, n'ajoutez pas la note.
Étape 3 — Sauvegarder le résumé dans l'archive
Le message de discussion est le résultat principal : imprimez TOUJOURS le résumé complet dans la conversation d'abord. Le fichier d'archive n'est qu'une copie supplémentaire — ne sautez jamais la sortie de discussion et n'écrivez que le fichier, et ne remplacez jamais le résumé par un pointeur vers le fichier.
Après avoir affiché le résumé dans la discussion, sauvegardez le même contenu avec l'outil Write dans :
~/VideoSummaries/<AAAA-MM-JJ>-<titre-vidéo-en-kebab-case>.md
(Date = aujourd'hui. Raccourcissez le titre en minuscules, ASCII, séparé par des tirets ; max 60 caractères.)
Ajoutez ce bloc de métadonnées tout en haut du fichier :
> **Vidéo :** <URL>
> **Résumé le :** AAAA-MM-JJ
Dans votre message final, dites à l'utilisateur le chemin du fichier en une seule ligne.
Mode Analyse Visuelle — quand l'utilisateur approuve ou demande directement
Lorsque l'utilisateur approuve l'analyse visuelle (ou demande directement avec quelque chose comme « y compris les graphiques »), faites ceci EN PLUS du résumé de la transcription :
-
Choisissez les moments : collectez les secondes des moments de référence visuelle dans la transcription (où l'orateur dit « regardez ceci », « ce graphique »). S'il n'y a pas de moments clairs, utilisez
auto(détection de changement de scène). -
Extrayez les images (peut prendre du temps — utilisez un délai d'attente de 600000 ms) :
bash ~/.claude/skills/video-summary/extract_frames.sh "<URL>" "<brouillon>/frames" "369,430,585"Le dernier argument est la liste des secondes ; omettez-le pour
auto. Le script affiche les chemins des fichiers d'images (frame_006-09.jpg= 06:09). Au maximum 12 images sont extraites. -
Visualisez les images avec Read et interprétez-les.
-
Écrivez une section « ## Analyse Visuelle » : pour chaque image significative, un horodatage cliquable + ce que montre l'image + comment cela se rapporte à l'affirmation de l'orateur à ce moment. Ignorez les images sans information (juste un visage, un écran d'intro).
-
Ajoutez la section au fichier de résumé sauvegardé également (avec Edit).
-
Si le script dit « ffmpeg is not installed », transmettez la suggestion
brew install ffmpeg; s'il dit qu'aucun changement de scène n'a été trouvé, dites à l'utilisateur que la vidéo est visuellement statique (rien à analyser). -
Si le script dit « could not download » + « COOKIE_SUGGESTION » : ne réessayez PAS avec des cookies par vous-même — dites à l'utilisateur que YouTube bloque le téléchargement et demandez s'il souhaite réessayer avec les cookies du navigateur. S'il approuve, réexécutez la même commande avec la variable d'environnement
COOKIES=1(mentionnez qu'une demande d'autorisation du trousseau macOS peut apparaître).
Requête d'archive — pas de lien, question sur des vidéos passées
Lorsque l'utilisateur demande des vidéos déjà résumées sans URL (« qu'est-ce que la vidéo que j'ai résumée la semaine dernière disait sur X », « qu'y a-t-il dans mon archive sur Y », « quels étaient les thèmes communs des vidéos du mois dernier ») :
- Analyse large : Cherchez dans les résumés
~/VideoSummaries/*.mdavec grep pour des mots-clés. En plus de la langue de l'utilisateur, essayez aussi les équivalents anglais probables (les résumés suivent la langue de l'utilisateur mais les citations/termes peuvent être dans la langue originale de la vidéo). - Approfondissez : Lisez les résumés correspondants. Si le résumé ne suffit pas (formulation exacte, contexte, ou un détail qui n'a pas été retenu dans le résumé), allez à la transcription brute de la même vidéo : prenez l'ID vidéo de l'URL dans le bloc de métadonnées du résumé et lisez/analysez
~/VideoSummaries/transcripts/<video-id>.txt. - Réponses citées : Donnez chaque fait avec sa source — titre de la vidéo, date du résumé, horodatage. Rendez les horodatages cliquables ici aussi (l'URL de la vidéo est dans le bloc de métadonnées du résumé). Ne comblez jamais les lacunes de mémoire ou par supposition ; si ce n'est pas dans l'archive, dites-le explicitement.
- Filtres de date : Les noms de fichiers suivent
AAAA-MM-JJ-titre.md— filtrez les plages comme « le mois dernier » par nom de fichier. - Ce mode est entièrement local : pas de YouTube, pas d'Internet.