YouTube Video, Playlist & Channel Downloader with Metadata
Download YouTube videos from direct links, playlists, channels, or search phrases at your chosen quality, with a public file link plus title, stats, description and subtitles per video.
Open in Apify Store$0.99 / 1K on Free
Short answer
YouTube Video, Playlist & Channel Downloader with Metadata is an Apify Store Actor for YouTube data that returns 20 published output fields, including video_url, title, video_id, view_count. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 29 input settings; one is required (mode). It covers 4 of the 8 core YouTube fields this site tracks. Last updated Oct 24, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
20 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
video_urltitleuploaderduration_secondsdownload_statusfailure_coderequested_qualitydelivered_qualityresolutionfilesize_bytesdownload_urlstorage_modedownloaded_atvideo_iddescriptionupload_dateview_countlike_countcomment_countthumbnail
Not in the schema among the core YouTube fields: channel, duration, published_at, transcript. The field matrix shows which other tools return them.
How it differs from the other YouTube Actors
Among the 17 catalogue Actors for YouTube with a published schema, only this one returns uploader, failure_code, requested_quality, delivered_quality, filesize_bytes, downloaded_at.
Pick another Actor if you need
| Actor | Fields it adds | Price / 1K |
|---|---|---|
| YouTube Search Results & Entity Type Scraper | channelName, publishedAt, publishedTimeText, channelId | $0.99 |
| YouTube Shorts Metadata Extractor for Channels & Hashtags | hashtags, channelName, channelId, publishDate | $0.99 |
| YouTube Channel Video Catalog & Profile Scraper | publishedTimeText, authorMetadata.channelName, authorMetadata.subscriberCount, isLive | $0.99 |
| YouTube Caption & Whisper AI Transcript Extractor | channel_name, publishedAt, transcript_language, segment_count | $0.99 |
| YouTube Hashtag Video & Shorts Ranking Scraper | hashtag, channelName, publishedAt, hashtagUrl | $0.99 |
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | Yes | metadata | What to return: metadata only, media files, or caption files without media. |
| videoUrls | array | No | [] | Direct YouTube video, Shorts, live-replay, or youtu.be URLs, or 11-character video IDs. |
| playlistUrls | array | No | [] | YouTube playlist URLs. Videos are expanded up to maxVideos in total. |
| channelUrls | array | No | [] | YouTube channel URLs, @handles, or UC channel IDs. The Videos tab is used. |
| searchQueries | array | No | [] | YouTube search phrases. Each query resolves public results up to maxVideos in total. |
| videoQuality | string | No | 720p | SDR target quality. 360p-1080p prefer H.264/AAC MP4. 1440p and 2160p require allow4K and are delivered with their real codec and container. |
| container | string | No | auto | Auto uses MP4 H.264/AAC when available and MKV for VP9/AV1. Explicit MP4 never relabels AV1/Opus content as MP4; if no compatible stream exists the video gets a failure row. |
| audioOnly | boolean | No | false | Download the source audio track without video and without re-encoding. |
| audioFormat | string | No | m4a | Source audio passthrough format used when audioOnly is enabled. |
| downloadSubtitles | boolean | No | false | Fetch available manual or automatic captions for the requested languages. |
Show the other 19 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| subtitleLanguages | array | No | ["en"] | Caption language codes to request. Only tracks that already exist on the video are used; translations are not promised. |
| subtitleFormat | string | No | vtt | File format for downloaded captions. |
| includeTranscript | boolean | No | false | Add a plain-text transcript from the first requested caption track. |
| maxVideos | integer | No | 10 | Total videos processed across all inputs. |
| maxMinutes | integer | No | 30 | Reject a video before download when its duration exceeds this cap. 4K opt-in downloads are additionally capped at 10 minutes. |
| maxMB | integer | No | 500 | Reject oversized downloads. Values above 500 are only used for 4K opt-in downloads, which are capped at 1000 MB. |
| allow4K | boolean | No | false | Enable 1440p/2160p SDR downloads. These are capped at 10 minutes and 1000 MB and may use MKV with VP9/AV1 because YouTube rarely serves H.264 above 1080p. |
| storage | string | No | ephemeral_kvs | Where downloaded files are written. Named KVS persists while the store exists; ephemeral KVS follows your Apify account retention. |
| kvsName | string | No | – | Named key-value store name when storage=named_kvs. Defaults to youtube-downloader. |
| storageRetentionDays | integer | No | 7 | Signed-link lifetime for S3/R2 storage (1-7 days). KVS retention is controlled by your Apify account. |
| s3Bucket | string | No | – | Bucket name when storage=s3. |
| s3Prefix | string | No | youtube-downloader | Object key prefix when storage=s3. |
| s3Endpoint | string | No | – | Custom endpoint for S3-compatible storage such as Cloudflare R2. |
| s3Region | string | No | auto | Region for S3 or S3-compatible storage. |
| s3AccessKeyId | string | No | – | Optional access key ID when storage=s3. |
| s3SecretAccessKey | string | No | – | Optional secret access key when storage=s3. |
| s3PublicBaseUrl | string | No | – | Optional public bucket URL. When set, files use public URLs instead of expiring presigned URLs. |
| cookies | string | No | – | Optional cookies.txt content for age-restricted or members-only videos. Public videos work without cookies. |
| proxyConfiguration | object | No | {"useApifyProxy":true} | Optional. Metadata and player extraction use this connection; media bytes are downloaded directly. |
Example input
Built from the input form's published example values and defaults.
{
"mode": "metadata",
"videoUrls": [
"https://www.youtube.com/watch?v=jNQXAC9IVRw"
],
"playlistUrls": [],
"channelUrls": [],
"searchQueries": [],
"videoQuality": "360p",
"container": "auto",
"audioOnly": false,
"audioFormat": "m4a",
"downloadSubtitles": false,
"subtitleLanguages": [
"en"
],
"subtitleFormat": "vtt",
"includeTranscript": false,
"maxVideos": 1,
"maxMinutes": 30,
"maxMB": 100,
"allow4K": false,
"storage": "ephemeral_kvs",
"storageRetentionDays": 7,
"s3Prefix": "youtube-downloader",
"s3Region": "auto",
"proxyConfiguration": {
"useApifyProxy": true
}
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "metadata",
"videoUrls": [
"https://www.youtube.com/watch?v=jNQXAC9IVRw"
],
"playlistUrls": [],
"channelUrls": [],
"searchQueries": [],
"videoQuality": "360p",
"container": "auto",
"audioOnly": False,
"audioFormat": "m4a",
"downloadSubtitles": False,
"subtitleLanguages": [
"en"
],
"subtitleFormat": "vtt",
"includeTranscript": False,
"maxVideos": 1,
"maxMinutes": 30,
"maxMB": 100,
"allow4K": False,
"storage": "ephemeral_kvs",
"storageRetentionDays": 7,
"s3Prefix": "youtube-downloader",
"s3Region": "auto",
"proxyConfiguration": {
"useApifyProxy": True
}
}
run = client.actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "metadata",
"videoUrls": [
"https://www.youtube.com/watch?v=jNQXAC9IVRw"
],
"playlistUrls": [],
"channelUrls": [],
"searchQueries": [],
"videoQuality": "360p",
"container": "auto",
"audioOnly": false,
"audioFormat": "m4a",
"downloadSubtitles": false,
"subtitleLanguages": [
"en"
],
"subtitleFormat": "vtt",
"includeTranscript": false,
"maxVideos": 1,
"maxMinutes": 30,
"maxMB": 100,
"allow4K": false,
"storage": "ephemeral_kvs",
"storageRetentionDays": 7,
"s3Prefix": "youtube-downloader",
"s3Region": "auto",
"proxyConfiguration": {
"useApifyProxy": true
}
};
const run = await client.actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~youtube-video-playlist-and-channel-downloader/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"metadata","videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"playlistUrls":[],"channelUrls":[],"searchQueries":[],"videoQuality":"360p","container":"auto","audioOnly":false,"audioFormat":"m4a","downloadSubtitles":false,"subtitleLanguages":["en"],"subtitleFormat":"vtt","includeTranscript":false,"maxVideos":1,"maxMinutes":30,"maxMB":100,"allow4K":false,"storage":"ephemeral_kvs","storageRetentionDays":7,"s3Prefix":"youtube-downloader","s3Region":"auto","proxyConfiguration":{"useApifyProxy":true}}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/youtube-video-playlist-and-channel-downloader",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among YouTube routes
It ranks 11 of 17 catalogue Actors for YouTube on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 YouTube Search Results & Entity Type Scraper 42 output fields, pay per event 7 of 8 core fields
$0.99 / 1K - 2 YouTube Shorts Metadata Extractor for Channels & Hashtags 38 output fields, pay per event 7 of 8 core fields
$0.99 / 1K - 3 YouTube Channel Video Catalog & Profile Scraper 49 output fields, pay per event 6 of 8 core fields
$0.99 / 1K - 11 YouTube Video, Playlist & Channel Downloader with Metadata 20 output fields, pay per event 4 of 8 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 8 of 8 core fields
from $0.01 / 1K - API YouTube Data API v3 Public API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: YouTube Data API v3
Public API. The Data API exposes public video, channel, playlist and comment data. Each project receives a daily quota measured in units.
No per-call fee is published; the constraint is the daily quota. Extra quota is not self-serve.
Other Store tools for YouTube
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Youtube Channel Video Scraper | 23 | $1.00 |
| YouTube Video Transcript | 25 | $5.00 |
| YouTube Scraper: Videos, Channels & Search | 14 | $0.50 |
| YouTube Video Downloader | 26 | $5.00 |
| Youtube Video/Shorts Details Scraper Pro | 7 | $0.01 |
What people use it for
- Download videos
- Collect video metadata
- Extract subtitles
Other catalogue Actors for YouTube
YouTube Search Results & Entity Type Scraper
Search YouTube by keyword for videos, Shorts, channels, or playlists, with view counts, duration, and channel details, filterable by upload date,…
YouTube Shorts Metadata Extractor for Channels & Hashtags
Pull Shorts from a channel's Shorts tab, a hashtag feed, or specific Shorts links, with views, likes, comment counts, upload dates and channel…
YouTube Channel Video Catalog & Profile Scraper
Get a YouTube channel's profile details (subscribers, description, links, verification) together with its video, Shorts, playlist or live-stream…
YouTube Caption & Whisper AI Transcript Extractor
Get timestamped transcripts from YouTube videos in your preferred language, with optional AI transcription for videos that have no captions at…
YouTube Hashtag Video & Shorts Ranking Scraper
Look up one or more YouTube hashtags and get the videos and Shorts currently ranked under them, in order, with view count, channel, duration and…
YouTube Trending Feed Extractor by Category & Market
Get video lists for YouTube's Gaming, Music, News, Movies and Trending sections in any of 31 regional markets, with views, duration and channel…
Similar Actors
YouTube Channel Video Feed Quick Scraper
Quickly list any YouTube channel's videos, sorted newest, most popular or oldest, with channel subscriber count, verification and optional Shorts,…
YouTube Playlist Contents & Channel Playlist Finder
List every video in a YouTube playlist, or discover every public playlist a channel owns, with titles, durations, thumbnails, and playlist metadata.
YouTube Video Metadata & Chapter Extractor
Get full metadata for any YouTube video or Short: channel info, chapters, endscreen elements, caption track list, related videos and comments,…
Snapchat Spotlight Video Link & Caption Downloader
Give this actor one or more Snapchat Spotlight links and get back a direct video link, thumbnail, caption, creator info and engagement counts per…
YouTube Channel About, Playlists & Posts Finder
Look up a YouTube channel's About page details - subscribers, views, country, join date, links - with optional playlist and Community Post…
TikTok Video Subtitle & Transcript Extractor
Pull every subtitle track off a TikTok video - auto speech recognition plus any machine-translated languages - as timestamped segments and a…
Questions people ask
How much does YouTube Video, Playlist & Channel Downloader with Metadata cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does YouTube Video, Playlist & Channel Downloader with Metadata return?
Its published output schema lists 20 fields: video_url, title, uploader, duration_seconds, download_status, failure_code, requested_quality, delivered_quality, resolution, filesize_bytes, download_url, storage_mode, and 8 more. A listed field is not guaranteed to be filled in every row.
What input does YouTube Video, Playlist & Channel Downloader with Metadata need?
Required: mode. Optional settings include videoUrls, playlistUrls, channelUrls, searchQueries, videoQuality, container.
What are the alternatives to YouTube Video, Playlist & Channel Downloader with Metadata for YouTube?
17 catalogue Actors cover YouTube. Close alternatives: YouTube Search Results & Entity Type Scraper; YouTube Shorts Metadata Extractor for Channels & Hashtags; YouTube Channel Video Catalog & Profile Scraper. The YouTube page compares all of them field by field.
How do I run YouTube Video, Playlist & Channel Downloader with Metadata from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/youtube-video-playlist-and-channel-downloader").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~youtube-video-playlist-and-channel-downloader/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- YouTube Video, Playlist & Channel Downloader with Metadata on Apify Store
- Published build with input and output schema (JSON)
- YouTube Data API v3 documentation
Cite this page
Scraper Finder. "YouTube Video, Playlist & Channel Downloader with Metadata." https://scraperfinder.com/catalogue/youtube-video-playlist-and-channel-downloader/ (data checked 2026-11-12).
Run YouTube Video, Playlist & Channel Downloader with Metadata
$0.99 per 1,000 results. Paste the example input above, set your YouTube query, then export the dataset. Still choosing? Compare every YouTube route.