YouTube Playlist Scraper (All Videos, Views, Duration)
Pricing
from $0.70 / 1,000 video scrapeds
YouTube Playlist Scraper (All Videos, Views, Duration)
Paste YouTube playlist URLs or IDs and get every video in order: title, URL, channel, views, publish date, duration and thumbnail, plus the playlist's title, owner, video count and total views. No API key, no quota. Export to Excel, CSV or JSON.
Pricing
from $0.70 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
YouTube Playlist Scraper takes playlist URLs or IDs and returns every video in the playlist, in order: title, URL, channel, views, publish date, duration and thumbnail, plus the playlist's title, owner, video count and total views. Use it to export a YouTube playlist to Excel, CSV or JSON, or to get all video links from a playlist, with no YouTube API key and no quota.
What does YouTube Playlist Scraper do?
You paste one or more playlists. For each playlist, the robot opens the public playlist page, reads the playlist details, then walks through the video list page by page (YouTube serves about 100 videos per page) until it reaches your limit or the end of the playlist. Each video becomes one row, and every row also carries the playlist's own details so you can mix many playlists in one table.
It accepts:
- Playlist URLs:
https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH - Watch URLs that contain a playlist:
https://www.youtube.com/watch?v=17WoOqgXsRM&list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH - Bare playlist IDs that start with
PL,UU,OL,FL,LL,ULorPU, for examplePLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH,UUBJycsmduvYEL83R_U4JriQ(a channel's uploads) orOLAK5uy_…
Any other ID form also works if you paste it as a URL containing list=.
What comes out: for each video, its position, ID, title, URL, channel name, channel ID and channel URL, the view count (as a number and as YouTube's text), the publish date as YouTube shows it, the duration (as mm:ss and in seconds) and a thumbnail URL. For the playlist: ID, title, URL, owner, number of videos, total views and description.
No login, no cookies and no YouTube Data API key are needed.
What data can you extract?
Each video in a playlist is one item with these fields:
| Field | What it means | Example |
|---|---|---|
playlistId | ID of the playlist | PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH |
playlistTitle | Title of the playlist | Coding Challenges |
playlistUrl | Link to the playlist | https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH |
playlistOwner | Channel that owns the playlist | The Coding Train |
playlistVideoCount | Number of videos YouTube shows for the playlist | 246 |
playlistViews | Total views YouTube shows for the playlist | 2718722 |
playlistDescription | Description of the playlist | Is it the gravy train or a train wreck?… |
position | Order of the video in the results for this playlist (1, 2, 3…) | 1 |
videoId | 11-character video ID | 17WoOqgXsRM |
title | Video title | Coding Challenge 1: Starfield Simulation |
url | Link to the video | https://www.youtube.com/watch?v=17WoOqgXsRM |
channelName | Channel that published the video | The Coding Train |
channelId | Channel ID of the video's channel | UCvjgXvBlbQiydffZU7m1_aw |
channelUrl | Link to the video's channel | https://www.youtube.com/@TheCodingTrain |
views | View count as a number (rounded the way YouTube shows it) | 1300000 |
viewsText | View count as YouTube shows it | 1.3M views |
published | Publish date as YouTube shows it (relative, in English) | 10 years ago |
duration | Video length as shown on the thumbnail | 13:54 |
durationSeconds | Video length in seconds | 834 |
thumbnail | Thumbnail image URL | https://i.ytimg.com/vi/17WoOqgXsRM/hqdefault.jpg |
scrapedAt | When the row was collected (ISO 8601, UTC) | 2026-10-09T20:23:22.559Z |
input | Only on error items: the line from your input | PLxxxxxxxx |
error | Only on error items: what went wrong | Playlist not found or private |
The default table view shows playlistTitle, position, title, channelName, views, published, duration and url. Every field is in the full JSON, CSV and Excel exports.
How to use YouTube Playlist Scraper
- Open the robot in Apify Console and go to the Input tab.
- In Playlists, paste one playlist URL or ID per line.
- Set Max videos per playlist (default 100, up to 5,000).
- Leave Proxy on the default Apify Proxy.
- Click Start. Rows appear in the Output tab while the robot works.
- Click Export to download the results as JSON, CSV, Excel, HTML or XML, or read them through the API.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
playlists | array of strings (required) | ["https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH"] | Playlist URLs, watch URLs with &list=, or playlist IDs. |
maxVideosPerPlaylist | integer, 1 to 5,000 | 100 | Stop after this many videos for each playlist. |
proxy | object | { "useApifyProxy": true } | Apify Proxy settings. |
Example input:
{"playlists": ["https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH","UUBJycsmduvYEL83R_U4JriQ"],"maxVideosPerPlaylist": 500,"proxy": { "useApifyProxy": true }}
Output example
One real item from a recent run on The Coding Train's "Coding Challenges" playlist:
{"playlistId": "PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH","playlistTitle": "Coding Challenges","playlistUrl": "https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH","playlistOwner": "The Coding Train","playlistVideoCount": 246,"playlistViews": 2718722,"playlistDescription": "Is it the gravy train or a train wreck? Watch me take on some viewer submitted coding projects!","position": 1,"videoId": "17WoOqgXsRM","title": "Coding Challenge 1: Starfield Simulation","url": "https://www.youtube.com/watch?v=17WoOqgXsRM","channelName": "The Coding Train","channelId": "UCvjgXvBlbQiydffZU7m1_aw","channelUrl": "https://www.youtube.com/@TheCodingTrain","views": 1300000,"viewsText": "1.3M views","published": "10 years ago","duration": "13:54","durationSeconds": 834,"thumbnail": "https://i.ytimg.com/vi/17WoOqgXsRM/hqdefault.jpg","scrapedAt": "2026-10-09T20:23:22.559Z"}
If a playlist is private or does not exist, you get one error item instead:
{"input": "https://www.youtube.com/playlist?list=PLxxxxxxxxxxxxxxxx","playlistId": "PLxxxxxxxxxxxxxxxx","error": "Playlist not found or private"}
How much does it cost?
The robot uses pay per event pricing. You pay only for the videos returned, and Apify platform usage is already included in the price.
| Event | Price (Free plan) |
|---|---|
| Video scraped | $0.001 per video, which is $1.00 per 1,000 videos |
Paid Apify plans get a discount:
| Plan | Price per 1,000 videos |
|---|---|
| Free | $1.00 |
| Bronze (-10%) | $0.90 |
| Silver (-20%) | $0.80 |
| Gold and higher (-30%) | $0.70 |
Worked examples on the Free plan:
- The full "Coding Challenges" playlist with 246 videos: $0.246.
- 20 playlists × 100 videos = 2,000 videos: $2.00 ($1.40 on Gold).
- One very large playlist at the 5,000-video limit: $5.00 ($4.50 on Bronze, $4.00 on Silver, $3.50 on Gold).
What is NOT charged:
- Error items: lines that are not a playlist URL or ID, playlists that are private or not found, and playlists where no videos were found.
- A video that shows up twice in the same playlist is returned only once.
Use cases
- Export a course or tutorial playlist to a spreadsheet with titles, links and durations, and add up the total watch time from
durationSeconds. - Compare episodes of a series: see which videos in a playlist get the most views.
- Feed other tools: collect every video URL of a playlist and pass the list to a transcript or comments scraper.
- List a channel's uploads: use the
UU…uploads playlist to get a channel's videos in order. - Monitor competitors' playlists on a schedule and spot new videos as they are added.
- Archive music playlists with titles, channels and lengths.
- Audit your own playlists: find low-view videos or very long or very short entries.
Tips and limits
- Up to 5,000 videos per playlist. That is the maximum of
maxVideosPerPlaylist. The robot also stops at the end of the playlist. - Channel uploads trick. A channel's uploads playlist ID is its channel ID with
UCreplaced byUU. For example, channelUCBJycsmduvYEL83R_U4JriQhas the uploads playlistUUBJycsmduvYEL83R_U4JriQ. - Some playlist details can be empty. For channel uploads (
UU…) playlists, YouTube does not show an owner, video count, total views or description in the same place, soplaylistOwner,playlistVideoCount,playlistViewsandplaylistDescriptioncan benull. The video rows are complete. - Views are rounded the way YouTube shows them in lists:
1.3M viewsbecomes1300000. KeepviewsTextif you need the original text. For exact view counts per video, use the YouTube Video Details Scraper on the URLs. - Dates are relative.
publishedis the text YouTube shows (10 years ago, or a "Streamed" / "Premiered" label). It is not an exact date. durationcan be empty when YouTube shows no time badge on the thumbnail, for example on a live stream.durationSecondsis thennulltoo.positioncounts the rows returned for that playlist, starting at 1, in the order YouTube lists the videos.- Private playlists can't be read. Only playlists that open without logging in work. Watch Later and Liked videos of your own account are private.
- Error items are pushed for
Not a playlist URL or ID,Playlist not found or privateandNo videos found. They are free. - Playlists are processed one after another, and each page of videos is saved as soon as it is read.
- Proxy. Requests go through Apify Proxy, with retries on new IPs and a last try on the Residential proxy group when your account has access to it.
Use it from the API, Python or JavaScript
JavaScript (Node.js):
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = {playlists: ['https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH'],maxVideosPerPlaylist: 1000,};const run = await client.actor('juliob.rangel/youtube-playlist-scraper-fast').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((v) => !v.error).map((v) => v.url));
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run_input = {'playlists': ['https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH'],'maxVideosPerPlaylist': 1000,}run = client.actor('juliob.rangel/youtube-playlist-scraper-fast').call(run_input=run_input)items = client.dataset(run['defaultDatasetId']).list_items().itemsprint([v['url'] for v in items if 'url' in v])
You can also call it over plain HTTP with the Apify API (for example the run-sync-get-dataset-items endpoint of juliob.rangel~youtube-playlist-scraper-fast).
It works with Make, Zapier, n8n, Google Sheets export, webhooks and AI agents through the Apify MCP server.
FAQ
Do I need a login, cookies or a YouTube API key? No. The robot reads public playlists the way a logged-out visitor sees them.
Can I export a YouTube playlist to Excel or CSV? Yes. Click Export in the Output tab after the run and choose Excel, CSV, JSON, HTML or XML.
How many videos can I get from one playlist?
Up to 5,000 per playlist per run, set with maxVideosPerPlaylist. You can add as many playlists as you want to one run.
Can I scrape a private playlist or my Watch Later list? No. Those need a login, and the robot does not log in, so you get an error item instead of videos.
Why are some playlist fields null?
YouTube does not show every playlist detail on every kind of playlist. Channel uploads (UU…) playlists often have no owner, video count or view total in the header.
Why did I get an error item? The line was not a playlist URL or ID, the playlist is private or deleted, or YouTube returned no videos for it. Error items are not charged.
Is scraping YouTube playlists legal? The robot only collects publicly available data. You are responsible for complying with YouTube's terms and with privacy laws such as GDPR and LGPD. If you store personal data, you need a legitimate reason.
Related scrapers
- YouTube Channel Videos Scraper (Fast & Cheap)
- YouTube Video Details Scraper (Views, Likes, Comments)
- YouTube Transcript Scraper (Fast & Cheap)
- YouTube Comments Scraper (Fast & Cheap)
- YouTube Search Scraper (Fast & Cheap)
Extrator de Playlists do YouTube (PT-BR)
Cole links ou IDs de playlists do YouTube e receba todos os vídeos em ordem: título, link, canal, visualizações, data, duração e miniatura, além do título, dono, número de vídeos e visualizações da playlist. Sem chave de API. Você paga só por vídeo retornado.