S
scraping-youtube-playlist
About scraping-youtube-playlist
scraping-youtube-playlist collects video metadata from YouTube playlists for downstream analysis. It accepts playlist URLs or search keywords and supports result limits and custom field mapping.
Key features
- 01Scrape playlists by URL or keyword
- 02Return video and channel metadata
- 03Limit the number of results
- 04Transform output with JavaScript
- 05Export results as CSV or JSON
Use cases
- 01Collect video data from a playlist
- 02Prepare playlist metadata for analysis
MCP support
When Apify MCP is available, call the `apidojo~youtube-playlist-scraper` actor with the desired inputs.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill scraping-youtube-playlistAfter installing, type/scraping-youtube-playlistin Claude Code to confirm it loaded.
Details
From the project READMEScraping Youtube Playlist
Raw data collection. No assumed use case — returns the full dataset for downstream analysis.
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | Optional | [] | YouTube playlist URLs |
keywords | array | Optional | [] | Search keywords to find playlists |
gl | string | Optional | us | Country code (e.g. US) |
hl | string | Optional | en | Language code (e.g. en) |
sort | string | Optional | r | Sort order |
maxItems | number | Optional | Unlimited | Maximum videos to return |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
How to Run
Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~youtube-playlist-scraper" --input '{"startUrls": ["https://www.youtube.com/playlist?list=PLABCDE12345"], "maxItems": 50}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~youtube-playlist-scraper" --input '{"startUrls": ["https://www.youtube.com/playlist?list=PLABCDE12345"], "maxItems": 50}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~youtube-playlist-scraper" --input '{"startUrls": ["https://www.youtube.com/playlist?list=PLABCDE12345"], "maxItems": 50}' --output results.json --format json
REST API fallback
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-playlist-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["https://www.youtube.com/playlist?list=PLABCDE12345"], "maxItems": 50}'
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~youtube-playlist-scraper and the input above.
Output Fields
| Field | Type | Description |
|---|---|---|
type | string | Always video |
id | string | Video ID |
title | string | Video title |
url | string | Video URL |
description | string | Video description |
duration | number | Duration in seconds |
views | number | View count |
likes | number | Like count |
status | string | Availability status |
channel.id | string | Channel ID |
channel.name | string | Channel name |
channel.url | string | Channel URL |
keywords | array | Video tags/keywords |
isLive | boolean | Live stream flag |
isPrivate | boolean | Private flag |
thumbnails | array | Thumbnail objects |
Edge Cases
- Private playlist: Returns 0 results. Tell user the playlist is private.
- Deleted playlist: Returns error or empty. Check URL.
- Very large playlist: Use maxItems to cap results and avoid long run times.
- Mix playlist (YouTube auto-generated): May behave differently than user-created playlists.
Comments
Markdown supported