Youtube Info Diet
Tim asked me the other day about Claude getting YT video content. I haven’t had any problems with Claude Code or Jarvis doing this for me, but it relies on me searching YT. So, I just built a YT Info Diet. It runs locally using Apify (free plan) and my Claude Code subscription. It runs every 12 hours, excludes Shorts and send the summary with a reco to my Slack. I gave it a list of channels to “watch”
YouTube Channel Intelligence Monitor — Setup Guide
Auto-summarize new YouTube videos from your favorite channels every 12 hours, with watch/skim/skip verdicts delivered to Slack. No API costs (uses Claude Code subscription).
What You'll Get
Every 12 hours, the monitor checks your favorite YouTube channels. When a new long-form video drops, it:
1. Fetches the transcript
2. Sends it to Claude for analysis
3. Posts a structured intelligence brief to Slack with WATCH / SKIM / SKIP verdict, summary, key insights, and an actionable playbook
4. Saves a markdown report locally
YouTube Shorts are automatically filtered out.
---
Prerequisites
- macOS (this guide; Linux works too with cron instead of launchd)
- Python 3.9+
- https://claude.com/claude-code installed and logged in (claude command working)
- https://github.com/yt-dlp/yt-dlp — pip install yt-dlp
- An https://apify.com account (free tier is fine — used as transcript fallback)
- A Slack workspace where you can create webhooks
---
Step 1 — Install Python Dependencies
pip3 install feedparser youtube-transcript-api slack-sdk pyyaml
Step 2 — Get Your Apify Token
1. Sign up at https://apify.com (free)
2. Go to Settings → Integrations → API tokens
3. Copy your token (starts with apify_api_...)
Step 3 — Create a Slack Incoming Webhook
1. Go to https://api.slack.com/apps → Create New App → From scratch
2. Name it "YT Monitor", pick your workspace
3. In sidebar: Incoming Webhooks → toggle ON
4. Click Add New Webhook to Workspace → pick the channel where reports should land
5. Copy the webhook URL (starts with https://hooks.slack.com/services/...)
Step 4 — Create the Project
mkdir -p ~/dev/yt-channel-monitor
cd ~/dev/yt-channel-monitor
Create config.yaml:
check_interval_hours: 12
max_transcript_chars: 100000
slack_webhook_url: ''
channels: []
Create monitor.py — copy the full script from [paste your gist URL here]. (Or share the file directly with your friend.)
Step 5 — Add Channels
Find a channel ID by visiting the channel page (e.g. https://www.youtube.com/@peterdiamandis), then run:
yt-dlp --skip-download --playlist-items 1 --print "%(channel_id)s" "https://www.youtube.com/@peterdiamandis"
Add it:
python3 monitor.py add "Peter Diamandis" "UCvxm0qTrGN_1LMYgUaftWyQ" --tags ai futurism
Repeat for each channel you want to monitor.
Step 6 — Seed (Important!)
This marks all current videos as "already seen" so you don't get a flood of backfill on first run:
python3 monitor.py seed
Step 7 — Test It
export APIFY_TOKEN="apify_api_YOUR_TOKEN"
# Process anything from the past 1 day as a test
python3 monitor.py run --since-days 1
You should see Slack notifications arrive within a few minutes.
Step 8 — Schedule Every 12 Hours (macOS)
Create ~/Library/LaunchAgents/com.yourname.yt-monitor.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yourname.yt-monitor</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/YOUR_USERNAME/dev/yt-channel-monitor/monitor.py</string>
<string>run</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/YOUR_USERNAME/dev/yt-channel-monitor</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/YOUR_USERNAME/.local/bin:/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin</string>
<key>SLACK_WEBHOOK_URL</key>
<string>YOUR_WEBHOOK_URL_HERE</string>
<key>APIFY_TOKEN</key>
<string>YOUR_APIFY_TOKEN_HERE</string>
<key>HOME</key>
<string>/Users/YOUR_USERNAME</string>
</dict>
<key>StartCalendarInterval</key>
<array>
<dict><key>Hour</key><integer>6</integer><key>Minute</key><integer>0</integer></dict>
<dict><key>Hour</key><integer>18</integer><key>Minute</key><integer>0</integer></dict>
</array>
<key>StandardOutPath</key>
<string>/Users/YOUR_USERNAME/dev/yt-channel-monitor/monitor.log</string>
<key>StandardErrorPath</key>
<string>/Users/YOUR_USERNAME/dev/yt-channel-monitor/monitor.error.log</string>
</dict>
</plist>
Replace YOUR_USERNAME and the credentials, then load it:
launchctl load ~/Library/LaunchAgents/com.yourname.yt-monitor.plist
launchctl list | grep yt-monitor # confirm it's loaded
That's it. Reports land in Slack at 6 AM and 6 PM daily.
---
Daily Commands
# Add a channel
python3 monitor.py add "Channel Name" "UC..." --tags ai marketing
# List all channels
python3 monitor.py list
# Remove a channel
python3 monitor.py remove "UC..."
# Run manually right now
launchctl start com.yourname.yt-monitor
# Watch the logs
tail -f ~/dev/yt-channel-monitor/monitor.log
# Stop the schedule
launchctl unload ~/Library/LaunchAgents/com.yourname.yt-monitor.plist
---
How It Works
- YouTube RSS feeds (free, no API key) check each channel for new uploads
- Three-tier transcript fetching: youtube-transcript-api → yt-dlp → Apify (rotating proxies)
- YouTube Shorts filtered automatically (videos ≤ 180 seconds)
- claude -p headless mode runs analysis using your Claude Code subscription — no Anthropic API key needed
- State persistence in state.json ensures each video is only processed once
- Markdown archive in reports/ so you can grep/search past analyses
---
Tips
- Start small — 3-5 channels first. Easier to tune.
- Tag aggressively — tags help when scanning the Slack feed.
- Heavy Shorts posters (like creators who do daily Shorts) are mostly filtered out, but their occasional long-form videos still come through.
- Cost: ~$0 in normal use. Apify free tier handles ~5K videos/month easily. Claude Code subscription handles unlimited analysis.
0
2 comments
Robb Green
5
Youtube Info Diet
Ecom AI
skool.com/ecomai
Ecom AI is for e-commerce sellers that want to use AI to improve their businesses. Cut costs, improve marketing, and operate with more agents.
Leaderboard (30-day)
Powered by