youtube
Fetch video metadata from YouTube URLs using yt-dlp. Use when the user provides a YouTube URL or asks to get details from a YouTube video.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
YouTube Video Context
Fetch video information from YouTube using yt-dlp.
Instructions
When the user provides a YouTube URL (youtube.com or youtu.be), use yt-dlp to fetch video metadata:
# Get full JSON metadata
yt-dlp --skip-download --dump-json "VIDEO_URL"
This returns JSON with:
-
title- Video title -
description- Full description (often contains recipes, timestamps, links) -
channel- Channel name (useful for source attribution) -
upload_date- Publication date
Quick commands
# Get just the description
yt-dlp --skip-download --print description "VIDEO_URL"
# Get title and description
yt-dlp --skip-download --print "%(title)s" --print description "VIDEO_URL"
Examples
User: "Create a recipe from https://youtube.com/watch?v=xyz"
- Fetch the video metadata with yt-dlp
- Extract the recipe from the description
- Use the channel name for attribution
Backfilling New YouTube Channels
When adding a new YouTube channel to the cocktails app:
-
Create the channel directory structure:
-
src/data/recipes/youtube-channel/CHANNEL_SLUG/ -
src/data/recipes/youtube-channel/CHANNEL_SLUG/_source.json
-
-
Backfill videos to create GitHub issue with all available videos:
yarn youtube-sync --channel CHANNEL_SLUG --days 365 --dry-run -
Review the dry-run output to see what videos will be listed
-
Run without dry-run to create the issue:
yarn youtube-sync --channel CHANNEL_SLUG --days 365
This creates a GitHub issue listing all videos from the channel that don't have recipes yet.
YouTube API Configuration
The sync tool supports two methods for fetching videos:
-
YouTube Data API v3 (Recommended) - Reliable, fast, and works in CI environments
- Set
YOUTUBE_API_KEYenvironment variable with your API key - Get a free API key from Google Cloud Console
- 50 quota units/day = ~1,667 API calls (more than enough for this use case)
- Add as GitHub secret: Repository Settings → Secrets → Actions →
YOUTUBE_API_KEY
- Set
-
yt-dlp (Fallback) - Used automatically if API key not available
- Works locally but may be blocked by YouTube in CI environments
- No configuration needed, but less reliable in automated contexts
The tool automatically tries the API first (if key available), then falls back to yt-dlp if needed.
Channel Video Sync
A GitHub Action runs weekly to check all channels for new videos and creates an issue if any are found.
To manually trigger: Run the workflow dispatch for youtube-sync.yml in GitHub Actions.
Available Options
-
--dry-run- Test without creating GitHub issues -
--days <number>- Number of days to look back for videos (default: 7) -
--channel <slug>- Only process a specific channel by slug -
--help- Show help message
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!