sync-all-channels
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.
SKILL.md
| Name | sync-all-channels |
| Description | 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. |
name: sync-all-channels description: 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.
Sync All Channels
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.
Quick Start
# Run the unified CLI command
ytscriber sync-all
[!TIP] Run this before
ytscriber download-allto ensure video lists are current.
Workflow
1. Review Channel Configuration
Check ~/Documents/YTScriber/channels.yaml and verify:
- All desired channels have
enabled: true - Video counts are appropriate (20-100 typical)
- URLs point to channel video pages
channels:
- 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.
2. Execute the Sync
ytscriber sync-all
The command will:
- Parse
channels.yaml - Skip channels with
enabled: false - Extract videos for each enabled channel
- Wait between channels (rate limiting)
- Report completion and next steps
3. Verify Results
After completion, check:
- Each channel folder exists
- Each folder contains
videos.csvwith entries - No persistent errors in output
# Quick verification
ls -la ~/Documents/YTScriber/*/videos.csv | head -10
Configuration
Adding a New Channel
-
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.
Disabling a Channel
Set enabled: false - the channel will be skipped during sync but data is preserved.
Recommended Video Counts
| Channel Type | Recommended Count |
|---|---|
| Infrequent posters (1-2/month) | 20 |
| Regular posters (weekly) | 50 |
| High-volume (daily) | 100 |
| Conference channels | 100-200 |
Troubleshooting
| 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 |
Common Mistakes
- Wrong URL format - Use
https://www.youtube.com/@ChannelName/videosnot/channel/or/c/URLs - Forgetting to enable - New channels default to
enabled: falsein templates - Excessive counts - Starting with
count: 500causes long waits; start with 50
Next Steps
After syncing channels:
# Download transcripts for all synced videos
ytscriber download-all
Quality Checklist
Before running sync:
-
channels.yamlexists and is valid YAML - At least one channel has
enabled: true
After sync completes:
- No persistent errors in output (warnings OK)
- Each enabled channel has
videos.csv - CSV files contain video entries
Rate Limiting Details
- Sequential processing - one channel at a time
- Graceful failure - if one channel fails, others continue
[!TIP] For overnight batch operations, run sync first, then download-all. This sequence ensures video lists are current before downloading.