HomeBlogTranscribePlansAPI Keys

YouTube-transkripsjoner i Notion: Ingen-kode og Python-stier

Notion-database av YouTube-videoer med transkripsjon og oppsummerings-innhold lagret inne i hver side

Å lagre hver YouTube-transkripsjon til Notion gjør en kanal du følger til en database du kan søke, merke og lenke fra notatene dine. Det er to gode måter å bygge det på — en ingen-kode-automatisering eller et Python-skript på omtrent tjue linjer — og jeg gir deg begge, fordi den rette avhenger helt på om du allerede kjører n8n eller Make.

Vei 1: ingen-kode

Hvis et automatiserings-verktøy allerede er i livet ditt, er dette tre moduler av arbeid. Triggeren er kanal-RSS-feeden (hver kanal har en: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID), midten er ett HTTP-kall, og slutten er en Notion "lag side" trinn pekt på databasen.

HTTP-trinnet er det samme i hvert verktøy:

Responsen kommer tilbake som {"result": {"videoId", "title", "pubDate", "content", ...}} — kartlegger result.title til sidetittelen og result.content inn i side-kroppen. Jeg har skrevet fulle gjennomganger for n8n, inkludert en LLM-oppsummerings-node før Notion-trinnet, og for Make med sin router-oppsett.

Vei 2: tjue linjer Python

Ingen automatiserings-platform? Notion API pluss ett requests-kall får du samme resultat. Oppsett først: lag en intern integrasjon på notion.so/my-integrations, kopier hemmeligheten, og del målbasis med integrasjonen (databaser er usynlige for integrasjoner til du gjør det). Databasen trenger en tittel-eiendom kalt Navn.

import requests

YT_KEY = "yt_YOUR_KEY"
NOTION_KEY = "secret_YOUR_NOTION_KEY"
DATABASE_ID = "your-database-id"

def add_video(url):
    r = requests.get(
        "https://youtube2text.org/api/transcribe",
        params={"url": url, "maxChars": 20000},
        headers={"x-api-key": YT_KEY},
    ).json()["result"]
    text = r["content"]
    chunks = [text[i:i + 2000] for i in range(0, len(text), 2000)]
    blocks = [{"object": "block", "type": "paragraph",
               "paragraph": {"rich_text": [{"text": {"content": c}}]}}
              for c in chunks[:100]]
    requests.post(
        "https://api.notion.com/v1/pages",
        headers={"Authorization": f"Bearer {NOTION_KEY}",
                 "Notion-Version": "2022-06-28",
                 "Content-Type": "application/json"},
        json={"parent": {"database_id": DATABASE_ID},
              "properties": {"Name": {"title": [{"text": {"content": r["title"]}}]}},
              "children": blocks},
    )

add_video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")

url-parameteren godtar noen YouTube URL-form eller en bare 11-tegn-id. For en nøkkel uten å melde deg på, curl -s https://youtube2text.org/api/demo-key returnerer en gratis delt — 5 videoer per måned per IP, nok til å teste.

Hvorfor skriptet fragmenter teksten

Det skivingen inn i 2000-tegn stykker er ikke dekorasjon — det er Notion-regelen. APIen begrenser hvert rikt-tekst-felt til 2 000 tegn og hvert lag-side-kall til 100 blokker, som er den ærlige begrensningen for hele oppsettet: omtrent 200 000 tegn per forespørsel, og lange transkripsjoner gjør sider tregest for å åpne veldig før det. Det er derfor jeg satte maxChars til 20000. Hvis du genuint trenger fulle multi-hours transkripsjoner lagret, legg til de gjenværende blokkene med oppfølgings-forespørsler til blokk-endepunktet — men for de fleste arkiver slår 20k tegn pluss en oppsummering en vegg av auto-tekster.

Legg til oppsummeringen

Transkripsjonen er råmaterialet; oppsummeringen er hva du faktisk vil lese om seks måneder. Slipp ett LLM-kall mellom hentingen og side-opprettelsen — mater det r["content"], spør om fem bullets, og prepend resultatet som første avsnitt-blokk (i n8n er dette bare en node til). Når oppsummeringer bor ved siden av transkripsjoner, blir databasen også en anstendig hentings-korpus — det er startpunktet for å bygge RAG over en hel kanal.

Nøkkler og kostnader

Den delte demo-nøkkelen vil ikke holde tritt med en kanal du faktisk følger. Logg inn med Google på youtube2text.org/app/keys — intet telefon, intet kort — for din egen nøkkel: gratis 5 videoer per måned, $5.99 for 50, $9.99 for 500, $19.99 ubegrenset. Notion-siden er gratis; transkripsjoner er nesten.