# YouTube Playlist Scraper — All Videos, Views & Durations (`intelscrape/youtube-playlist-scraper`) Actor

YouTube Playlist Scraper: export every video in any public YouTube playlist with position, title, channel, views, duration and URL, plus a playlist summary (total runtime, total and average views, most-viewed videos). Bulk playlists, no API key, no quota. Pay per video.

- **URL**: https://apify.com/intelscrape/youtube-playlist-scraper.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Playlist Scraper — All Videos, Views & Durations

![YouTube Playlist Scraper — All Videos, Views & Durations](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/youtube-playlist-scraper-banner.png)

🇨🇳 **YouTube 播放列表采集器**：导出任意公开 YouTube 播放列表中的全部视频，包括序号、标题、频道、播放量、时长和链接，并生成播放列表汇总（总时长、总播放和平均播放、最受欢迎视频）。支持批量，无需 API 密钥，无配额，按视频付费。

🇸🇬 **Pengikis Senarai Main YouTube**: eksport setiap video dalam mana-mana senarai main awam dengan kedudukan, tajuk, saluran, tontonan dan tempoh, serta ringkasan senarai main. Tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%240.50%20per%201K%20videos-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20video-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![quota](https://img.shields.io/badge/quota-none-orange)

**Full, ordered export of any public YouTube playlist with views and durations, plus total runtime and top videos.**

> **Honest coverage & billing:** View counts are rounded as YouTube shows them in lists. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is YouTube Playlist Scraper?

Playlists are how YouTube organises courses, series, podcasts, music charts and brand campaigns. Exporting one by hand is tedious, and the YouTube Data API needs a key, a quota and many paginated calls. **YouTube Playlist Scraper** exports every video of any public playlist, in order, with views, durations and channels, and adds a summary with total runtime and the most-watched videos, so you can audit a course, plan a binge, build a dataset or feed transcripts to AI in one step.

### What does it do?

- **Any public playlist**: playlist URLs, watch URLs with \&list=, or IDs (PL…, UU… uploads, OL… albums)
- **Ordered videos** with position, video ID, title, channel, view count, duration (text and seconds), live flag, URL and thumbnail
- **Automatic pagination** for long playlists (up to 20,000 videos)
- **Playlist metadata**: title, owner, video count and total views as shown by YouTube
- **Summary row (on by default)**: total runtime, sum and average of views, top 5 videos and the channels featured
- **Bulk**: many playlists in one run

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **Educators & learners**: audit course playlists and total watch time
- **Podcasters & media**: export episode lists with performance
- **Music & charts**: track chart playlists and positions
- **Marketing teams**: report on campaign playlists
- **AI pipelines**: get every video ID to fetch transcripts in bulk
- **Researchers**: build video datasets from curated playlists

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~youtube-playlist-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"playlists": ["https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"], "maxVideosPerPlaylist": 500, "playlistSummary": true}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/youtube-playlist-scraper").call(run_input={"playlists": ["https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"], "maxVideosPerPlaylist": 500, "playlistSummary": true})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/youtube-playlist-scraper with the default input and summarise the results."*

### Input examples

**One playlist with summary (default)**

```json
{
  "playlists": ["https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"],
  "maxVideosPerPlaylist": 500,
  "playlistSummary": true
}
```

**Channel uploads playlist (UU…) as a full video list**

```json
{
  "playlists": ["UUBJycsmduvYEL83R_U4JriQ"],
  "maxVideosPerPlaylist": 2000
}
```

### Output fields

| Field | Description |
|---|---|
| `playlistId / playlistTitle / playlistOwner / playlistVideoCount / playlistViews / playlistUrl` | Playlist metadata |
| `position` | Order in the playlist |
| `videoId / title / channelName` | Video identity |
| `viewCount / viewCountText` | Views (rounded as shown, e.g. 2.6M) |
| `durationText / durationSeconds / isLive` | Length and live flag |
| `publishedTimeText` | Relative upload time when shown |
| `url / thumbnailUrl` | Links |
| `type = playlist-summary rows` | videosScraped, totalDurationSeconds, totalDurationText, sumOfVideoViews, avgViews, mostViewed\[], channels\[] |

#### Sample output

```json
{
  "playlistTitle": "Google Search Stories",
  "position": 1,
  "videoId": "GvgqDSnpRQM",
  "title": "Andrew Willis, Skatepark Engineer",
  "channelName": "Google Search Stories",
  "viewCount": 2600000,
  "durationText": "1:30",
  "durationSeconds": 90,
  "url": "https://www.youtube.com/watch?v=GvgqDSnpRQM"
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Video** | per playlist video row | $0.0005 |
| **Playlist summary** | per playlist summary row (on by default; turn off to skip) | $0.001 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 1 playlist of ~10 videos | $0.011 |
| A 200-video course | $0.106 |
| 50 playlists × 100 videos | $2.555 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Every channel has an uploads playlist: replace "UC" in the channel ID with "UU" to export all its videos.
- Pair with our YouTube Transcript Scraper to turn a whole playlist into text.
- Views are rounded by YouTube in playlist views; open the video for the exact number.
- Private and deleted videos are skipped automatically.

### FAQ

#### Do I need a YouTube API key?

No. The actor reads the public playlist page and its continuation pages.

#### Why fewer videos than the playlist count?

Private, deleted or region-blocked videos are counted by YouTube but not shown; they are skipped.

#### Are views exact?

Playlist views are rounded (2.6M). We return the number and the text.

#### Does it work for Mix (RD) playlists?

Auto-generated mixes are personalised and may differ per run; standard playlists work best.

#### Is a missing playlist charged?

No, it is logged and skipped.

#### Can I export the uploads of a channel?

Yes, with the UU… uploads playlist ID.

### Honest limits

- View counts are rounded as YouTube shows them in lists.
- Upload dates are shown only as relative text when YouTube provides them.
- Private/unlisted-only playlists are not accessible.
- Very long playlists are capped by maxVideosPerPlaylist.

### Related IntelScrape bots

- [YouTube Channel Scraper](https://apify.com/intelscrape/youtube-channel-scraper): subscribers, views & engagement per channel
- [YouTube Shorts Scraper](https://apify.com/intelscrape/youtube-shorts-scraper): every Short on a channel with views
- [YouTube Transcript Scraper](https://apify.com/intelscrape/youtube-transcript-scraper-pro): captions & timestamps in bulk
- [YouTube Search Scraper](https://apify.com/intelscrape/youtube-niche-url-finder): find videos & channels by keyword
- [PDF Text Extractor](https://apify.com/intelscrape/pdf-text-extractor): PDF URLs to clean text & metadata
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `playlists` (type: `array`):

Playlist URLs (…/playlist?list=PL…) or watch URLs with \&list=, or bare playlist IDs.

## `maxVideosPerPlaylist` (type: `integer`):

Cap per playlist.

## `playlistSummary` (type: `boolean`):

Add a summary row per playlist: total runtime, total/average views, most-viewed 5, channels. Charged per playlist.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "playlists": [
    "https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"
  ],
  "maxVideosPerPlaylist": 500,
  "playlistSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "playlists": [
        "https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"
    ],
    "playlistSummary": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/youtube-playlist-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "playlists": ["https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"],
    "playlistSummary": True,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/youtube-playlist-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "playlists": [
    "https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"
  ],
  "playlistSummary": true
}' |
apify call intelscrape/youtube-playlist-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/youtube-playlist-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PRF07UOvcfPnkQ9Tg/builds/LlSTvctaNfUc84WaD/openapi.json
