youtubeslackautomation

YouTube Channel Digest Slack Bot Build (2026)

Daily cron checks YouTube channels for new uploads, summarizes transcripts with an LLM, posts 3-bullet digests to Slack. Teams actually read these, unlike RSS alerts.

5 min read

An r/Slack post: "Set up a bot that posts YouTube video summaries to our team Slack and people actually read them." Score: 1. But the concept is solid: teams miss important YouTube content because nobody has time to watch 40-minute conference talks. A daily 3-bullet summary per video solves this.

The architecture

Daily cron checks watched channels for new uploads via the Scavio YouTube endpoint. For each new video, it extracts the auto-caption transcript, sends it to an LLM for a 3-bullet summary, and posts the summary to Slack via webhook. Total setup: one script, one cron job, three API calls per video.

Python
import requests, os

key = os.environ["SCAVIO_API_KEY"]

# Step 1: Find new videos from a channel
resp = requests.post("https://api.scavio.dev/api/v1/search",
    headers={"x-api-key": key},
    json={"query": "channel:@ThePrimeTimeagen", "platform": "youtube", "limit": 5})
videos = resp.json().get("results", [])

for v in videos:
    # Step 2: Summarize transcript with LLM
    transcript = v.get("transcript", v.get("snippet", ""))
    summary = call_llm(f"3-bullet summary of this video transcript: {transcript}")

    # Step 3: Post to Slack
    requests.post(os.environ["SLACK_WEBHOOK"], json={
        "blocks": [
            {"type": "header", "text": {"type": "plain_text", "text": v["title"]}},
            {"type": "section", "text": {"type": "mrkdwn", "text": summary}},
            {"type": "section", "text": {"type": "mrkdwn", "text": f"<{v['url']}|Watch video>"}}
        ]
    })

Why this works when RSS alerts do not

RSS alerts tell you a video exists. They do not tell you what is in it. A 3-bullet summary lets the reader decide in 10 seconds whether to watch the full video. The conversion rate from "alert → watched" is much higher with summaries than with title-only notifications.

Scaling to multiple channels

Store a config list of channels and last-checked timestamps in SQLite or a JSON file. Process each channel in the daily cron. Cost: 1 Scavio credit per channel check + 1 LLM call per new video. For 20 channels producing 3 videos/day average, that is ~80 credits/month ($0.40) plus LLM costs.

Limitations

  • Auto-captions have ~5-10% word error rate on technical content
  • Videos without captions (rare on major channels) produce snippet-only summaries
  • Summary quality depends on the LLM; Claude and GPT-4o handle technical content well