用 RSS 和一个 API 自动生成 YouTube 频道 Newsletter

YouTube 频道 Newsletter 自动化只需要三样东西:YouTube 悄悄为每个频道发布的 RSS 订阅源、一个转录文本 API,以及一个 cron 任务。我的周一早间摘要——覆盖我所在领域的六个频道,用有真实内容的总结代替标题党缩略图——靠大约 40 行 Python 无人值守地跑了四个月。下面是搭建过程。
YouTube 不宣传的那个 RSS 订阅源
每个频道都有一个订阅源,地址是:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
要找到频道 ID,打开频道页面、查看源代码、搜索 channelId。这个订阅源返回最近的上传视频(大约最新 15 个)及发布日期——不需要 API 密钥、不需要 OAuth、不占用 YouTube Data API 配额。这就是整条流水线的触发器。
脚本
轮询订阅源,保留最近 7 天,转录,然后摘要:
import feedparser, requests
from datetime import datetime, timedelta, timezone
CHANNELS = ["UC_channel_id_1", "UC_channel_id_2"]
API_KEY = "yt_your_key"
cutoff = datetime.now(timezone.utc) - timedelta(days=7)
videos = []
for cid in CHANNELS:
feed = feedparser.parse(
f"https://www.youtube.com/feeds/videos.xml?channel_id={cid}")
for e in feed.entries:
published = datetime(*e.published_parsed[:6], tzinfo=timezone.utc)
if published < cutoff:
continue
r = requests.get("https://youtube2text.org/api/transcribe",
params={"url": e.link, "maxChars": 60000},
headers={"x-api-key": API_KEY}, timeout=60).json()
if "result" in r:
videos.append(r["result"])
每个 result 包含 title、pubDate 和最多 6 万字符的 content——大约 45 分钟的讲话量,做摘要绰绰有余。把每一条发给你选择的 LLM,配上一个刻意保持"无聊"的提示词:
Summarize this video transcript for a newsletter digest.
Three sentences, no hype, end with one concrete takeaway
a reader can act on. Video: {title}
{content}
把摘要拼接起来、加上链接、导入你惯用的邮件工具(我用的是一次普通的 SMTP 调用),然后加上定时任务:0 7 1 python3 /home/you/digest.py。
配额账
六个频道平均每周两更,一个月大约是 48-50 份转录文本——$5.99 基础档的 50 个视频刚好覆盖、一点不剩,这让人踏实还是让人紧张取决于你的性格。如果你关注的频道很高产,$9.99 的 pro 档 500 个视频能彻底消除悬念。免费档的每月 5 个适合单频道摘要,比如给你自己的订阅者发一份本周更新回顾。
两种失败模式
两者都是时序问题,都值得认真处理。第一,在你的 cron 任务触发前一小时才发布的视频可能还没有处理好字幕,API 会返回 TRANSCRIPT_UNAVAILABLE。我会记录这些 ID 并在下一次运行时重试,而不是直接丢弃——把摘要的截止时间比整周晚一天来跑也可以。第二,RSS 订阅源只列出最近的上传,所以对日更频道按月轮询会悄悄漏掉视频。以我测试过的所有频道来说,每周轮询都是安全的;如果某个来源一天发布超过两次,就每周轮询两次。
如果你不想维护脚本
同样的流水线也能在带 RSS 触发节点的无代码工具里搭建:n8n 版本和 Make 版本都有一步步的教程。如果你想要比三句话摘要更丰富的单视频内容,节目笔记提示词可以直接嵌入这个循环。
在 youtube2text.org/app/keys 用 Google 登录,不到一分钟就能拿到密钥——不要银行卡,不要手机号——你的周一收件箱从此开始物有所值。