HomeBlogTranscribePlansAPI Keys

Ollama: Podsumuj Filmy YouTube Bez Płacenia za Tokeny

Rurociąg terminali przepuszczający transkrypcję YouTube przez jq do lokalnego modelu Ollama

Możesz sprawić, że Ollama podsumuje filmy YouTube za pomocą jednej rurki powłoki: pobierz transkrypcję przez HTTP, wyodrębnij tekst za pomocą jq, podaj to do modelu lokalnego. Brak rachunku OpenAI, brak danych opuszczających Twoją maszynę poza samym pobieraniem transkrypcji. Tutaj jest rurka, matematyka okna kontekstowego, która to sprawia, i gdzie się zawodzi.

One-liner

Weź wspólny klucz demo najpierw (lub przynieś własny — więcej poniżej):

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

Potem:

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

API zwraca {"result": {"videoId", "title", "pubDate", "content", ...}}; jq -r .result.content robi z tego surowy tekst, a Ollama dołącza stdin przepuszczony do argumentu promptu. Trzydzieści sekund później masz kule i YouTube nigdy nie widział żądania z Twojego IP — pobieranie transkrypcji przechodzi przez youtube2text.org, co obsługuje część, która uzyskuje zablokowany gdy scrubbujesz z własnej maszyny.

Dlaczego maxChars=12000

To jest liczba, którą ludzie źle otrzymują. Ollama uruchamia modele z kontekstem 4096-tokenów domyślnie, i wszystko walczy o to: Twój prompt, transkrypcja i wyjście modelu. Przy około 4 znakach na token, 12 000 znaków transkrypcji to ~3000 tokenów, pozostawiając miejsce na podsumowanie. Wylej pełny 90-minutowy podcast przy domyślnym limicie API 150 000 znaków i Ollama cicho przycina z przodu — model podsumowuje ostatnie dziesięć minut i pewnie ignoruje resztę. Brak błędu, tylko zła odpowiedź.

Jeśli Twój hardware ma RAM do zapasu, podnieś oba koniec razem:

OLLAMA_CONTEXT_LENGTH=16384 ollama serve

a następnie podnieś maxChars do około 50000. Skaluj dwie liczby w sync lub jesteś z powrotem do cichego przycięcia.

Zrób to funkcją powłoki

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"

Zamień prompt na cokolwiek rzeczywiście potrzebujesz — "wyodrębniaj każde wymieniające narzędzie", "wymień elementy akcji", "tłumacz na niemiecki". Tę samą rurę, inną instrukcję. Do zamiany wykładów w ustrukturyzowane notatki jest dłuższy przepływ pracy w notatki badawcze z filmów wykładów.

Sprawa prywatności i kosztów

Tylko jedna rzecz opuszcza Twoją maszynę: żądanie transkrypcji do youtube2text.org. Zawartość wideo, Twoje prompty i wyjście modelu pozostają lokalne. Dla każdego podsumowującego wewnętrzne filmy szkoleniowe, badania konkurencji, lub zawartość, którą raczej nie wysyłają do chmury LLM, to jest cały argument. Strona kosztu: wnioskowanie LLM jest bezpłatne na zawsze; jedynym mierzonym elementem jest pobieranie transkrypcji.

Gdzie się nie udaje

Szczera ograniczenie: model 8B podsumowujący ograniczoną plasterek wideo o godzinnie będzie coś pomijać. maxChars przycina z ustalonego budżetu, a llama3.1 na kontekście 4k nie robi głęboką syntezy — robi kompetentną kompresję tego, co pasuje. Do szybkiego "warte to mojego czasu" triażu to doskonałe. Do badań klasy ekstraktu na długą zawartość, albo prowadź większy model z rzeczywistym oknem kontekstowym, albo indeksuj wszystko prawidłowo — zobacz RAG nad kanałem YouTube dla tej marszruty.

Też: klucz demo jest wspólny i ograniczony do 5 filmów na miesiąc na IP. Istnieje tak one-liner powyżej działa, zanim zarejestrujesz się na cokolwiek. Gdy przejdziesz do kopania opon, uzyskaj własny klucz — bezpłatny poziom to również 5 filmów/miesiąc, ale to Twoje, i 5,99 USD kupi 50.