askill
extract-videos

extract-videosSafety 90Repository

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".

6 stars
1.2k downloads
Updated 1/11/2026

Package Files

Loading files...
SKILL.md

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

# Recurring channel (adds to channels.yaml for future syncs)
ytscriber extract https://www.youtube.com/@ChannelName/videos \
  --count 50 \
  --folder <channel-name> \
  --register-channel

# One-time extraction (conferences, playlists)
ytscriber extract <youtube_url> --count 100 --folder <name>

Workflow

1. Determine Extraction Type

ScenarioUse --register-channel?Typical Count
New channel for ongoing trackingYes50-200 initial, then 20-50 for syncs
Conference talks (one-time)No50-500
Specific playlist/topicNoAs needed
Testing/explorationNo5-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:

OptionDescriptionDefaultWhen to Use
--count, -nNumber of latest videos10Always specify explicitly
--folderFolder name for this channelRequiredAlways use for tracking
--register-channelAdd to channels.yamlFalseRecurring channels only
--verbose, -vEnable verbose outputFalseDebugging

[!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

# Check CSV was created with expected columns
head -3 ~/Documents/YTScriber/<channel-name>/videos.csv

# Count extracted videos
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

# Result: 100 videos extracted, channel added to channels.yaml with count: 100

One-Time Conference Extraction

# Extract AWS re:Invent talks (won't be synced later)
ytscriber extract https://www.youtube.com/@AWSEventsChannel/videos \
  --count 200 \
  --folder aws-reinvent-2025

# No --register-channel = not added to channels.yaml

Re-running on Existing CSV (Incremental Update)

# Running again only adds NEW videos (duplicates auto-skipped)
ytscriber extract https://www.youtube.com/@veritasium/videos \
  --count 20 \
  --folder veritasium

# Safe to run multiple times - existing videos preserved

Troubleshooting

ProblemCauseSolution
"No videos found"Wrong URL formatUse https://www.youtube.com/@ChannelName/videos (include /videos)
CSV not createdFolder doesn't existThe CLI creates the folder automatically
Duplicate videos appearingRunning with different URL variantsAlways use canonical @handle/videos format
Channel not in channels.yamlForgot --register-channelRe-run with flag, or manually add to YAML
Wrong video count in channels.yamlFlag uses command's --count valueEdit channels.yaml manually to adjust future sync count

Common Mistakes

  1. Forgetting /videos in URL

    • Wrong: https://www.youtube.com/@veritasium
    • Right: https://www.youtube.com/@veritasium/videos
  2. 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
  3. Expecting transcripts to download

    • This skill ONLY extracts video metadata to CSV
    • Use download-transcripts skill to actually fetch transcripts
  4. 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:

  • CSV exists with expected video count
  • CSV has all required columns (url, title, duration_minutes, etc.)
  • If recurring channel: entry exists in channels.yaml
  • If recurring channel: channels.yaml count is set appropriately for future syncs

Next Steps

After extracting videos:

  1. Download transcripts: Use the download-transcripts skill
  2. Sync channels later: Use sync-all-channels for registered channels
  3. Add summaries: Use summarize-transcripts after downloading

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

92/100Analyzed 2/12/2026

A comprehensive and highly actionable skill for extracting YouTube metadata using a custom CLI tool. It includes clear workflows, troubleshooting, and verification steps.

90
98
85
95
98

Metadata

Licenseunknown
Version-
Updated1/11/2026
Publisherdparedesi

Tags

github-actions