YouTube Playlist Scraper — Videos, Views & Channel Playlists
Pricing
from $0.65 / 1,000 playlist video scrapeds
YouTube Playlist Scraper — Videos, Views & Channel Playlists
Scrape any public YouTube playlist, or every playlist of a channel: playlist title, owner, video count, views and last update, plus each video with its position, title, channel, views, date, duration and thumbnail. No API key, no login.
Pricing
from $0.65 / 1,000 playlist video scrapeds
Rating
0.0
(0)
Developer
Fabrikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
YouTube Playlist Scraper extracts every video of a public YouTube playlist from youtube.com — position in the list, title, channel, views, publish date, length and thumbnail — together with the playlist's own facts: title, owner, declared number of videos, total views and last update. Point it at a channel instead and it walks the channel's Playlists tab and scrapes each list it finds, or just inventories the playlists. Plain HTTP, no YouTube API key, no Google account, no browser; you pay per row saved.
This Actor is the playlist edition of our YouTube Videos Scraper, which covers search results, channel tabs and single videos with optional per-video details. Use this one when the playlist is the thing you care about: its order, its size, how it grows, and which channels fill it. The same family also has a YouTube Channel Scraper, a YouTube Search Scraper and a YouTube Shorts Scraper.
What you get
One flat row per playlist video. The playlist's metadata is repeated on every row, so a CSV export stands on its own.
| Field | Example | Notes |
|---|---|---|
type | video | playlist when playlistsOnly is on |
position | 1 | the video's number in the playlist, as YouTube counts it (kept across pages) |
playlistId, playlistUrl, playlistTitle | PL2aBZ…, https://www.youtube.com/playlist?list=PL2aBZ…, Artemis III | |
playlistDescription | null | e-mail addresses and phone numbers are hidden |
playlistChannelName, playlistChannelId, playlistChannelUrl | NASA, UCLA_DiR1FfKNvjuUpBHmylQ, https://www.youtube.com/@NASA | the playlist's owner |
playlistVideoCount, playlistViewCount | 9, 33385 | what the playlist page declares |
playlistLastUpdated | 2026-09-03 | from "Last updated on …" or "Updated 3 days ago" |
unavailableVideosHidden | false | true when YouTube hides private or deleted entries from the list |
videoId, url, title | yMoGiIeDH9s, https://www.youtube.com/watch?v=yMoGiIeDH9s, Andre Douglas Artemis III … | |
channelName, channelId, channelHandle, channelUrl | NASA Video, UC_aP7p…, @NASAgovVideo | the video's channel (often not the playlist owner) |
viewCount, viewCountText | 51000, 51K views | rounded exactly as YouTube shows it on the list |
publishedText, publishedAt | 4 months ago, 2026-06-22T00:00:00.000Z | the relative text and an approximate ISO date derived from it |
duration, durationSeconds | 5:33, 333 | null for live and upcoming streams |
isLive, isUpcoming, badges | false, false, [] | upcoming premieres carry ["Upcoming"] and a "Scheduled for …" text |
thumbnailUrl | https://i.ytimg.com/vi/yMoGiIeDH9s/hqdefault.jpg… | |
sourceInput, scrapedAt | the playlist or channel you entered, ISO time |
With playlistsOnly each row describes one playlist (title, url, channel*, viewCount and thumbnailUrl refer to the playlist) and the video fields stay null. A SUMMARY record in the key-value store lists, per playlist, the declared video count, videos listed, rows saved, pages read and any error, plus the channels read and the proxy used.
Use cases
- Course and curriculum exports — turn a tutorial series or lecture playlist into a spreadsheet with order, lengths and links.
- Catalogue and archive work — read a channel's uploads list (
UU+ channel id) or all of its playlists in one run, 100 videos per request. - Playlist monitoring — schedule a daily run and diff positions, additions, removals and
unavailableVideosHiddenfor curated or promotional lists. - Music and media research — chart lists, label playlists and album lists (
OLAK5uy_…) with per-track views and release age. - Datasets for analytics and AI — titles, channels, views and durations as JSON, CSV or Excel for dashboards, recommendation experiments or LLM pipelines.
How to use it
- Paste one or more playlist URLs or IDs (a
/playlist?list=…page, a video link carrying&list=…, or the bare id). - Optionally add channels (handle, URL or
UC…id) to scrape all of their public playlists, and pick the channel playlists order. - Set max rows, and if you like max videos per playlist and max playlists per channel.
- Run it and download the dataset as JSON, CSV, Excel or HTML, or read it through the API.
Input example: one playlist, every video
{"playlistUrls": ["https://www.youtube.com/playlist?list=PL2aBZuCeDwlRaF6AIey7ulmW1X0SHI1mQ"],"maxItems": 1000}
Input example: the newest 10 playlists of a channel, 50 videos each
{"channelUrls": ["@NASA"],"maxPlaylistsPerChannel": 10,"maxVideosPerPlaylist": 50,"channelPlaylistsSort": "newest","maxItems": 500}
Input example: inventory of a channel's playlists, no videos
{"channelUrls": ["https://www.youtube.com/@NASA/playlists"],"playlistsOnly": true,"channelPlaylistsSort": "lastVideoAdded","maxItems": 200}
Output example
A real row from a local test run on 20 October 2026:
{"type": "video","position": 1,"playlistId": "PL2aBZuCeDwlRaF6AIey7ulmW1X0SHI1mQ","playlistUrl": "https://www.youtube.com/playlist?list=PL2aBZuCeDwlRaF6AIey7ulmW1X0SHI1mQ","playlistTitle": "Artemis III","playlistDescription": null,"playlistChannelName": "NASA","playlistChannelId": "UCLA_DiR1FfKNvjuUpBHmylQ","playlistChannelUrl": "https://www.youtube.com/@NASA","playlistVideoCount": 9,"playlistViewCount": 33385,"playlistLastUpdated": "2026-09-03","unavailableVideosHidden": false,"videoId": "yMoGiIeDH9s","url": "https://www.youtube.com/watch?v=yMoGiIeDH9s","title": "Andre Douglas Artemis III Crew Announcement Resource Reel","channelName": "NASA Video","channelId": "UC_aP7p621ATY_yAa8jMqUVA","channelHandle": "@NASAgovVideo","channelUrl": "https://www.youtube.com/@NASAgovVideo","viewCount": 51000,"viewCountText": "51K views","publishedText": "4 months ago","publishedAt": "2026-06-22T00:00:00.000Z","duration": "5:33","durationSeconds": 333,"isLive": false,"isUpcoming": false,"badges": [],"thumbnailUrl": "https://i.ytimg.com/vi/yMoGiIeDH9s/hqdefault.jpg?sqp=…","sourceInput": "https://www.youtube.com/playlist?list=PL2aBZuCeDwlRaF6AIey7ulmW1X0SHI1mQ","scrapedAt": "2026-10-20T03:29:28.149Z"}
Pricing
Pay per event: one event per video saved, proxy and compute included. Playlist rows in playlistsOnly mode are charged per row as well. See the Pricing tab for current prices; paid Apify plans get lower rates.
Rows are charged only when saved. If you set a maximum cost per run, the Actor stops cleanly when it is reached.
How it compares
- YouTube Data API v3 — official and free up to a quota, but it needs a Google Cloud project and key,
playlistItems.listreturns 50 items per call without view counts or durations (those need a secondvideos.listcall per 50 ids), and private or deleted entries come back as blanks you have to filter. This Actor returns the public playlist page as a visitor sees it, 100 videos per request, with views and lengths already on each row. - Other playlist scrapers in the Store — this one adds the playlist's own metadata to every row, reads whole channels and keeps YouTube's position numbers.
- Limits —
publishedAtis derived from the relative text YouTube shows ("4 months ago"), so it is approximate; view counts are rounded the way the list shows them (51K). Logged-out YouTube hides private and deleted videos, so a 192-video list may yield fewer rows (theunavailableVideosHiddenflag tells you). Mixes (RD…) and personal lists (WL,LL) cannot be read. For exact dates, likes, tags and descriptions per video, feed the ids to our YouTube Videos Scraper.
Integrations
Run it from the Apify API or the JavaScript and Python clients, schedule it in Apify Console, and send rows to Google Sheets, Airtable, n8n, Make, Zapier or a webhook. AI agents (Claude, ChatGPT, Cursor and other MCP clients) can call it through the Apify MCP server, e.g. "list the videos of this YouTube playlist with their lengths".
FAQ
Is it legal to scrape YouTube playlists? The Actor reads only public playlist pages exactly as a logged-out visitor sees them. Playlist titles, owner names and handles can be personal data when a list belongs to a private person, so laws such as GDPR, CCPA or Chile's Ley 21.719 may apply to how you store and use them; contact details are hidden in descriptions. This is not legal advice.
Do I need a proxy? No setup needed. The Apify datacenter proxy is used by default; if YouTube blocks it twice in a row, the run switches to Apify residential proxy (country = region) for the rest of the run.
Why are there fewer rows than playlistVideoCount? YouTube hides private and deleted videos from visitors; the header still counts them. The flag unavailableVideosHidden is true in that case.
Can I scrape a channel's uploads? Yes: use the uploads list id, which is the channel id with UC replaced by UU (for example UULA_DiR1FfKNvjuUpBHmylQ for @NASA), and cap it with maxVideosPerPlaylist.
Does it return likes, comments or full descriptions of the videos? No. Playlist pages carry title, channel, rounded views, relative date and length only; use the YouTube Videos Scraper with details for the rest.
Is the order the same as on youtube.com? Yes, position follows the playlist's own order (the one the owner set, or newest first for uploads lists).
Changelog
- 2026-10-20 — First version: playlist URLs or ids, channel Playlists tab (two sort orders), playlists-only inventory, per-playlist and per-channel caps, YouTube position numbering across continuation pages, hidden-videos flag, pay per row.
En español
YouTube Playlist Scraper extrae todos los videos de una lista de reproducción pública de YouTube, sin API key ni login: posición en la lista, título, canal, vistas, fecha aproximada, duración y miniatura, más los datos de la propia lista (título, dueño, número de videos declarado, vistas totales y última actualización) repetidos en cada fila. Acepta URLs o IDs de listas y también canales (lee su pestaña "Listas de reproducción" con los dos órdenes que ofrece YouTube) y puede entregar solo el inventario de listas con playlistsOnly. Cobra por cada fila guardada, con proxy incluido. Consulta la pestaña Pricing para ver los precios vigentes; los planes de pago de Apify tienen tarifas más bajas. Para detalles por video (likes, fecha exacta, etiquetas, descripción) usa nuestro YouTube Videos Scraper.