| name | extract-videos |
| description | Extract video metadata from a YouTube channel and save to CSV for tracking. Use when adding a new channel, extracting conference videos, populating video lists, or when the user mentions "extract videos", "get videos from channel", "add channel", or "video metadata". |
Extract Videos from YouTube Channel
Why? Manually tracking YouTube videos is tedious and error-prone. This skill automates extracting video metadata (titles, durations, URLs) into a CSV for systematic transcript downloading and analysis.
Quick Start
ytscriber extract https://www.youtube.com/@ChannelName/videos \
--count 50 \
--folder <channel-name> \
--register-channel
ytscriber extract <youtube_url> --count 100 --folder <name>
Workflow
1. Determine Extraction Type
| Scenario | Use --register-channel? | Typical Count |
|---|
| New channel for ongoing tracking | Yes | 50-200 initial, then 20-50 for syncs |
| Conference talks (one-time) | No | 50-500 |
| Specific playlist/topic | No | As needed |
| Testing/exploration | No | 5-10 |
[!TIP]
Use --register-channel only for channels you want to sync regularly. It adds the channel to channels.yaml for the sync-all-channels skill.
2. Run Extraction Command
ytscriber extract <channel_url> \
--count <N> \
--folder <channel-name> \
[--register-channel]
Parameters:
| Option | Description | Default | When to Use |
|---|
--count, -n | Number of latest videos | 10 | Always specify explicitly |
--folder | Folder name for this channel | Required | Always use for tracking |
--register-channel | Add to channels.yaml | False | Recurring channels only |
--verbose, -v | Enable verbose output | False | Debugging |
[!CAUTION]
The --count in the command sets the INITIAL extraction count. The count in channels.yaml (set by --register-channel) controls FUTURE sync counts. These are independent values.
3. Verify Extraction
head -3 ~/Documents/YTScriber/<channel-name>/videos.csv
wc -l ~/Documents/YTScriber/<channel-name>/videos.csv
Expected CSV columns:
url - Full YouTube video URL
title - Video title
duration_minutes - Video length
view_count - Number of views
description - Video description (truncated to 500 chars)
published_date - Video publish date
transcript_downloaded - Tracking field (initially empty)
summary_done - Tracking field (initially empty)
Examples
Adding a New Channel for Regular Syncing
ytscriber extract https://www.youtube.com/@veritasium/videos \
--count 100 \
--folder veritasium \
--register-channel
One-Time Conference Extraction
ytscriber extract https://www.youtube.com/@AWSEventsChannel/videos \
--count 200 \
--folder aws-reinvent-2025
Re-running on Existing CSV (Incremental Update)
ytscriber extract https://www.youtube.com/@veritasium/videos \
--count 20 \
--folder veritasium
Troubleshooting
| Problem | Cause | Solution |
|---|
| "No videos found" | Wrong URL format | Use https://www.youtube.com/@ChannelName/videos (include /videos) |
| CSV not created | Folder doesn't exist | The CLI creates the folder automatically |
| Duplicate videos appearing | Running with different URL variants | Always use canonical @handle/videos format |
Channel not in channels.yaml | Forgot --register-channel | Re-run with flag, or manually add to YAML |
Wrong video count in channels.yaml | Flag uses command's --count value | Edit channels.yaml manually to adjust future sync count |
Common Mistakes
-
Forgetting /videos in URL
- Wrong:
https://www.youtube.com/@veritasium
- Right:
https://www.youtube.com/@veritasium/videos
-
Using --register-channel for one-time extractions
- This pollutes
channels.yaml with channels you won't sync
- Only use for channels you want in the regular sync rotation
-
Expecting transcripts to download
- This skill ONLY extracts video metadata to CSV
- Use
download-transcripts skill to actually fetch transcripts
-
Confusing command --count with channels.yaml count
- Command
--count: How many videos to extract NOW
channels.yaml count: How many videos for FUTURE syncs
- Initial extraction might be 200, but sync count might be 30
Quality Checklist
Before considering extraction complete:
Next Steps
After extracting videos:
- Download transcripts: Use the
download-transcripts skill
- Sync channels later: Use
sync-all-channels for registered channels
- Add summaries: Use
summarize-transcripts after downloading