HomeBlogTranscribePlansAPI Keys

YouTube Transkriptioner i Notion: Inga-kod och Python-vägar

Notion-databas med YouTube-videor med transkriptioner och sammanfattningsinnehål lagrat inuti varje sida

Att spara varje YouTube-transkription till Notion förvandlar en kanal du följer till en databas du kan söka, tagga och länka från dina anteckningar. Det finns två bra vägar att bygga den — en automatisering utan kod eller ett Python-skript på ungefär tjugo rader — och jag ger dig båda, för att rätt vägen beror helt på om du redan kör n8n eller Make.

Väg 1: inga-kod

Om ett automatiseringsverktyg redan är i ditt liv, detta är tre modulers arbete. Utlösaren är kanalens RSS-feed (varje kanal har en: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID), mitten är ett HTTP-anrop, och slutet är ett Notion "skapa sida"-steg riktad mot din databas.

HTTP-steget är detsamma i alla verktyg:

Svaret kommer tillbaka som {"result": {"videoId", "title", "pubDate", "content", ...}} — mappa result.title till sidtiteln och result.content in i sidkroppen. Jag har skrivit fullständiga genomgångar för n8n, inklusive en LLM-sammanfattningsnod före Notion-steget, och för Make med dess router-inställning.

Väg 2: tjugo rader Python

Ingen automatiseringsplattform? Notion API plus ett requests-anrop får dig samma resultat. Inställning först: skapa en intern integration på notion.so/my-integrations, kopiera dess hemlighet, och dela din måldatabas med integreringen (databaser är osynliga för integrationer tills du gör det). Databasen behöver en titelegenskap som heter Namn.

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

Parametern url tar valfri YouTube URL-form eller ett enkelt 11-tecken-id. För en nyckel utan registrering, curl -s https://youtube2text.org/api/demo-key returnerar en gratis delad — 5 videor per månad per IP, tillräckligt för att testa.

Varför skriptet chunkar texten

Den slicningen i 2000-tecken-bitar är inte dekorering — det är Notions regel. API:t begränsar varje rik text till 2 000 tecken och varje sida-skapa-begäran till 100 block, vilket är den ärliga begränsningen av hela denna inställning: ungefär 200 000 tecken per begäran, och långt transkriptioner gör sidor trög att öppna långt före det. Det är varför jag satte maxChars till 20000. Om du verkligen behöver hela multi-timme transkriptioner lagrade, lägg till återstoden av blocken med uppföljningsbegäranden till blocks-slutpunkten — men för de flesta arkiv, 20k tecken plus en sammanfattning slår en vägg av auto-bildtexter.

Lägg till sammanfattningen

Transkriptionen är råmaterialet; sammanfattningen är vad du faktiskt kommer att läsa om sex månader. Slotsa ett LLM-anrop mellan hämtningen och sidskapandet — mata det r["content"], be om fem punkter, och sätt resultatet som det första styckeblocket (i n8n är det bara en nod till). När sammanfattningar lever tillsammans med transkriptioner blir databasen också ett anständigt hämtningskorpus — det är utgångspunkten för att bygga RAG över en hel kanal.

Nycklar och kostnader

Den delade demo-nyckeln håller inte med en kanal du faktiskt följer. Logga in med Google på youtube2text.org/app/keys — ingen telefon, inget kort — för din egen nyckel: gratis 5 videor per månad, $5,99 för 50, $9,99 för 500, $19,99 unlimited. Notion-sidan är gratis; transkriptionerna nästan är.