HomeBlogTranscribePlansAPI Keys

Ollama: Oppsummer YouTube-videoer uten å betale for tokens

Terminal-rørledning som leder en YouTube-transkripsjon gjennom jq inn i en lokal Ollama-modell

Du kan få Ollama til å oppsummere YouTube-videoer med en shell-rørledning: hent transkripsjonen over HTTP, trekk ut teksten med jq, mater den til en lokal modell. Ingen OpenAI-regning, ingen data som forlater maskinen bortsett fra transkripsjon-hentingen selv. Her er rørledningen, kontekst-vindu-matematikken som gjør det arbeid, og hvor det faller kort.

Enlinjer

Grabb den delte demo-nøkkelen først (eller ta med din egen — mer om det nedenfor):

API_KEY=$(curl -s https://youtube2text.org/api/demo-key | jq -r .apiKey)

Deretter:

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:"

APIen returnerer {"result": {"videoId", "title", "pubDate", "content", ...}}; jq -r .result.content striper det ned til rå tekst, og Ollama legger til den røret stdin til prompt-argumentet. Tretti sekunder senere har du bullet points og YouTube så aldri en forespørsel fra din IP — transkripsjon-hentingen går gjennom youtube2text.org, som håndterer delen som blir blokkert når du skraper fra egen maskin.

Hvorfor maxChars=12000

Dette er tallet folk gjør galt. Ollama kjører modeller med 4096-token kontekst som standard, og alt konkurrerer for det: prompten din, transkripsjonen, og modellens utdata. Ved omtrent 4 tegn per token, 12 000 tegn transkripsjon er ~3 000 tokens, som etterlater hodeverdighet til oppsummeringen. Rør inn en full 90-minutt podcast på APIens standard grense på 150 000 tegn og Ollama stille forkorter fra fronten — modellen oppsummerer siste ti minutter og ignorerer resten trygt. Ingen feil, bare et feil svar.

Hvis din maskinvare har RAM til å spare, hev begge ender sammen:

OLLAMA_CONTEXT_LENGTH=16384 ollama serve

deretter bumpe maxChars til omtrent 50000. Skaler de to tallene i lås-trinn eller du er tilbake til stille forkortelse.

Gjør det til en shell-funksjon

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"

Bytt prompten for hva du faktisk trenger — "trekk ut hvert verktøy nevnt", "liste handlings-elementer", "oversett til tysk". Samme rørledning, annen instruksjon. For å gjøre forelesninger til strukturert noter er det en lengre arbeidsflyt i studienota fra forelesnings-videoer.

Personverns- og kostnadssaken

Bare en ting forlater maskinen: transkripsjon-forespørselen til youtube2text.org. Videoens innhold, promptene dine, og modellens utdata alle blir lokale. For noen som oppsummerer interne trenings-videoer, konkurrent-forskning, eller innhold de heller ikke ønsker å sende til en sky-LLM, det er hele tonekalt. Kostnad-siden: LLM-inferensen er gratis for alltid; det eneste målt stykke er transkripsjon-hentingen.

Der det faller kort

Ærlig begrensning: en 8B modell som oppsummerer en begrenset skive av en time-lang video vil misse ting. maxChars forkorter fra en fast budsjett, og llama3.1 på 4k kontekst gjør ikke dype syntese — det gjør dyktig komprimering av hva som passer. For rask "er denne videoen verdt tiden min" triage er det utmerket. For forsknings-gradert utdrag på tvers av langt innhold, enten kjør en større modell med en faktisk kontekst-vindu eller indekserer alt ordentlig — se RAG over en YouTube-kanal for den ruten.

Også: demo-nøkkelen deles og er begrenset til 5 videoer per måned per IP. Det finnes så enlinjer over fungerer før du har meldt deg på noe. Når du er forbi sparke-på-dekk, få din egen nøkkel — gratis nivå er også 5 videoer/måned men det er ditt, og $5.99 kjøper 50.