Ollama: YouTube-Videos zusammenfassen, ohne für Token zu zahlen

Du kannst Ollama YouTube-Videos mit einer Shell-Pipe zusammenfassen lassen: Das Transkript über HTTP abrufen, den Text mit jq extrahieren, in ein lokales Modell füttern. Keine OpenAI-Rechnung, keine Daten, die deine Maschine verlassen, außer dem Transkript-Abruf selbst. Hier ist die Pipe, die Context-Window-Mathematik, die es funktionieren macht, und wo es mangelhaft ist.
Der One-Liner
Grab zuerst den gemeinsamen Demo-Schlüssel (oder bringe deinen eigenen — mehr dazu unten):
API_KEY=$(curl -s https://youtube2text.org/api/demo-key | jq -r .apiKey)
Dann:
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:"
Die API gibt {"result": {"videoId", "title", "pubDate", "content", ...}} zurück; jq -r .result.content strippt es auf den reinen Text, und Ollama hängt den piped stdin an das Prompt-Argument an. Dreißig Sekunden später hast du Bullet Points und YouTube sah nie eine Anfrage von deiner IP — der Transkript-Abruf geht durch youtube2text.org, die den Teil handhabt, das blockiert wird, wenn du von deiner eigenen Maschine scrapst.
Warum maxChars=12000
Das ist die Zahl, die Leute falsch bekommen. Ollama läuft Modelle mit einem 4096-Token-Kontext standardmäßig, und alles konkurriert darum: dein Prompt, das Transkript und die Ausgabe des Modells. Bei grob 4 Zeichen pro Token sind 12.000 Zeichen Transkript ~3.000 Token, Kopfraum für die Zusammenfassung verlassend. Pipe in einen vollen 90-Minuten-Podcast in der API-Standard-Obergrenze von 150.000 Zeichen und Ollama stumm-truncates von der Front — das Modell fasst die letzten zehn Minuten zusammen und ignoriert selbstbewusst den Rest. Kein Fehler, nur eine falsche Antwort.
Wenn deine Hardware RAM zum Verschenken hat, hebe beide Enden zusammen:
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
dann bump maxChars auf rund 50000. Skaliere die zwei Zahlen im Lockschritt oder du bist zurück zum Stumm-Truncation.
Mache es eine Shell-Funktion
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"
Tausche den Prompt für das aus, was du eigentlich brauchst — "extract every tool mentioned", "list the action items", "translate to German". Die gleiche Pipe, andere Anweisung. Für die Umwandlung von Vorträgen in strukturierte Notizen gibt es einen längeren Workflow in Study Notes aus Vorträge Videos.
Der Datenschutz- und Kostenfall
Nur eine Sache verlässt deine Maschine: die Transkript-Anfrage an youtube2text.org. Der Inhalt des Videos, deine Prompts und die Ausgabe des Modells bleiben alle lokal. Für jeden, der interne Schulungsvideos, Konkurrenzforschung oder Inhalte zusammenfasst, die sie lieber nicht zu einem Cloud-LLM senden würden, das ist der gesamte Pitch. Kostenseite: Die LLM-Inferenz ist kostenlos für immer; das einzige gemessene Teil ist der Transkript-Abruf.
Wo es mangelhaft ist
Ehrliche Begrenzung: Ein 8B-Modell, das eine gecappte Scheibe eines einstündigen Videos zusammenfasst, wird Dinge verpassen. maxChars truncates aus einem festgelegten Budget, und llama3.1 bei 4k-Kontext macht keine tiefe Synthese — es macht kompetente Kompression des, was passt. Für schnelle "ist dieses Video meine Zeit wert" Triage ist es ausgezeichnet. Für Research-Grade-Extraktion über lange Inhalte hinweg, entweder ein größeres Modell mit einem echten Kontextfenster laufen oder alles richtig indexieren — siehe RAG über einen YouTube-Kanal für diese Route.
Auch: Der Demo-Schlüssel wird geteilt und ist auf 5 Videos pro Monat pro IP begrenzt. Er existiert, daher der One-Liner oben funktioniert, bevor du dich für irgendetwas angemeldet hast. Einmal du bist vorbei zum Kick-off der Reifen, hole dir deinen eigenen Schlüssel — kostenlose Stufe ist auch 5 Videos/Monat, aber es ist deins, und $5,99 kauft 50.