Youtube Playlist Scraper
Pricing
$19.99/month + usage
Youtube Playlist Scraper
🎬 YouTube Playlist Scraper extracts full playlist metadata—video titles, URLs, durations, views, publish dates, channels & thumbnails. 📦 Export CSV/JSON. ⚡ Perfect for content curation, SEO research, analytics & archiving. Automate bulk scraping with youtube-playlist-scraper.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeFlow
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Youtube Playlist Scraper
The Youtube Playlist Scraper is a fast, scalable playlist metadata extractor that collects structured video data from YouTube playlist pages. It solves the manual copy-paste problem by automatically pulling titles, video URLs, durations, view counts (when available), channel details, thumbnails, and playlist-level metadata into clean, analysis-ready records. Built for marketers, developers, data analysts, and researchers, this youtube playlist extractor doubles as a youtube channel playlist scraper by accepting @usernames and discovering their playlists. Use it to export youtube playlist to csv, build a youtube playlist to json export, or download youtube playlist links at scale for content curation and analytics.
What data / output can you get?
Below are the primary output fields exactly as they appear in the dataset. Results can be downloaded from Apify as CSV or JSON.
| Data type | Description | Example value |
|---|---|---|
| videoId | YouTube video ID extracted from the playlist | I-beHln9Gus |
| title | Video title as shown in the playlist | Cold Email Automation with LangChain, Lemlist & Apify |
| videoUrl | Direct watch URL for the video | https://www.youtube.com/watch?v=I-beHln9Gus |
| duration | Raw duration text from the playlist entry | 5:54 |
| durationLabel | Human-readable duration label derived from duration | 5 minutes, 54 seconds |
| viewCount | View count parsed from videoInfo (if present) | 5.7K views |
| videoInfo | Combined views and publish-time string from the playlist row | 5.7K views • 2 years ago |
| channel.name | Channel display name linked to the video | Rabbitmetrics |
| channel.id | Channel handle extracted from the URL | rabbitmetrics |
| channel.url | Absolute URL to the channel page | https://www.youtube.com/@rabbitmetrics |
| thumbnail.url | Highest-quality thumbnail URL found in the playlist item | https://i.ytimg.com/vi/I-beHln9Gus/hqdefault.jpg |
| playlistInfo.playlistId | Playlist ID used for the fetch | PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw |
| playlistInfo.playlistUrl | Canonical playlist URL | https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw |
| playlistInfo.playlistTitle | Playlist title | Community Tutorials |
| playlistInfo.owner | Playlist owner (if available) | Apify |
| playlistInfo.playlistDescription | Playlist description (if available) | Tutorials and videos featuring Apify and Crawlee... |
| playlistInfo.videoCount | Number of videos (when detected) | 10 |
| playlistInfo.totalDuration | Playlist total duration text (when detected) | 58 minutes |
| playlistInfo.totalDurationMinutes | Total duration normalized to minutes (when detected) | 58 |
| extractedAt | ISO timestamp when the item was extracted | 2026-04-02T07:06:50.368Z |
| isPlayable | Flag indicating the item is playable | true |
Note:
- Some playlist-level fields (like playlistInfo.playlistDescription, lastUpdated) may be empty if not present in the page HTML.
- viewCount is included only when it can be parsed from videoInfo.
- You can export your dataset as CSV or JSON directly from Apify.
Key features
-
⚡ Fast HTML playlist parser Efficiently parses YouTube playlist pages using aiohttp and BeautifulSoup — no browser overhead. Ideal as a lightweight youtube playlist crawler script or youtube playlist parser for high-throughput runs.
-
🔁 Batch inputs & username discovery Feed multiple inputs at once via playlistInputs. Provide @usernames (or plain usernames) to auto-discover their playlists and process them like a youtube channel playlist scraper.
-
✂️ Configurable limits Control volume with maxVideos per playlist (0 = no limit, up to 1000). Great for quick samples or full exports when you need to scrape youtube playlist titles and ids at scale.
-
📡 Resilient proxy fallback Starts without a proxy, then automatically falls back to datacenter and residential proxies with retries if blocked. Designed to keep long runs stable.
-
📤 Real-time dataset streaming Each video can be pushed to the dataset as soon as it’s extracted, enabling near-instant access to results and easier pipelines that download youtube playlist links progressively.
-
🧾 Flexible output detail Toggle includeVideoDetails to choose between the full record (thumbnails, videoInfo, durationLabel, playlist/channel metadata) or a smaller summary with just the essentials.
-
🔌 Apify-native automation Runs on Apify infrastructure for reliability and easy integrations. Use schedules and webhooks to export youtube playlist to csv or create a youtube playlist to json export for downstream apps.
How to use Youtube Playlist Scraper - step by step
- Create or log in to your Apify account.
- Open the “youtube-playlist-scraper” actor in the Apify Store.
- Add input data in playlistInputs:
- Playlist URLs (e.g., https://www.youtube.com/playlist?list=…)
- @usernames (e.g., @apify) or plain usernames (e.g., apify) to discover their playlists
- Note: Keyword search inputs are not yet supported and will be skipped with a warning in logs.
- Set limits and detail:
- maxVideos to control how many videos to extract per playlist (0 = all)
- includeVideoDetails true for full records, false for a lean subset
- Configure proxy (optional):
- proxyConfiguration.useApifyProxy can remain false; the scraper auto-fallbacks to datacenter → residential if needed.
- Run the actor:
- Click Start. Watch logs for input resolution, playlist discovery (for usernames), and proxy fallback status if applied.
- Download results:
- Go to the run’s Dataset and export as CSV or JSON for analysis, dashboards, or automation.
Pro Tip: Feed multiple @usernames to build a broad catalog, then use the JSON export in your pipelines to power a youtube playlist export tool flow for analytics or content planning.
Use cases
| Use case name | Description |
|---|---|
| Marketing + Competitive audit | Aggregate playlist titles, video URLs, and views to benchmark competitor content and export youtube playlist to csv for reporting. |
| Content curation + Planning | Build a library of video links and durations from themed playlists; download youtube playlist links and organize by channel or series. |
| SEO research + Metadata tracking | Track videoInfo (views • age) and channel names to identify patterns and opportunities across niches. |
| Data engineering + API pipelines | Use the JSON export as a youtube playlist to json export feeding internal ETL jobs or dashboards. |
| Research + Academic studies | Collect clean, timestamped extractedAt records for longitudinal analysis without manual copy-paste. |
| Channel audits via usernames | Input @usernames to auto-discover and process recent playlists as a youtube channel playlist scraper workflow. |
| Lightweight playlist parser | Use as a youtube playlist parser to validate durations and titles quickly with minimal overhead. |
Why choose Youtube Playlist Scraper?
This playlist extractor is built for precision, stability, and automation on Apify’s infrastructure.
- ✅ Accurate field mapping to real playlist HTML (no guessing or placeholders).
- ⚙️ Scalable runs with automatic proxy fallback (no proxy → datacenter → residential with retries).
- 🚀 Low-latency streaming of results to datasets for faster time-to-insight.
- 🔍 Username-based playlist discovery for broader coverage without manual URLs.
- 🛡️ Public data only — designed to extract from accessible playlist pages.
- 💻 Developer-friendly outputs for easy CSV/JSON exports and downstream processing.
- 🧱 More reliable than browser extensions or ad-hoc scripts, especially for batch workflows.
In short: a dependable youtube playlist extractor for teams that need repeatable, structured outputs at scale.
Is it legal / ethical to use Youtube Playlist Scraper?
Yes — when done responsibly. This actor extracts publicly available information from YouTube playlist pages without logging in.
Guidelines for compliant use:
- Only scrape public playlists and publicly visible video metadata.
- Respect YouTube’s Terms of Service and avoid bypassing access restrictions.
- Use the data responsibly and for legitimate purposes (analysis, research, automation).
- Do not republish copyrighted content without permission.
- Consult your legal team for edge cases or jurisdiction-specific obligations.
Input parameters & output format
Example JSON input
{"playlistInputs": ["https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw","@apify","apify"],"maxVideos": 10,"includeVideoDetails": true,"proxyConfiguration": {"useApifyProxy": false}}
| Field | Type | Description | Default | Required |
|---|---|---|---|---|
| playlistInputs | array of strings | Paste one or more: playlist URLs · @usernames · or search keywords. Bulk input supported. Note: keyword search is not yet implemented in the current version. | — | Yes |
| maxVideos | integer | How many videos to scrape per playlist. Use 0 for no limit (all videos). Allowed range 0–1000. | 10 | No |
| includeVideoDetails | boolean | When on, each row includes extra fields (thumbnail, videoInfo, durationLabel, full channel/playlist, extractedAt). When off, a lean subset is returned. | true | No |
| proxyConfiguration | object | Optional. Starts without proxy; auto fallback to datacenter → residential if blocked. Prefill uses useApifyProxy=false. | {"useApifyProxy": false} | No |
Notes:
- When @usernames are provided, the actor discovers up to 10 unique playlists from the user’s /playlists page and processes up to the first 5 in the current run.
- Keyword search inputs will log a warning and be skipped.
Example JSON output (includeVideoDetails: true)
[{"thumbnail.url": "https://i.ytimg.com/vi/I-beHln9Gus/hqdefault.jpg","title": "Cold Email Automation with LangChain, Lemlist & Apify","videoUrl": "https://www.youtube.com/watch?v=I-beHln9Gus","videoId": "I-beHln9Gus","duration": "5:54","durationLabel": "5 minutes, 54 seconds","isPlayable": true,"channel": {"name": "Rabbitmetrics","id": "rabbitmetrics","url": "https://www.youtube.com/@rabbitmetrics"},"videoInfo": "5.7K views • 2 years ago","playlistInfo": {"playlistId": "PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw","playlistUrl": "https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw","playlistTitle": "Community Tutorials","playlistDescription": "Tutorials and videos featuring Apify and Crawlee...","lastUpdated": null,"owner": "Apify","videoCount": 10,"totalVideosInPlaylist": 0,"totalDuration": "58 minutes","totalDurationMinutes": 58},"extractedAt": "2026-04-02T07:06:50.368Z","viewCount": "5.7K views"}]
Example JSON output (includeVideoDetails: false)
[{"videoId": "I-beHln9Gus","title": "Cold Email Automation with LangChain, Lemlist & Apify","videoUrl": "https://www.youtube.com/watch?v=I-beHln9Gus","duration": "5:54","viewCount": "5.7K views","channel": {"name": "Rabbitmetrics"},"playlistInfo": {"playlistTitle": "Community Tutorials"}}]
Fields that may be empty:
- playlistInfo.playlistDescription, playlistInfo.lastUpdated — if not present in the page HTML.
- viewCount — only included when it can be parsed from videoInfo.
- channel.id and channel.url — may be empty if the channel link is missing.
FAQ
Is there a free tier or trial?
Yes. This actor offers trial minutes on Apify so you can test the workflow before committing. You can start with smaller playlists and scale up as needed.
Can I export a YouTube playlist to CSV or JSON?
Yes. After the run completes, open the Dataset and export your results as CSV or JSON. This is ideal for a youtube playlist downloader tool focused on links and metadata.
Does it work with private or unlisted playlists?
No. The scraper is designed for public playlist pages and publicly visible video entries only.
Can I extract playlists by channel username?
Yes. Provide @usernames (or plain usernames) in playlistInputs. The actor fetches their /playlists page, discovers up to 10 unique playlists, and processes up to the first 5 in a run.
Does it support keyword search inputs?
Not yet. If you pass a keyword instead of a URL or username, the actor will log a warning that keyword search is not implemented and skip that input.
What fields does it return?
When includeVideoDetails is true, you’ll get videoId, title, videoUrl, duration, durationLabel, videoInfo, viewCount (if present), channel { name, id, url }, thumbnail.url, playlistInfo { playlistId, playlistUrl, playlistTitle, playlistDescription, lastUpdated, owner, videoCount, totalVideosInPlaylist, totalDuration, totalDurationMinutes }, isPlayable, and extractedAt. With includeVideoDetails false, a lean subset is returned.
How many videos can I scrape per playlist?
You control this with maxVideos. Set 0 for all videos, or pick a value up to 1000. The actor will also stream items in real time to the dataset as they are extracted.
How does the proxy work?
By default, the actor starts without a proxy. If a request is blocked or fails, it automatically falls back to a datacenter proxy and then to residential proxies with retries, improving stability for larger runs.
Closing thoughts
The Youtube Playlist Scraper is built for structured, reliable extraction of playlist video metadata at scale. It helps marketers, developers, analysts, and researchers export clean records (CSV/JSON), discover playlists from @usernames, and automate workflows with resilient proxy fallback and real-time dataset streaming. Developers can plug the JSON output into pipelines for a robust youtube playlist export tool and youtube playlist url extractor. Start extracting smarter datasets and turn playlists into insights-ready assets.