Ollama : résumer les vidéos YouTube sans payer les jetons

Vous pouvez faire résumer les vidéos YouTube par Ollama avec un pipe de shell : récupérer la transcription sur HTTP, extraire le texte avec jq, l'alimenter dans un modèle local. Pas de facture OpenAI, pas de données quittant votre machine sauf la récupération de transcription elle-même. Voici le pipe, la mathématique de la fenêtre de contexte qui le rend fonctionner, et où ça ne fonctionne pas.
Le one-liner
Attrapez d'abord la clé démo partagée (ou apportez la vôtre — plus sur cela ci-dessous) :
API_KEY=$(curl -s https://youtube2text.org/api/demo-key | jq -r .apiKey)
Puis :
curl -s "https://youtube2text.org/api/transcribe?url=https://www.youtube.com/watch?v=VIDEO_ID&maxChars=12000" \
-H "x-api-key: $API_KEY" \
| jq -r .result.content \
| ollama run llama3.1 "Summarize this video transcript in five bullet points:"
L'API retourne {"result": {"videoId", "title", "pubDate", "content", ...}}; jq -r .result.content le réduit au texte brut, et Ollama ajoute stdin piped à l'argument prompt. Trente secondes plus tard, vous avez des puces et YouTube n'a jamais vu une requête de votre IP — la récupération de transcription passe par youtube2text.org, qui gère la partie qui obtient bloquée quand vous grattez de votre propre machine.
Pourquoi maxChars=12000
C'est le nombre que les gens oublient. Ollama exécute les modèles avec un contexte de 4096 jetons par défaut, et tout concurrence pour cela : votre prompt, la transcription et la sortie du modèle. À environ 4 caractères par jeton, 12 000 caractères de transcription c'est ~3 000 jetons, laissant de la marge pour le résumé. Insérez un podcast de 90 minutes complet à la limite par défaut de l'API de 150 000 caractères et Ollama tronque silencieusement à partir du devant — le modèle résume les dix dernières minutes et ignore avec confiance le reste. Pas d'erreur, juste une mauvaise réponse.
Si votre matériel a de la RAM à revendre, augmentez les deux extrémités ensemble :
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
puis augmentez maxChars à environ 50000. Adaptez les deux nombres ensemble ou vous êtes de retour à la troncature silencieuse.
En faire une fonction shell
yt-summary() {
curl -s "https://youtube2text.org/api/transcribe?url=$1&maxChars=12000" \
-H "x-api-key: $API_KEY" \
| jq -r .result.content \
| ollama run llama3.1 "Summarize this video transcript in five bullet points:"
}
yt-summary "https://www.youtube.com/watch?v=VIDEO_ID"
Remplacez le prompt pour ce que vous avez réellement besoin — "extraire chaque outil mentionné", "lister les éléments d'action", "traduire en allemand". Même pipe, instruction différente. Pour transformer les conférences en notes structurées, il y a un workflow plus long dans notes d'étude à partir de vidéos de conférences.
La confidentialité et l'affaire de coûts
Une seule chose quitte votre machine : la demande de transcription à youtube2text.org. Le contenu de la vidéo, vos prompts, et la sortie du modèle restent locaux. Pour quiconque résumant les vidéos de formation internes, la recherche concurrentielle ou le contenu qu'il préférerait ne pas envoyer à un LLM cloud, c'est l'argument entier. Côté coûts : l'inférence LLM est gratuite pour toujours ; la seule partie mesurée est la récupération de transcription.
Où ça ne fonctionne pas
Honnête limitation : un modèle 8B résumant une tranche plafonnée d'une vidéo d'une heure manquera des choses. maxChars tronque à partir d'un budget fixe, et llama3.1 au contexte 4k ne fait pas de synthèse profonde — c'est une compression compétente de ce qui s'adapte. Pour trier rapidement "cette vidéo vaut-elle mon temps", c'est excellent. Pour l'extraction de recherche à travers du contenu long, exécutez soit un modèle plus grand avec une vraie fenêtre de contexte, soit indexez tout correctement — voir RAG sur un canal YouTube pour cet itinéraire.
Aussi : la clé démo est partagée et limitée à 5 vidéos par mois par IP. Elle existe pour que le one-liner ci-dessus fonctionne avant que vous ne vous soyez inscrit à quoi que ce soit. Une fois que vous avez dépassé tester les pneus, obtenez votre propre clé — la limite gratuite est aussi 5 vidéos/mois mais c'est la vôtre, et $5.99 achète 50.