HomeBlogTranscribePlansAPI Keys

Otomatisasi Newsletter Kanal YouTube dengan RSS dan Satu API

Entri feed RSS mengalir melalui skrip menjadi digest newsletter email

Otomatisasi newsletter kanal YouTube hanya membutuhkan tepat tiga bagian: feed RSS yang diam-diam diterbitkan YouTube untuk setiap kanal, sebuah API transkrip, dan sebuah cron job. Digest Senin pagi saya — enam kanal di niche saya, diringkas dengan substansi nyata alih-alih judul thumbnail — telah berjalan tanpa diawasi selama empat bulan dengan sekitar 40 baris Python. Berikut cara membangunnya.

Feed RSS yang tidak diiklankan YouTube

Setiap kanal memiliki feed di:

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

Untuk menemukan ID sebuah kanal, buka halaman kanalnya, lihat source-nya, dan cari channelId. Feed ini mengembalikan unggahan terbaru (kira-kira 15 terakhir) beserta tanggal terbit — tanpa API key, tanpa OAuth, tanpa kuota YouTube Data API. Itulah pemicu untuk seluruh pipeline.

Skripnya

Poll feed-nya, simpan 7 hari terakhir, transkripsikan, ringkas:

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

Setiap result membawa title, pubDate, dan hingga 60 ribu karakter content — sekitar 45 menit pembicaraan, lebih dari cukup untuk ringkasan digest. Kirim masing-masing ke LLM pilihan Anda dengan prompt yang sengaja dibuat membosankan:

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}

Gabungkan ringkasannya, tambahkan tautan, alirkan ke alat email pilihan Anda (saya memakai panggilan SMTP biasa), dan jadwalkan: 0 7 1 python3 /home/you/digest.py.

Hitung-hitungan kuota

Enam kanal dengan rata-rata dua unggahan per minggu berarti kira-kira 48-50 transkrip per bulan — 50 video di paket basic $5,99 mencakupnya tanpa sisa sama sekali, yang bisa terasa memuaskan atau menegangkan tergantung temperamen Anda. Jika kanal-kanal Anda produktif, paket pro $9,99 dengan 500 video menghilangkan ketegangan itu. Paket gratis dengan 5 per bulan cocok untuk digest satu kanal, misalnya mengirimi subscriber Anda sendiri rekap unggahan minggu ini.

Dua mode kegagalan

Keduanya adalah masalah timing, dan keduanya layak ditangani dengan jujur. Pertama, video yang terbit satu jam sebelum cron job Anda berjalan mungkin belum memiliki caption yang selesai diproses, sehingga API mengembalikan TRANSCRIPT_UNAVAILABLE. Saya mencatat id-id tersebut dan mencobanya lagi di run berikutnya alih-alih membuangnya — menjalankan digest satu hari setelah batas akhir minggu juga berhasil. Kedua, feed RSS hanya mencantumkan unggahan terbaru, sehingga ritme bulanan pada kanal yang mengunggah harian akan diam-diam melewatkan video. Polling mingguan aman untuk semua kanal yang pernah saya uji; jika sebuah sumber memposting lebih dari dua kali sehari, poll dua kali seminggu.

Jika Anda tidak ingin memelihara skrip

Pipeline yang sama dapat dibangun di alat no-code dengan node pemicu RSS: versi n8n dan versi Make keduanya memandu langkah demi langkah. Dan jika Anda ingin tulisan per video yang lebih kaya daripada digest tiga kalimat, prompt show notes langsung cocok dimasukkan ke loop ini.

Login Google di youtube2text.org/app/keys memberi Anda key dalam waktu kurang dari satu menit — tanpa kartu, tanpa telepon — dan inbox Senin Anda mulai membayar dirinya sendiri.