YouTube Playlist Scraper — Public Video Metadata avatar

YouTube Playlist Scraper — Public Video Metadata

Pricing

from $5.00 / 1,000 playlist video saveds

Go to Apify Store
YouTube Playlist Scraper — Public Video Metadata

YouTube Playlist Scraper — Public Video Metadata

Extract public YouTube playlist videos in order. Use for course, content, and competitor research; returns video IDs, titles, channels, durations, thumbnails, and source URLs. Not for private playlists or video downloads. $0.005 per saved video plus a $0.00005 start event.

Pricing

from $5.00 / 1,000 playlist video saveds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Share

Extract the ordered videos from public YouTube playlists into structured, exportable records. It is designed for creators, content strategists, researchers, and AI workflows that need a clean list of a course, competitor series, or curated collection—not video downloads, private data, or channel-wide crawling.

What it returns

Each dataset row represents one public playlist entry.

FieldMeaning
playlistId, playlistTitle, playlistOwnerNamePublic playlist identity and context
videoId, videoUrl, position, titleOrdered video identity and public watch link
channelName, channelUrlPublic source channel when returned
durationText, durationSeconds, thumbnailUrlLightweight media metadata
viewCountText, publishedTextValues shown by YouTube when included in the playlist response
isPlayableWhether YouTube exposed a usable public video reference
source, scrapedAtExtraction route and freshness timestamp

Use it for public course inventories, content-gap analysis, playlist-to-spreadsheet exports, or as a seed list for a separate public-video enrichment workflow. Do not use it for private playlists, personal data, downloading video/audio, comments, transcripts, or playlist discovery from a channel.

Input

Pass full public playlist URLs, watch URLs that include list=, or raw playlist IDs. The actor deduplicates inputs and applies maxResults across the entire run.

{
"playlists": [
"https://www.youtube.com/playlist?list=PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs"
],
"maxResults": 25,
"includeUnavailable": false
}

maxResults is a strict 1–500 cap. includeUnavailable preserves entries that YouTube publicly labels as deleted, private, or unavailable when they are returned; it does not grant access to their content.

Example output

{
"playlistId": "PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs",
"playlistUrl": "https://www.youtube.com/playlist?list=PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs",
"playlistTitle": "Year in Search",
"playlistOwnerName": "Google",
"videoId": "KIViy7L_lo8",
"videoUrl": "https://www.youtube.com/watch?v=KIViy7L_lo8&list=PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs",
"title": "2016 — Year in Search",
"position": 1,
"channelName": "Google",
"durationText": "2:01",
"durationSeconds": 121,
"thumbnailUrl": "https://i.ytimg.com/vi/KIViy7L_lo8/hqdefault.jpg",
"isPlayable": true,
"source": "scrapecreators",
"scrapedAt": "2026-07-22T00:00:00.000Z"
}

Null fields mean YouTube did not expose a stable public value for that entry. The actor never invents missing metadata.

Pricing and cost cap

This actor is configured for Pay per event. It charges:

  • $0.00005 when valid input is accepted and public extraction starts.
  • $0.005 for each validated video row that is persisted.

Apify platform usage is additional when the live actor is configured with Pay per event + usage. The run status message shows the maximum event-charge estimate before requests begin; maxResults: 25 has an event-charge ceiling of $0.12505, plus platform usage. A video is never billed unless its complete validated row is saved.

Reliability and sources

The primary route uses the documented ScrapeCreators public playlist endpoint when the owner-managed SCRAPECREATORS_API_KEY secret is configured. If that provider route is unavailable, the actor attempts YouTube’s public playlist payload and its continuation tokens without requiring user credentials. Both routes normalize into the same schema; source identifies which one supplied each record.

If neither route can return useful public data, the run fails honestly as UPSTREAM_FAILED rather than reporting an empty success. Private or restricted playlists remain out of scope. YouTube can change public response shapes, so release evidence should include separate short and long public playlist canaries, pagination, unavailable-entry handling, invalid inputs, and fallback routing.

Terminal outcomes

Every terminal path writes OUTPUT and RUN_SUMMARY in the default key-value store.

  • COMPLETE: all accepted public playlist work succeeded.
  • PARTIAL: useful videos were saved, with skipped input, upstream, validation, or billing-limit warnings.
  • VALID_EMPTY: valid public input produced no playlist entries.
  • INVALID_INPUT: no valid public playlist target or an invalid result cap was supplied.
  • UPSTREAM_FAILED: no useful output was produced because all available public routes failed.
  • CONFIG_ERROR: deployment configuration prevented the advertised work.

The first four terminal outcomes succeed; the last two deliberately fail so downstream automations can distinguish an upstream outage from an empty playlist.

API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("khadinakbar/youtube-playlist-scraper").call({
playlists: [
"https://www.youtube.com/playlist?list=PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs",
],
maxResults: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Agent prompt card

Extract the public videos from this YouTube playlist in order. Return video ID, title, channel, duration, thumbnail, and watch URL. Cap the output at 25 videos and report if the playlist is private, unavailable, or only partially retrieved.

Responsible use

Use only publicly available metadata in a manner consistent with YouTube’s terms, privacy expectations, and applicable law. Do not use this actor to access private/restricted content, collect personal data, or automate spam.