HomeBlogTranscribePlansAPI Keys

YouTube-Transkripte in Notion: No-Code- und Python-Wege

Notion-Datenbank von YouTube-Videos mit Transkript- und Zusammenfassungs-Inhalten in jeder Seite gespeichert

Das Speichern jedes YouTube-Transkripts zu Notion verwandelt einen Kanal, dem du folgst, in eine Datenbank, die du durchsuchen, taggen und von deinen Notizen verlinken kannst. Es gibt zwei gute Wege zum Bauen — eine No-Code-Automatisierung oder ein Python-Skript von etwa zwanzig Zeilen — und ich gebe dir beide, weil die richtige, die ganz davon abhängt, ob du bereits n8n oder Make leitest.

Weg 1: No-Code

Wenn ein Automatisierungs-Tool bereits in deinem Leben ist, das ist drei Module Arbeit. Der Trigger ist der RSS-Feed des Kanals (jeder Kanal hat einen: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID), die Mitte ist ein HTTP-Aufruf und das Ende ist ein Notion "create page" Schritt zeigt auf deine Datenbank.

Der HTTP-Schritt ist gleich in jedem Tool:

Die Antwort kommt zurück als {"result": {"videoId", "title", "pubDate", "content", ...}} — ordne result.title dem Seiten-Titel zu und result.content in den Seiten-Body. Ich habe volle Durchgänge geschrieben für n8n, einschließlich eines LLM-Zusammenfassungs-Node vor dem Notion-Schritt, und für Make mit seiner Router-Einrichtung.

Weg 2: zwanzig Zeilen Python

Keine Automatisierungs-Plattform? Die Notion-API plus ein requests-Aufruf bringt dir das gleiche Ergebnis. Setup zuerst: Erstelle eine interne Integration bei notion.so/my-integrations, kopiere sein Geheimnis und teile deine Zieldatenbank mit der Integration (Datenbanken sind für Integrationen unsichtbar, bis du das tust). Die Datenbank braucht eine Title-Eigenschaft namens Name.

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

Der url-Parameter nimmt jede YouTube-URL-Form oder eine nackte 11-stellige ID. Für einen Schlüssel ohne Anmeldung, curl -s https://youtube2text.org/api/demo-key gibt einen kostenlosen gemeinsamen zurück — 5 Videos pro Monat pro IP, genug zum Testen.

Warum das Skript den Text chunked

Diese Scheibung in 2000-Zeichen-Teile ist nicht Dekoration — es ist Notions Regel. Die API begrenzt jedes Rich-Text auf 2.000 Zeichen und jede create-page-Anfrage auf 100 Blöcke, das ist die ehrliche Begrenzung dieser ganzen Einrichtung: etwa 200.000 Zeichen pro Anfrage, und lange Transkripte machen Seiten träge zum Öffnen, lange bevor das. Das ist, warum ich maxChars auf 20000 setze. Wenn du wirklich volle Multi-Stunden-Transkripte speichern brauchst, hänge die verbleibenden Blöcke mit Follow-up-Anfragen an den Blocks-Endpunkt an — aber für die meisten Archive schlägt 20k Zeichen plus eine Zusammenfassung eine Wand von Auto-Untertiteln.

Füge die Zusammenfassung hinzu

Das Transkript ist das Rohmaterial; die Zusammenfassung ist das, das du in sechs Monaten eigentlich liest. Slot ein LLM-Aufruf zwischen den Fetch und die Seitenerstellung — füttere es r["content"], frage nach fünf Bullets und präfixe das Ergebnis als der erste Paragraph-Block (in n8n das ist einfach ein mehr Node). Einmal Zusammenfassungen leben neben Transkripten, die Datenbank wird auch ein anständiges Abruf-Corpus — das ist der Startpunkt für Bauen RAG über einen ganzen Kanal.

Schlüssel und Kosten

Der gemeinsame Demo-Schlüssel wird nicht mit einem Kanal mithalten, dem du eigentlich folgst. Melde dich mit Google bei youtube2text.org/app/keys an — kein Telefon, keine Karte — für deinen eigenen Schlüssel: kostenlos 5 Videos pro Monat, $5,99 für 50, $9,99 für 500, $19,99 unbegrenzt. Die Notion-Seite ist kostenlos; die Transkripte fast.