YouTube Playlist Scraper — Videos, Views & Channel Playlists avatar

YouTube Playlist Scraper — Videos, Views & Channel Playlists

Pricing

from $0.65 / 1,000 playlist video scrapeds

Go to Apify Store
YouTube Playlist Scraper — Videos, Views & Channel Playlists

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

Fabrikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

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.

FieldExampleNotes
typevideoplaylist when playlistsOnly is on
position1the video's number in the playlist, as YouTube counts it (kept across pages)
playlistId, playlistUrl, playlistTitlePL2aBZ…, https://www.youtube.com/playlist?list=PL2aBZ…, Artemis III
playlistDescriptionnulle-mail addresses and phone numbers are hidden
playlistChannelName, playlistChannelId, playlistChannelUrlNASA, UCLA_DiR1FfKNvjuUpBHmylQ, https://www.youtube.com/@NASAthe playlist's owner
playlistVideoCount, playlistViewCount9, 33385what the playlist page declares
playlistLastUpdated2026-09-03from "Last updated on …" or "Updated 3 days ago"
unavailableVideosHiddenfalsetrue when YouTube hides private or deleted entries from the list
videoId, url, titleyMoGiIeDH9s, https://www.youtube.com/watch?v=yMoGiIeDH9s, Andre Douglas Artemis III …
channelName, channelId, channelHandle, channelUrlNASA Video, UC_aP7p…, @NASAgovVideothe video's channel (often not the playlist owner)
viewCount, viewCountText51000, 51K viewsrounded exactly as YouTube shows it on the list
publishedText, publishedAt4 months ago, 2026-06-22T00:00:00.000Zthe relative text and an approximate ISO date derived from it
duration, durationSeconds5:33, 333null for live and upcoming streams
isLive, isUpcoming, badgesfalse, false, []upcoming premieres carry ["Upcoming"] and a "Scheduled for …" text
thumbnailUrlhttps://i.ytimg.com/vi/yMoGiIeDH9s/hqdefault.jpg…
sourceInput, scrapedAtthe 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 unavailableVideosHidden for 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

  1. Paste one or more playlist URLs or IDs (a /playlist?list=… page, a video link carrying &list=…, or the bare id).
  2. Optionally add channels (handle, URL or UC… id) to scrape all of their public playlists, and pick the channel playlists order.
  3. Set max rows, and if you like max videos per playlist and max playlists per channel.
  4. 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.list returns 50 items per call without view counts or durations (those need a second videos.list call 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 — publishedAt is 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 (the unavailableVideosHidden flag 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.