YouTube Playlist Scraper API
Our YouTube playlist scraper turns any playlist ID or URL into structured JSON: the playlist title, owner channel, total video count, and the ordered list of videos with positions, IDs, titles, views, and thumbnails, from a single REST call.
Why YouTube Playlist data is hard to get
A YouTube playlist page does not hand you a clean video list: it loads the first batch in the HTML, the rest through JavaScript, and serves a consent wall to datacenter IPs first. The official playlistItems.list method works but needs a Google Cloud project, an authorized request, and 50-item pageToken paging before you see a single title.
The YouTube Playlist Scraper API in one request
curl "https://api.youtubescraperapi.com/api/v1/youtube/playlist?playlist_id=PLjVLYmrlmjGfSYkgH-_jgC8KMxyRzq7US&api_key=$API_KEY" import requests
resp = requests.get(
"https://api.youtubescraperapi.com/api/v1/youtube/playlist",
params={
"playlist_id": "PLjVLYmrlmjGfSYkgH-_jgC8KMxyRzq7US",
"api_key": "YOUR_API_KEY",
},
timeout=60,
)
playlist = resp.json()
print(playlist["title"], "-", playlist["video_count"], "videos")
print("Channel:", playlist["channel"])
for video in playlist["videos"]:
print(video["position"], video["id"], video["title"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
playlist_id | required | - | The YouTube playlist ID, the string after list= in a playlist URL (for example PLjVLYmrlmjGfSYkgH-_jgC8KMxyRzq7US). |
url | optional | - | A full playlist URL instead of a bare ID. The ID is parsed out of it, so pass either playlist_id or url. |
api_key | required | - | Your API key. Free tier includes 1,000 requests per month. |
What the YouTube Playlist Scraper API returns
{
"playlist_id": "PLjVLYmrlmjGfSYkgH-_jgC8KMxyRzq7US",
"title": "Web Scraping Full Free Course by WsCube Tech",
"channel": "WsCube Tech",
"video_count": 7,
"views": 196099,
"videos": [
{
"position": 1,
"id": "FagmjKdOIDs",
"title": "Web Scraping Course For Beginners 2024",
"url": "https://www.youtube.com/watch?v=FagmjKdOIDs",
"thumbnail": "https://i.ytimg.com/vi/FagmjKdOIDs/hq720.jpg",
"channel": "WsCube Tech",
"views": "203K views",
"published": "2 years ago"
}
],
"videos_returned": 7
} | Field | Type | Description |
|---|---|---|
playlist_id | string | The playlist ID that was scraped. |
title | string | The playlist title as shown on the playlist page. |
channel | string | The name of the channel that owns the playlist. |
video_count | integer | The total number of videos the playlist reports. |
views | integer | The total view count for the playlist. |
videos | array | The ordered video list. Each entry is { position, id, title, url, thumbnail, channel, views, published }. |
videos_returned | integer | How many video entries came back in the videos array. |
What you can build using the API
Export a playlist to CSV
Audit and back up your own playlists
Build a video dataset
Track playlist changes over time
Seed competitor and topic research
Power a no-key playlist tool
Why teams choose our YouTube Playlist Scraper API
Our YouTube playlist scraper runs the fetch-render-parse loop on our infrastructure: rotating proxies, anti-bot handling, JS rendering, and retries behind one youtube/playlist call that returns the ordered video list as parsed JSON. A playlist ID goes in and the title, channel, video count, and every video row come out, with no Google Cloud setup, no OAuth, and no page-token loop to write. For structured per-video JSON, point your pipeline at our YouTube video scraper, or pull a creator's full uploads with the YouTube channel scraper.
Parsed video list, no HTML
Proxy rotation built in
Consent and JS handled
Pay for success
Stable JSON schema
YouTube Playlist Scraper API vs the official YouTube API
| Factor | Our YouTube playlist API | DIY headless browser | YouTube Data API (playlistItems.list) |
|---|---|---|---|
| Setup | One api_key | Install and host Playwright or Puppeteer, manage browsers | Google Cloud project plus an authorized request |
| Returns the video list parsed | Yes, ordered JSON array | No, you parse the rendered DOM | Yes, structured items, 50 per page |
| Consent screen and JS | Handled for you | You script the consent click and scrolling | Not applicable, it is an API |
| Proxies and blocks | Rotating proxies and retries included | You source proxies and handle bans | No blocks, but quota and auth apply |
| Paging a long playlist | Returned in the video list for you | Scroll and wait in the browser yourself | Chain pageToken, 50 items per call |
| Quota or key from YouTube | None, no YouTube key needed | None, but you absorb the block risk | Daily quota (default 10,000 units), 1 unit per call |
Start free, scale when ready
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
It is a single REST endpoint that takes a YouTube playlist ID or URL and returns the playlist title, owner channel, total video count, views, and the ordered list of videos (each with its position, id, title, url, thumbnail, channel, views, and published label) as structured JSON. Our API fetches and parses the playlist for you, so you do not run a Google Cloud project or maintain scraping infrastructure. For structured per-video JSON, use our YouTube video scraper, and for a creator's full upload list use the YouTube channel scraper.
Each response returns playlist_id, title, channel, video_count, views, a videos array, and videos_returned. Every entry in the videos array carries its position, id, title, url, thumbnail, channel, views, and published label. Every field uses the same name and type on each call.
Yes. Pass the full playlist URL in the url parameter and we parse the playlist ID out of it. You can send either playlist_id or url, so a link copied straight from the browser works.
No. This endpoint fetches the public playlist for you, so you do not need a Google Cloud project, an API key from YouTube, or OAuth credentials. You only need your API key. The official YouTube Data API path does require a properly authorized request and counts every call against a daily quota.
The free tier includes 1,000 requests per month. Paid plans run to about $0.60 per 1,000 requests on Pro, with pay-as-you-go top-ups around $0.90 per 1,000. You are billed only for requests that succeed, with a median response around 2.6 seconds.