Use cases/Knowledge & Research

Daily YouTube Digest

Track new videos from channels you actually want to follow — YouTube buries them in feed, this digest surfaces them all every morning.

Knowledge & Researcheasy~20m setup
Tools
web_fetchmemory_search
Channels
telegram
Uses
cron

YouTube subscriptions are theoretically the way to keep up with creators you like. In practice, the recommendation algorithm shows you what it wants — sometimes a creator you love hasn't appeared in your feed for weeks despite uploading. RSS feeds for YouTube channels still exist; combine them with a daily digest and you reclaim control.

What it does

  • Pulls new videos from channels you specify (last 24h)
  • Skips Shorts unless you want them (most users don't)
  • Ranks by interest match (your topics in memory)
  • Optional: fetches transcript via youtube-dl + your own STT, summarises
  • Single Telegram message per day

What you'll need

  • Web fetch for YouTube RSS endpoints
  • A list of channels with their channel IDs
  • Optional: yt-dlp installed for transcripts (pip install yt-dlp)
  • Cron

Setup

1. Find channel IDs

YouTube channel IDs aren't visible in URLs — they're typically UC... strings. To find one for a channel:

Send to Flowly
Fetch https://www.youtube.com/<@handle> and extract the "channelId" / "externalId" from the page source.

The agent does this once per channel; results get stored.

2. Configure your channel list

Send to Flowly
Remember (tag "youtube-channels"): - Lex Fridman: UCSHZKyawb77ixDdsGog4iWA - 3Blue1Brown: UCYO_jab_esuFRV4b17AJtAw - Two Minute Papers: UCbfYPyITQ-7l4upoX8nvctg - (your channels) For each: name, channel_id, weight (1-10 trustworthiness for ranking ties), include_shorts (default false).

3. Schedule the digest

Send to Flowly
Cron "youtube-digest" daily at 8 AM: For each channel in youtube-channels: 1. Fetch https://www.youtube.com/feeds/videos.xml?channel_id=<id> 2. Take videos uploaded in last 24h (or 72h on Mondays — to catch weekend uploads) 3. Skip Shorts unless include_shorts=true (Shorts have <60s duration in metadata) For each video: - Score: * Title match against my interests (memory "research-topics" or "interests") * Channel weight * Length (< 5 min: -2, 5-30 min: 0, 30+ min: +1, deep dives are signal) - Drop scores < 5 - Optional: if score >= 8, fetch transcript via yt-dlp and summarise in 3 lines Take top 8, format Telegram message: 📺 Today's videos (8) 🎯 Two Minute Papers — "What if LLMs could see?" (12 min, score 9) 3-line summary if loaded <link> ... If nothing scores above 5, send: "Quiet day — 0 videos worth your time."

Tips

  • Weight matters more than you think. A B-tier channel uploading daily will swamp the digest. Set their weight low (3-4) so they only surface when title strongly matches interests.
  • Transcripts cost time. yt-dlp + summarise adds ~30s per video. Only do it for high scorers — title alone is usually enough to decide whether to watch.
  • Include_shorts is rarely worth true. Shorts are designed for algorithmic feed, not for digest. Default off.
  • Catch-up Monday. Set the lookback window to 72h on Mondays so you don't miss weekend uploads from your favourite channels.
  • Pair with watch-later memory. Let the agent log "watched: <id>" so you can ask "what did I save 2 weeks ago about LLM agents that I haven't watched?"