YouTube Playlist Scraper
Pricing
$0.39 / 1,000 results
YouTube Playlist Scraper
Scrape YouTube playlist videos into Dataset rows: IDs, titles, positions, views, durations, thumbnails, and playlist metadata. Cap results per playlist — metadata only, not a downloader.
Pricing
$0.39 / 1,000 results
Rating
0.0
(0)
Developer
Scrape Mamba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Playlist Scraper — Playlist Videos & Metadata
Scrape YouTube playlists into Dataset rows: playlist metadata plus ordered videos with position, IDs, titles, views, durations, and thumbnails. Ideal for courses, albums, and editorial collections — metadata only, not a video downloader.
Run YouTube Playlist Scraper on Apify · Built by ScrapeMamba · Metadata only, not a video downloader
Why this Actor?
Playlists are durable join keys for curricula, music catalogs, and curated series. This Actor accepts playlist URLs or IDs, fetches capped video lists with positions preserved, and writes both a playlist meta row and per-video rows — ready for warehouse loads and enrichment.
- Accepts
?list=URLs or bare playlist IDs - Preserves video
positionfor ordered catalogs - Cap videos per playlist with
maxResults(default100) - Optional
lang/countryfor locale
Key features
- Playlist meta + ordered video rows in one run
- Deduped playlist IDs before fetch
- Per-playlist error isolation
- Stable
playlistId+videoId+positionjoin keys - Apify Console, schedules, and API support
What you can scrape
Playlist meta (type: "playlist")
playlistId, playlistTitle, playlistUrl, playlistDescription, playlistThumbnail, playlistVideoCount, playlistVisibility, playlistChannelId, playlistChannelName, playlistChannelUrl
Playlist videos (type: "playlist_video")
videoId, title, author, channelId, views, likes, duration / length, position, thumbnail, url, isLive, deleted, plus playlist fields for denormalized joins
Use cases
- Course / curriculum export — Ordered lesson lists with positions
- Music / album catalogs — Tracklists with duration and channel metadata
- Editorial collections — Archive curated series for analysis
- Dataset building —
playlistId↔videoIdfact tables - Enrichment pipelines — Hand video IDs to Video or Subtitles scrapers
Example output
Playlist meta
{"type": "playlist","playlistId": "PLOzDu-MXXLljymo0oXEkTSLKf5TqxY-JN","playlistTitle": "Example course playlist","playlistUrl": "https://www.youtube.com/playlist?list=PLOzDu-MXXLljymo0oXEkTSLKf5TqxY-JN","playlistVideoCount": 42,"playlistChannelName": "Example Channel","playlistChannelId": "UCxxxxxxxxxxxxxxxxxxxxxx"}
Video row
{"type": "playlist_video","playlistId": "PLOzDu-MXXLljymo0oXEkTSLKf5TqxY-JN","playlistTitle": "Example course playlist","position": 1,"videoId": "abc123xyz01","title": "Lesson 1","author": "Example Channel","views": 120000,"duration": 612,"url": "https://www.youtube.com/watch?v=abc123xyz01"}
How to use
- Open YouTube Playlist Scraper
- Add
playlistsand setmaxResults - Run → filter by
type(playlistvsplaylist_video)
Input example
{"playlists": ["https://www.youtube.com/playlist?list=PLOzDu-MXXLljymo0oXEkTSLKf5TqxY-JN"],"maxResults": "50","lang": "en","country": "us"}
API (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('scrapemamba/youtube-playlist-scraper').call({playlists: ['PLOzDu-MXXLljymo0oXEkTSLKf5TqxY-JN'],maxResults: '100',});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Local run
cd youtube-playlist-scraper-jscp .env.example .envnpm installnode src/main.js
Input parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
playlists | Yes | — | Playlist URLs or IDs |
maxResults | No | "100" | Max videos per playlist. Free users capped at 200; paying users uncapped. |
lang | No | — | YouTube hl (e.g. en) |
country | No | — | YouTube gl (e.g. us) |
Output
Each successful playlist yields one type: "playlist" meta row and up to maxResults type: "playlist_video" rows. Failures are type: "error" without stopping sibling playlists.
Why choose this Actor
- Position preserved — Ordered catalogs for courses and albums
- Meta + videos together — One run covers playlist and entries
- Cap-friendly — Control cost before enriching every ID
- Public / unlisted ready — Works with public and unlisted playlists you can open without owner login (not private)
Pricing
$0.39 per 1,000 results on Apify (meta + video rows count). Free users: maxResults capped at 200 per playlist. See the Store page.
FAQ
Does it download playlist videos?
No. Metadata and links only.
Private playlists?
Not supported — owner login would be required. Public and unlisted playlists that open without login work.
Default maxResults?
"100". Free users capped at 200; paying users uncapped.
How do I enrich videos afterward?
Collect videoIds from playlist_video rows and run Video Scraper or Subtitles Scraper.
Related Actors
| Actor | Use it for |
|---|---|
| YouTube Video Scraper | Per-video details |
| YouTube Subtitles Scraper | Course transcripts |
| YouTube Search Scraper | Discover related keywords first |
Use only on public (or unlisted-accessible) playlist data per YouTube’s terms and applicable law.