YouTube Daily Digest: Auto Monitor & Summary 🥥Meow

Automation

A Python bot that monitors YouTube channels via RSS, summarizes new videos using Google Gemini AI (with audio fallback for videos without subtitles), and sends bilingual (Chinese + English) summaries to a Telegram chat daily.

Install

openclaw skills install youtube-daily-digest-bot

YouTube 每日视频总结 Telegram 机器人

This skill deploys a YouTube monitoring bot that:

  1. Polls configured YouTube channels via RSS feed (no API key needed for this step)
  2. Extracts video transcripts using youtube-transcript-api
  3. Falls back to audio download via yt-dlp if no subtitles are available
  4. Summarizes content using Google Gemini 2.5 Flash (supports both text and audio input natively)
  5. Sends a beautifully formatted bilingual (Chinese + English) summary to Telegram

Prerequisites

You need these three secrets configured in your environment:

  • GEMINI_API_KEY — from Google AI Studio
  • TG_BOT_TOKEN — from Telegram @BotFather
  • TG_CHAT_ID — your personal or group Telegram chat ID

File Structure

FilePurpose
config.pyAll configuration, API keys, and YouTube channel settings
youtube_monitor.pyRSS polling and local deduplication via db.json
extractor.pyTranscript fetching or audio download fallback
ai_summarizer.pyGemini API integration (text + audio)
tg_notifier.pyTelegram message delivery with chunking
main.pyMain entry point with daily 8:00 AM scheduling
requirements.txtAll Python dependencies

Setup & Usage

Step 1: Configure channels and secrets

Edit config.py and add your API keys and the YouTube Channel IDs you want to monitor:

YOUTUBE_CHANNELS = {
    "UCxxxxxxxxxxxxxxxxxxxxxx": "Channel Name Here"
}

Step 2: Install dependencies

pip install -r requirements.txt

Step 3: Run

For a one-off immediate check:

python main.py

For long-running background mode (runs daily at 8 AM Izmir time):

nohup python main.py > bot.log 2>&1 &

How to Find a YouTube Channel ID

  1. Go to the YouTube channel page
  2. Click the channel name, then go to About
  3. Click "Share Channel" and copy the link — the ID starts with UC...
  4. Or use commentpicker.com/youtube-channel-id.php

Notes

  • The bot tracks processed videos in db.json so it never sends duplicate summaries
  • If Gemini API is not configured, the bot will fail gracefully with a clear error message
  • Long videos with audio fallback may take 1–2 minutes to upload and process