YouTube Playlist Scraper
Pricing
from $2.49 / 1,000 results
YouTube Playlist Scraper
YouTube Playlist Scraper SD - YouTube Playlist Scraper is a powerful tool that extracts every video of a playlist with title, channel, views, duration and position, plus playlist title, owner and video count from YouTube playlist URLs - YouTube playlist extractor.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Neuro Scraper
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Playlist Scraper - every video of a YouTube playlist, with playlist details
The YouTube Playlist Scraper exports the complete video list of any public YouTube playlist. Paste playlist links and get one row per video with its position, title, channel, views, duration and upload time.
Every row also carries the playlist's own details: title, description, owner, number of videos, total views and when it was last updated.
No login, no Google account and no YouTube Data API key or quota. The YouTube Playlist Scraper reads what any logged-out visitor sees on the playlist page.
What the YouTube Playlist Scraper does
The YouTube Playlist Scraper opens the playlist page, reads the playlist header and the first 100 videos, then loads the next 100 and the next, until it reaches your limit or the end of the playlist.
It was tested with normal playlists (PL...), a channel's uploads list (UU...) and watch links that contain a &list= parameter.
Positions follow the playlist order, so position: 1 is the first video of the playlist, exactly as YouTube shows it.
Who uses the YouTube Playlist Scraper
Course creators and educators who catalogue lecture series and track which lessons get watched.
Music curators and labels who monitor chart playlists and the views of every track in them.
Marketers who analyse a competitor's or a partner's curated playlists.
Researchers who need a fixed list of videos, in order, as the input for transcript, comment or detail scraping.
Input fields for the YouTube Playlist Scraper
Only startUrls is required. The default collects up to 100 videos per playlist, which is one page.
| Field | Type | Default | Meaning |
|---|---|---|---|
startUrls | array | a 10-video playlist | Playlist URLs, watch URLs with &list=, or playlist ids (PL..., UU...) |
maxVideos | integer | 100 | Videos per playlist; the run pages through 100 at a time |
maxItems | integer | empty | Optional cap on all rows of the run |
proxyConfiguration | object | Apify RESIDENTIAL, US | Proxy used for every request |
Output of the YouTube Playlist Scraper
Each row of the YouTube Playlist Scraper combines the playlist fields with one video.
| Field | Meaning |
|---|---|
playlistId, playlistUrl, playlistTitle | The playlist |
playlistDescription | Playlist description (empty when the owner wrote none) |
playlistOwner, playlistOwnerChannelId, playlistOwnerUrl | Who made the playlist |
playlistVideoCount | Number of videos YouTube states for the playlist |
playlistViewCount | Total views of the playlist |
playlistLastUpdated | As shown, e.g. "Updated today" or "Last updated on Jul 21, 2026" |
playlistThumbnailUrl | Playlist cover image |
position | Position of the video in the playlist |
videoId, url, title | The video |
channelName, channelId, channelUrl | Channel that uploaded the video |
viewCount, viewCountText | Views as a number and as shown ("2.6B") |
duration, durationSeconds | Length |
publishedTimeText | Relative upload time ("1y ago") |
thumbnailUrl | Video thumbnail |
inputUrl, scrapedAt | Run context and ISO timestamp |
Export the YouTube Playlist Scraper dataset as CSV, JSON, Excel, XML or HTML, or read it through the Apify API.
Example row (shortened)
{"playlistTitle": "Pop Music Playlist - Timeless Pop Songs (Updated Weekly 2026)", "playlistVideoCount": 200, "playlistViewCount": 1044765435, "playlistLastUpdated": "Updated today", "position": 151, "videoId": "papuvlVeZg8", "title": "Clean Bandit - Rockabye (feat. Sean Paul & Anne-Marie) [Official Video]", "channelName": "Clean Bandit", "viewCount": 3200000000, "duration": "4:14", "publishedTimeText": "9y ago"}
How to run the YouTube Playlist Scraper
Open the YouTube Playlist Scraper, paste one or more playlist URLs, set maxVideos and press Start. For a whole playlist, set maxVideos higher than the playlist's video count.
To list every upload of a channel in upload order, use the channel's uploads playlist: the channel id with UC replaced by UU, for example UUX6OQ3DkcsbYNE6H8uQQuVA.
The same video in two different input playlists gives two rows, one per playlist, because the position and playlist context differ. Inside one playlist each video appears once.
Measured speed of the YouTube Playlist Scraper
All numbers come from local test runs of the YouTube Playlist Scraper on a home connection:
- A 10-video playlist: 10 rows in 2 seconds, one page.
- A 200-video playlist: all 200 rows in 2 to 4 seconds, two pages of 100.
- An uploads playlist with 1,004 videos and a 246-video course: 150 rows each, 300 rows in 4 seconds.
How the YouTube Playlist Scraper works
The YouTube Playlist Scraper loads the playlist page as a logged-out browser does and reads the page configuration: client version, visitor data, language and region.
Further pages come from YouTube's internal browse endpoint, called with that page's own context and the continuation token at the end of the video list.
We measured that the page also ends with a second token that loads an unrelated section; the YouTube Playlist Scraper never follows it, so no foreign videos get mixed in. Nothing is hardcoded.
YouTube Playlist Scraper limits, stated plainly
The YouTube Playlist Scraper reads public and unlisted playlists that open without a login. Private playlists, Watch Later and Liked videos of an account are out of reach.
Videos that are private or deleted are hidden from logged-out visitors, so a playlist can return fewer rows than playlistVideoCount says.
View counts in the list are YouTube's short labels ("2.6B") converted to numbers, and upload times are relative. For exact views and dates, send the video URLs to the YouTube Video Details Scraper.
Auto-generated Mix lists (ids starting with RD) and YouTube Music album lists (OLAK5uy_...) were not part of our tests, so they are not promised here.
YouTube Playlist Scraper pricing
The YouTube Playlist Scraper uses pay-per-event pricing: you pay per dataset row (event "result"), plus the Apify platform usage of your run. The run stops at your maxItems or at the charge limit you set.
Free-plan users get up to 30 rows per run, which is enough to test the YouTube Playlist Scraper on real data. The current price per 1,000 results is on the Pricing tab.
Using the YouTube Playlist Scraper in a workflow
Schedule the YouTube Playlist Scraper on a chart playlist and you have a daily record of which tracks entered, which left, and how their views grew.
Send each run to Google Sheets, Airtable or a database through the Apify integrations, or with Make, Zapier and n8n. A webhook can trigger your own automation as soon as a run finishes.
Developers call the YouTube Playlist Scraper from Python with the Apify API client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("neuro-scraper/my-actor-10").call(run_input={"startUrls": [{"url": "https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi"}], "maxVideos": 500})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["position"], item["title"], item["viewCount"])
Tracking playlist changes
Compare two runs of the YouTube Playlist Scraper by videoId. New ids are additions, missing ids are removals, and a changed position shows reordering.
playlistLastUpdated tells you whether the owner touched the playlist since your last run, before you even compare rows.
Building a video corpus from playlists
Playlists are ready-made, curated lists. Export a YouTube Playlist Scraper dataset and pass the url column to the transcript scraper to get the text of a whole course or series in one go.
The position field keeps the original order, so lessons stay in sequence when you stitch the transcripts together.
Playlist types the YouTube Playlist Scraper was tested on
Creator playlists with a PL... id, from a 10-video lecture series to a 200-video music chart, came back complete with every header field filled.
A channel's uploads list (UU...) was read in upload order, newest first, 100 videos per page; the run stopped exactly at the maxVideos limit of 150.
A watch link with &list= was read as the playlist it points to, not as a single video. A plain watch link without a list is rejected at the start with a clear message.
Data quality notes
playlistVideoCount and playlistViewCount are the numbers YouTube prints on the playlist header. Video rows carry the per-video short labels, so summing them gives an estimate, not an exact total.
playlistDescription is empty when the owner wrote none, which is normal for uploads lists. Every other playlist field was filled in all our test runs of the YouTube Playlist Scraper.
channelName is the uploader of each video, which can differ from playlistOwner on curated playlists such as music charts.
Collaboration videos list every artist YouTube shows, for example "ROSÉ and Bruno Mars", while channelId and channelUrl point to the channel linked on the video's avatar. That keeps one stable id per row even when a video has several artists.
Related scrapers
The YouTube Playlist Scraper is part of a family of YouTube and social media scrapers by the same developer.
| Actor | What it extracts |
|---|---|
| YouTube Scraper | Search results and video data by keyword |
| YouTube Channel Scraper | Channel profile, about data and videos |
| YouTube Shorts Scraper | Shorts of a channel or a search |
| YouTube Video Details Scraper | Exact views, likes, dates and tags |
| YouTube Transcript Scraper | Full transcripts with timestamps |
| YouTube Comments Scraper | Comments and replies of any video |
| YouTube Video Downloader | Video or audio files |
| TikTok Video Details Scraper | Stats of TikTok videos |
| Facebook Video Details Scraper | Details of public Facebook videos |
| Instagram Reels Scraper | Reels of public Instagram profiles |
| Facebook Reels Scraper | Reels of public Facebook pages |
Leave a review
If the YouTube Playlist Scraper saved you time, please leave a star rating and a short review on the Actor page. Reviews help other users choose and tell me what to improve.
If a playlist did not work, open an issue with the run link.
Frequently asked questions
Does the YouTube Playlist Scraper need a YouTube API key?
No. The YouTube Playlist Scraper does not use the YouTube Data API and has no quota. It reads the public playlist page like a logged-out visitor.
Can the YouTube Playlist Scraper get playlists with more than 100 videos?
Yes. YouTube shows 100 videos per page and the YouTube Playlist Scraper loads page after page. In tests a 200-video playlist came back complete in two pages.
Can I scrape all uploads of a channel with the YouTube Playlist Scraper?
Yes. Use the channel's uploads playlist id (the channel id with UC replaced by UU). In tests the uploads list of a 1,004-video channel paged without problems.
Why does my playlist return fewer videos than its count?
Private and deleted videos still count on the playlist header but are hidden from logged-out visitors, so the YouTube Playlist Scraper cannot list them.
Does the YouTube Playlist Scraper work with a watch link that has &list= in it?
Yes. The YouTube Playlist Scraper reads the list parameter and scrapes that playlist.
Are the view counts exact?
They are YouTube's short labels from the playlist page, such as "2.6B", converted to numbers. Use the YouTube Video Details Scraper when you need exact counts.
What happens with a playlist that does not exist?
YouTube says "The playlist does not exist." and the YouTube Playlist Scraper logs that message for the URL and moves on.
Which formats can I export to?
CSV, JSON, Excel, XML and HTML from the console, and the same data through the Apify API and integrations.
Does the YouTube Playlist Scraper keep the playlist order?
Yes. position numbers the videos exactly in the order the playlist shows them, starting at 1. For an uploads list that order is newest upload first, which our test confirmed.
Can I get only the playlist details, without the full video list?
Set maxVideos to 1. The YouTube Playlist Scraper then returns one row per playlist, and that row carries every playlist field: title, owner, description, video count, total views and last update.
How fast is the YouTube Playlist Scraper?
In local tests a 200-video playlist took 2 to 4 seconds and 300 rows from two playlists took 4 seconds. Runs on the Apify platform go through a residential proxy, so times there can differ.
Do I need my own proxy for the YouTube Playlist Scraper?
No. The YouTube Playlist Scraper uses Apify's residential proxy by default.