Aller au contenu

YouTube Digest

Le workflow YouTube Digest est un pipeline complet qui extrait, transcrit et résume des vidéos YouTube. Il supporte plusieurs sources d’entrée et génère des résumés TLDR avec enrichissement on-demand via Telegram.

FonctionDescription
3 sources d’entréeSchedule (playlists), Telegram (URL), Watch Later
Transcription intelligentePréfère les captions YouTube (gratuites), fallback Whisper
Résumé TLDRPoints clés extraits via Claude
Stockage vectorielEmbeddings dans Qdrant pour recherche sémantique
Enrichissement on-demandBoutons Telegram pour approfondir
SourceDéclenchementUsage
ScheduleCron configuréPlaylists tech/news
Telegram URLMessage au botVidéo ponctuelle
Watch LaterPlaylist YouTubeVidéos sauvées

ProblèmeSans digestAvec digest
Temps de visionnageRegarder la vidéo entièreTLDR en 30 secondes
Pas de rechercheImpossible de retrouver un passageRecherche sémantique Qdrant
Notes manuellesPrendre des notes pendantPoints clés auto-extraits
Backlog de vidéosWatch Later qui s’accumuleTraitement automatique
MéthodeCoûtVitesseQualité
Captions YouTubeGratuitInstantVariable (auto-générées)
Whisper API~$0.36/h~10-30sExcellente

already

new

Sources d'entrée

Schedule · playlists

Telegram URL

Watch Later · YouTube

Normalize Input · extract video_id

Already processed ?

Skip

Get Metadata · title, duration

Transcription · captions ou Whisper

TLDR via cli-ollama

Storage · Qdrant + Data Table

Telegram notification + enrichment buttons

Yes

No

Try YouTube Captions

Captions found ?

Parse SRT / VTT

Download Audio · yt-dlp

Whisper API

Clean Transcript

Gestion des fichiers longs :

DuréeStratégie
< 25 minWhisper direct
≥ 25 minSplit en chunks (limite ~25MB)
> 2hSkip ou confirmation

Prompt :

{
"model": "claude-haiku-yolo",
"prompt": `Analyse cette transcription YouTube et génère:
1. TLDR (2-3 phrases max)
2. Key points (5 max, bullet points)
3. Topics (3-5 tags)
4. Sentiment (educational/entertaining/promotional/technical)
5. Language (code ISO)
Transcription:
${transcript}`
}

Output :

{
"tldr": "2-3 phrases résumé concis",
"key_points": ["point1", "point2", "point3"],
"topics": ["tech", "ai", "tutorial"],
"sentiment": "educational",
"language": "en"
}
📺 NOUVEAU DIGEST
**How AI is Changing Software Development**
Channel: Fireship • 12:34
**TLDR:**
Les outils AI comme Copilot et Cursor transforment le dev.
Focus sur les gains de productivité et les risques.
**Points clés:**
• GitHub Copilot augmente la vélocité de 40%
• Risque: développeurs juniors moins autonomes
• Cursor = IDE AI-first prometteur
• Tendance: "vibe coding" vs "intentional coding"
Tags: #ai #development #tools
[📜 Full transcript] [🧠 Atomic notes] [📎 Link to Odoo] [❓ Q&A]
BoutonAction
📜 Full transcriptTranscription complète structurée avec chapitres
🧠 Atomic notesNotes Zettelkasten (une par concept)
📎 Link to OdooLier à un contact/projet CRM
❓ Q&AGénérer questions-réponses flashcard-style
{
"collection": "youtube_digests",
"vector": embedding,
"payload": {
"video_id": "dQw4w9WgXcQ",
"title": "...",
"tldr": "...",
"key_points": [...],
"topics": [...]
}
}
ColonneTypeDescription
video_idstringYouTube video ID
titlestringTitre vidéo
channelstringNom chaîne
durationnumberDurée en secondes
processed_atdatetimeDate traitement
tldrtextRésumé court
key_pointsjsonListe points clés
topicsjsonTags extraits
qdrant_idstringID vecteur Qdrant

OpérationVidéo 10minVidéo 60min
YouTube captionsGratuitGratuit
Whisper (si nécessaire)~$0.06~$0.36
Claude TLDR~$0.01~$0.05
Embedding~$0.0001~$0.001
Total~$0.01-0.07~$0.05-0.41
LimiteImpactMitigation
Vidéos > 2hTimeout possibleConfirmation manuelle
Captions absentesCoût WhisperAcceptable pour vidéos importantes
Multi-langueRésumé dans langue sourceTraduction optionnelle

Si besoin de multi-langue :

  • Détecter la langue automatiquement
  • Option de traduction du résumé
  • Embeddings multilingues

Si volume de vidéos augmente :

  • Filtrage par score de pertinence
  • Digest quotidien groupé
  • Queue avec priorités

Si besoin de recherche avancée :

  • Interface web de recherche Qdrant
  • Filtres par topic/channel
  • Suggestions de vidéos similaires
Fenêtre de terminal
# Tester l'extraction de video_id
echo "https://www.youtube.com/watch?v=dQw4w9WgXcQ" | \
grep -oP '(?<=v=)[^&]+'
# Vérifier les captions disponibles
yt-dlp --list-subs "https://www.youtube.com/watch?v=VIDEO_ID"
# Télécharger audio pour test
yt-dlp -x -f bestaudio "https://www.youtube.com/watch?v=VIDEO_ID"
# Recherche sémantique dans Qdrant
curl -X POST "http://qdrant:6333/collections/youtube_digests/points/search" \
-H "Content-Type: application/json" \
-d '{"vector": [...], "limit": 5}'
ProblèmeVérification
Pas de captionsVidéo sans sous-titres → Whisper fallback
Whisper timeoutFichier trop long ? Augmenter timeout
Claude erreurQuota épuisé ? Check usage claude-ollama
Qdrant 404Collection existe ? Créer si nécessaire