HomeBlogTranscribePlansAPI Keys

Newsletter automatica da un canale YouTube con RSS e una sola API

Voci di feed RSS che attraversano uno script fino a un digest via email

Per automatizzare una newsletter da un canale YouTube servono esattamente tre pezzi: il feed RSS che YouTube pubblica in sordina per ogni canale, una API di trascrizione e un cron job. Il mio digest del lunedì mattina — sei canali della mia nicchia, riassunti con sostanza vera invece dei titoli da thumbnail — gira senza supervisione da quattro mesi con circa 40 righe di Python. Ecco come costruirlo.

Il feed RSS che YouTube non pubblicizza

Ogni canale ha un feed all'indirizzo:

https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID

Per trovare l'ID di un canale, apri la pagina del canale, visualizza il sorgente e cerca channelId. Il feed restituisce gli upload più recenti (all'incirca gli ultimi 15) con le date di pubblicazione — niente chiave API, niente OAuth, niente quota della YouTube Data API. È questo il trigger dell'intera pipeline.

Lo script

Interroga i feed, tieni gli ultimi 7 giorni, trascrivi, riassumi:

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

Ogni result contiene title, pubDate e fino a 60k caratteri di content — circa 45 minuti di parlato, più che sufficienti per il riassunto di un digest. Manda ciascuno al tuo LLM preferito con un prompt volutamente noioso:

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}

Concatena i riassunti, aggiungi i link, passa tutto al tuo strumento email preferito (io uso una semplice chiamata SMTP) e pianificalo: 0 7 1 python3 /home/you/digest.py.

I conti della quota

Sei canali con in media due upload a settimana fanno all'incirca 48-50 trascrizioni al mese — i 50 video del piano base da 5,99 $ li coprono senza margine, il che è appagante o snervante a seconda del tuo temperamento. Se i tuoi canali sono prolifici, il piano pro da 9,99 $ per 500 elimina la suspense. I 5 al mese del piano gratuito bastano per un digest a canale singolo, ad esempio per mandare ai tuoi iscritti un recap degli upload della tua settimana.

Le due modalità di fallimento

Entrambe sono problemi di tempistica, ed entrambe meritano una gestione onesta. Primo: un video pubblicato un'ora prima che scatti il cron job potrebbe non avere ancora i sottotitoli elaborati, quindi la API restituisce TRANSCRIPT_UNAVAILABLE. Io registro quegli id e li ritento all'esecuzione successiva invece di scartarli — funziona anche far girare il digest con un giorno di ritardo rispetto al taglio settimanale. Secondo: il feed RSS elenca solo gli upload recenti, quindi una cadenza mensile su un canale che pubblica ogni giorno perderà video in silenzio. Il polling settimanale è sicuro per qualsiasi canale che io abbia testato; se una fonte pubblica più di due volte al giorno, interroga due volte a settimana.

Se preferisci non mantenere uno script

La stessa pipeline si costruisce nei tool no-code con un nodo trigger RSS: la versione n8n e la versione Make la illustrano entrambe passo dopo passo. E se vuoi schede per video più ricche di un digest da tre frasi, il prompt per le show notes si innesta direttamente in questo loop.

Un accesso Google su youtube2text.org/app/keys ti dà una chiave in meno di un minuto — niente carta, niente telefono — e la tua inbox del lunedì comincia a guadagnarsi da vivere.