Skills yt-assemblyai-monitor

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/azazlf09/yt-assemblyai-monitor" ~/.claude/skills/openclaw-skills-yt-assemblyai-monitor && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/azazlf09/yt-assemblyai-monitor" ~/.openclaw/skills/openclaw-skills-yt-assemblyai-monitor && rm -rf "$T"
manifest: skills/azazlf09/yt-assemblyai-monitor/SKILL.md
source content

YouTube Channel Monitor (AssemblyAI)

Monitor YouTube channels and auto-transcribe new videos using AssemblyAI cloud API. Zero local dependencies beyond

requests
.

Prerequisites

  1. AssemblyAI account: https://www.assemblyai.com/app/signup (free, 100 hours/month)
  2. API Key: from Dashboard
  3. requests
    library (usually pre-installed with OpenClaw/Python)

Setup API Key

Choose one:

# Option A: environment variable
export ASSEMBLYAI_API_KEY="your-key"

# Option B: config file
echo '{"api_key": "your-key"}' > data/config.json

How It Works

Channel page → innertube API → audio direct URL → AssemblyAI cloud → text + summary

No local audio download, no Whisper, no ffmpeg. AssemblyAI handles everything server-side.

Commands

# Transcribe a single video
python3 scripts/monitor.py now "https://www.youtube.com/watch?v=VIDEO_ID"

# Add a channel to monitor
python3 scripts/monitor.py add "https://www.youtube.com/@ChannelName/videos" "Alias"

# Check all channels for new videos + transcribe
python3 scripts/monitor.py check [count_per_channel]

# List channels
python3 scripts/monitor.py list

# Remove channel
python3 scripts/monitor.py remove "Alias"

Important Notes

  • Audio URL extraction uses YouTube's innertube API (pure requests).
  • Works on normal residential IPs. Datacenter IPs may get blocked by YouTube.
  • If audio URL extraction fails with UNPLAYABLE, the IP may be flagged — this is a YouTube limitation, not a bug.
  • Free tier: 100 hours/month of transcription.
  • Transcription takes ~70-80% of video duration.
  • Results saved to
    data/summaries/{video_id}.json
    .

Output Format

Each result includes:

  • text
    : full transcription
  • summary
    : AI-generated paragraph summary
  • confidence
    : transcription confidence score
  • utterances
    : timestamped segments with speaker labels

Files

PathPurpose
data/channels.json
monitored channels
data/processed.json
already-transcribed video IDs
data/summaries/*.json
transcription results
data/config.json
API key (optional)