HomeBlogTranscribePlansAPI Keys

Notion 中的 YouTube 转录文本:无代码和 Python 路径

Notion 数据库的 YouTube 视频,带转录文本和摘要内容存储在每个页面内

将每个 YouTube 转录文本保存到 Notion 将你跟踪的频道变成一个你可以搜索、标记和从你的笔记链接的数据库。有两种很好的方式构建它——一个无代码自动化或一个大约二十行的 Python 脚本——我会给你两个,因为正确的取决于完全你是否已经运行 n8n 或 Make。

路径 1:无代码

如果一个自动化工具已经在你的生活中,这是三个模块的工作。触发器是频道的 RSS 提要(每个频道有一个:https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID),中间是一个 HTTP 调用,端是一个 Notion"创建页面"步骤指向你的数据库。

HTTP 步骤在每个工具中相同:

响应作为 {"result": {"videoId", "title", "pubDate", "content", ...}} 回来——映射 result.title 到页面标题和 result.content 到页面正文。我已经为n8n写了完整演练,在 Notion 步骤之前包括 LLM 摘要节点,对于Make带其路由器设置。

路径 2:二十行 Python

无自动化平台?Notion API 加一个 requests 调用给你相同结果。设置首先:在 notion.so/my-integrations 创建内部集成、复制其秘密、与集成共享你的目标数据库(数据库对集成不可见,直到你这样做)。数据库需要一个叫做 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")

url 参数需要任何 YouTube URL 形式或裸露 11 字符 id。对于无需注册的密钥,curl -s https://youtube2text.org/api/demo-key 返回一个免费共享——每个 IP 每月 5 个视频,足够测试。

为什么脚本分块文本

那个切成 2000 字符片段不是装饰——这是 Notion 的规则。API 将每个富文本限制在 2000 字符,每个创建页面请求限制在 100 块,这是这个整个设置的诚实限制:大约每个请求 200000 字符,长转录文本让页面打开前就变得迟缓。那是为什么我设置 maxChars 为 20000。如果你真正需要存储完整多小时转录文本,用后续请求追加剩余块到 blocks 端点——但对于大多数存档,20k 字符加摘要胜过自动字幕的墙。

添加摘要

转录文本是原始材料;摘要是你在六个月后实际会读的。在获取和页面创建之间插槽一个 LLM 调用——馈送它 r["content"]、请求五个项目符号、首先作为首段块预置结果(在 n8n 这只是多一个节点)。一旦摘要与转录文本一起住,数据库也变成一个体面的检索语料库——这是对整个频道构建 RAG的起点。

密钥和成本

共享演示密钥不会跟上你实际跟踪的频道。在 youtube2text.org/app/keys 用 Google 登录——无电话、无卡——对于你自己的密钥:免费 5 个视频/月、5.99 美元 50、9.99 美元 500、19.99 美元无限。Notion 一侧是免费;转录文本几乎是。