Automatiser nyhetsbrev fra YouTube-kanaler med RSS og ett API

Automatisering av nyhetsbrev fra YouTube-kanaler trenger nøyaktig tre deler: RSS-feeden YouTube i det stille publiserer for hver kanal, et transkripsjons-API og en cron-jobb. Mandagsmorgen-digesten min — seks kanaler i min nisje, oppsummert med faktisk substans i stedet for thumbnail-titler — har kjørt uten tilsyn i fire måneder på rundt 40 linjer Python. Her er byggeprosessen.
RSS-feeden YouTube ikke reklamerer for
Hver kanal har en feed på:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
For å finne en kanals ID: åpne kanalsiden, vis kildekoden og søk etter channelId. Feeden returnerer de siste opplastingene (omtrent de 15 nyeste) med publiseringsdatoer — ingen API-nøkkel, ingen OAuth, ingen kvote fra YouTube Data API. Det er utløseren for hele pipelinen.
Skriptet
Poll feedene, behold de siste 7 dagene, transkriber, oppsummer:
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"])
Hvert result inneholder title, pubDate og opptil 60k tegn med content — omtrent 45 minutter med snakk, rikelig for et digest-sammendrag. Send hvert av dem til LLM-en du foretrekker, med en bevisst kjedelig 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}
Sett sammen sammendragene, legg til lenker, send til e-postverktøyet ditt (jeg bruker et enkelt SMTP-kall) og planlegg det: 0 7 1 python3 /home/you/digest.py.
Kvoteregnestykket
Seks kanaler med i snitt to opplastinger i uken blir omtrent 48–50 transkripsjoner i måneden — basisnivåets 50 videoer til $5.99 dekker det uten noe til overs, hvilket enten er tilfredsstillende eller nervepirrende, avhengig av temperamentet ditt. Er kanalene dine produktive, fjerner pro til $9.99 for 500 all spenning. Gratisnivåets 5 i måneden fungerer for en digest med én kanal, som å sende dine egne abonnenter en oppsummering av ukens opplastinger.
De to feilmodusene
Begge er timing-problemer, og begge fortjener ærlig håndtering. For det første: en video publisert en time før cron-jobben din kjører, har kanskje ikke fått prosessert undertekster ennå, så API-et returnerer TRANSCRIPT_UNAVAILABLE. Jeg logger de id-ene og prøver dem på nytt i neste kjøring i stedet for å droppe dem — å kjøre digesten en dag etter ukens cutoff fungerer også. For det andre: RSS-feeden lister bare de nyeste opplastingene, så en månedlig frekvens mot en kanal som laster opp daglig vil stille og rolig gå glipp av videoer. Ukentlig polling er trygt for alle kanaler jeg har testet; poster en kilde mer enn to ganger om dagen, poll to ganger i uken.
Hvis du helst ikke vil vedlikeholde et skript
Den samme pipelinen kan bygges i no-code-verktøy med en RSS-trigger-node: n8n-versjonen og Make-versjonen går begge gjennom det steg for steg. Og vil du ha fyldigere omtaler per video enn en digest på tre setninger, glir episodenotat-prompten rett inn i denne løkken.
En Google-innlogging på youtube2text.org/app/keys gir deg en nøkkel på under ett minutt — ikke noe kort, ikke noe telefonnummer — og mandagsinnboksen din begynner å gjøre nytte for seg.