Extract videos from all enabled YouTube channels in channels.yaml. Use for batch updating video lists before downloading transcripts overnight, when the user mentions "sync channels", "update video lists", "refresh channels", or before running download-all-transcripts.
Why? Manually running extract-videos on each channel is tedious and error-prone. This skill automates batch extraction with rate limiting to respect YouTube's API.
# Run the unified CLI command
ytscriber sync-all
[!TIP] Run this before
ytscriber download-allto ensure video lists are current.
Check ~/Documents/YTScriber/channels.yaml and verify:
enabled: truechannels:
- folder: OpenAI
url: https://www.youtube.com/@OpenAI/videos
count: 50
enabled: true
collections:
- library-of-minds
- random
[!CAUTION] Setting
countabove 200 significantly increases sync time and may trigger rate limiting.
ytscriber sync-all
The command will:
channels.yamlenabled: falseAfter completion, check:
videos.csv with entries# Quick verification
ls -la ~/Documents/YTScriber/*/videos.csv | head -10
Add entry to channels.yaml:
- folder: new-channel-name
url: https://www.youtube.com/@ChannelName/videos
count: 50
enabled: true
Run sync - folder is created automatically
Or use the extract command with --register-channel:
ytscriber extract https://www.youtube.com/@ChannelName/videos \
--count 50 \
--folder new-channel-name \
--register-channel
[!WARNING] Folder names should use lowercase with hyphens (e.g.,
my-channel). Avoid spaces or special characters.
Set enabled: false - the channel will be skipped during sync but data is preserved.
| Channel Type | Recommended Count | |-------------|-------------------| | Infrequent posters (1-2/month) | 20 | | Regular posters (weekly) | 50 | | High-volume (daily) | 100 | | Conference channels | 100-200 |
| Problem | Cause | Solution |
|---------|-------|----------|
| Config file not found | Running from wrong directory or channels.yaml missing | Ensure ~/Documents/YTScriber/channels.yaml exists |
| Failed to sync [channel] | Network issue or invalid URL | Check URL is accessible in browser, retry |
| Sync takes forever | Too many channels or high counts | Reduce counts or disable some channels |
| Empty videos.csv | Channel has no public videos or URL is wrong | Verify URL ends in /videos |
| Rate limit errors | Too many requests | Wait 1 hour and retry; reduce counts |
https://www.youtube.com/@ChannelName/videos not /channel/ or /c/ URLsenabled: false in templatescount: 500 causes long waits; start with 50After syncing channels:
# Download transcripts for all synced videos
ytscriber download-all
Before running sync:
channels.yaml exists and is valid YAMLenabled: trueAfter sync completes:
videos.csv[!TIP] For overnight batch operations, run sync first, then download-all. This sequence ensures video lists are current before downloading.
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity