YouTube Channel Newsletter Automation with RSS and One API

YouTube channel newsletter automation needs exactly three parts: the RSS feed YouTube quietly publishes for every channel, a transcript API, and a cron job. My Monday-morning digest — six channels in my niche, summarized with actual substance instead of thumbnail titles — has run unattended for four months on about 40 lines of Python. Here's the build.
The RSS feed YouTube doesn't advertise
Every channel has a feed at:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
To find a channel's ID, open the channel page, view source, and search for channelId. The feed returns the most recent uploads (roughly the latest 15) with publish dates — no API key, no OAuth, no YouTube Data API quota. That's the trigger for the whole pipeline.
The script
Poll the feeds, keep the last 7 days, transcribe, summarize:
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"])
Each result carries title, pubDate, and up to 60k characters of content — about 45 minutes of talking, plenty for a digest summary. Send each one to your LLM of choice with a deliberately boring prompt:
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}
Concatenate the summaries, add links, pipe to your email tool of choice (I use a plain SMTP call), and schedule it: 0 7 1 python3 /home/you/digest.py.
Quota math
Six channels averaging two uploads a week is roughly 48-50 transcripts a month — the $5.99 basic tier's 50 videos covers it with nothing to spare, which is either satisfying or nerve-wracking depending on your temperament. If your channels are prolific, pro at $9.99 for 500 removes the suspense. The free tier's 5 a month works for a single-channel digest, like sending your own subscribers a recap of your week's uploads.
The two failure modes
Both are timing problems, and both are worth handling honestly. First, a video published an hour before your cron job fires may not have processed captions yet, so the API returns TRANSCRIPT_UNAVAILABLE. I log those ids and retry them in the next run rather than dropping them — running the digest a day behind the week's cutoff also works. Second, the RSS feed only lists recent uploads, so a monthly cadence on a daily-upload channel will silently miss videos. Weekly polling is safe for any channel I've tested; if a source posts more than twice a day, poll twice a week.
If you'd rather not maintain a script
The same pipeline builds in no-code tools with an RSS trigger node: the n8n version and the Make version both walk through it step by step. And if you want richer per-video write-ups than a three-sentence digest, the show notes prompt drops straight into this loop.
A Google sign-in at youtube2text.org/app/keys gets you a key in under a minute — no card, no phone — and your Monday inbox starts earning its keep.