YouTube Authorized 4K Video Downloader avatar

YouTube Authorized 4K Video Downloader

Pricing

from $22.08 / 1,000 10 mb downloadeds

Go to Apify Store
YouTube Authorized 4K Video Downloader

YouTube Authorized 4K Video Downloader

Download authorized public YouTube videos up to 4K and export stored files with video, channel, format, resolution, and retrieval metadata.

Pricing

from $22.08 / 1,000 10 mb downloadeds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Download authorized, anonymously playable YouTube 4K videos in the best available resolution up to 2160p. The Actor selects compatible video and audio streams, merges them when necessary, stores the finished MP4 or Matroska file in Apify storage, and exports typed video, channel, format, resolution, file-size, and retrieval metadata.

Use it for owned-channel backups, rights-cleared production assets, client-approved archives, and repeatable media pipelines. It does not accept cookies or bypass private, paid, DRM, age-restricted, or login-only access controls.

What does this YouTube video downloader do?

For every supplied video URL, the Actor:

  1. validates and canonicalizes the YouTube URL;
  2. resolves anonymous player metadata with current yt-dlp extraction;
  3. selects the highest available non-DRM video at or below maxHeight;
  4. selects compatible audio and merges streams with ffmpeg when needed;
  5. enforces the requested file-size safety limit;
  6. stores the completed media file in the run key-value store;
  7. writes one typed retrieval record to the default dataset.

Every successful item creates a stored media file. Choose a lower maxHeight or tighter maxVideoSizeMb for small validation runs before downloading large 4K assets.

Who is it for?

  • Creators and channel owners backing up videos they own.
  • Production teams retrieving licensed YouTube source assets.
  • Agencies archiving videos with a client's permission.
  • Developers connecting authorized downloads to storage or processing pipelines.
  • Archivists preserving public, rights-cleared media with provenance metadata.

This Actor is URL-driven. It does not search YouTube, discover channel uploads, or monitor channels for new videos.

Why use this Actor?

A normal player page does not provide a durable media file or a structured audit row. This Actor combines format selection, video/audio merging, bounded retries, Apify storage, and dataset metadata in one run.

The route is deliberately conservative:

  • sequential processing limits upstream pressure;
  • direct retrieval is attempted first;
  • a bounded US residential session is used only after a verified YouTube block;
  • proof-of-origin tokens are generated inside the Actor container;
  • no buyer cookies, account credentials, or private session data are accepted;
  • failures remain visible in the dataset and a completely unsuccessful run fails.

What data does it return?

FieldMeaning
videoIdStable 11-character YouTube video ID
titlePublic video title
channel, channelIdPublishing channel identity
durationSeconds, uploadDateDuration and public upload date
sourceUrlCanonical YouTube watch URL
requestedMaxHeightInput resolution ceiling
width, height, resolutionSelected video dimensions
formatFinal or planned container, such as mp4
videoCodec, audioCodecSelected stream codecs
formatIdsSelected yt-dlp video/audio format IDs
fileSizeBytesFinal stored file size in bytes
videoFileKey, videoFileUrlApify storage key and API URL
retrievalModedirect or bounded residential route
chargedDownloadUnitsStarted 10 MB units for a saved file
retrievalStatusdownloaded or failed
error, retrievedAtBounded error and observation timestamp

Fields that YouTube does not expose are returned as null; field names remain stable for integrations.

How much does it cost to download authorized YouTube videos?

Pay-per-event billing tracks successful stored-media volume:

  • one Start event per run: $0.005;
  • one 10 MB downloaded event per started 10 MB of a successfully stored file: $0.0368 at BRONZE.

Examples at BRONZE pricing:

WorkflowEvent calculationActor charge
Save an 11.3 MB videostart + 2 download units$0.0786
Save an approximately 240 MB 4K videostart + 24 download units$0.8882

The Actor charges download units only after a file is stored successfully. Actual file size depends on duration, resolution, and codec. Apify platform storage retention and data transfer may create separate infrastructure usage outside Actor PPE events.

Getting started

  1. Open the Actor input page.
  2. Add one or more public YouTube video URLs.
  3. Enable I am authorized to download these videos.
  4. Choose a maximum height from 360 through 2160.
  5. Set a file-size limit that fits your workflow.
  6. Start the run.
  7. Open Video metadata for dataset rows and Downloaded files for media.

Begin with one short video and a lower resolution before processing larger assets.

Input parameters

InputTypeDefaultDetails
startUrlsarrayrequiredUp to 20 YouTube watch, Shorts, replay, embed, or youtu.be URLs
confirmAuthorizedUsebooleanfalseMust be true; confirms your authorization
maxHeightinteger1080One of 360, 480, 720, 1080, 1440, or 2160
maxVideoSizeMbinteger100Per-file safety limit from 1 to 500 MB
maxItemsinteger10Maximum unique videos, from 1 to 20
maxRequestRetriesinteger1Bounded transient retries, from 0 to 3

Duplicate video IDs are processed once. Playlist URLs are not expanded.

Example input

{
"startUrls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
],
"confirmAuthorizedUse": true,
"maxHeight": 720,
"maxVideoSizeMb": 50,
"maxItems": 1,
"maxRequestRetries": 1
}

Example output

{
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channel": "Rick Astley",
"durationSeconds": 213,
"sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"requestedMaxHeight": 720,
"width": 1280,
"height": 720,
"resolution": "1280x720",
"format": "mp4",
"videoCodec": "avc1.64001F",
"audioCodec": "mp4a.40.2",
"formatIds": ["136", "140"],
"fileSizeBytes": 29969207,
"videoFileKey": "video-dQw4w9WgXcQ-720p.mp4",
"videoFileUrl": "https://api.apify.com/v2/key-value-stores/example/records/video-dQw4w9WgXcQ-720p.mp4",
"retrievalMode": "direct",
"chargedDownloadUnits": 3,
"retrievalStatus": "downloaded",
"error": null,
"retrievedAt": "2026-08-23T11:40:00.000Z"
}

Every successful result has retrievalStatus: "downloaded" and populated videoFileKey and videoFileUrl.

Run from the API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~youtube-4k-video-downloader/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}],
"confirmAuthorizedUse": true,
"maxHeight": 720,
"maxVideoSizeMb": 50,
"maxItems": 1
}'

For production, send the token in an Authorization: Bearer header rather than storing it in source code.

Run from JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/youtube-4k-video-downloader').call({
startUrls: [{ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }],
confirmAuthorizedUse: true,
maxHeight: 720,
maxVideoSizeMb: 50,
maxItems: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run from Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/youtube-4k-video-downloader').call(run_input={
'startUrls': [{'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'}],
'confirmAuthorizedUse': True,
'maxHeight': 720,
'maxVideoSizeMb': 50,
'maxItems': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/youtube-4k-video-downloader"

Use the same JSON setup for Claude Desktop, Cursor, and VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/youtube-4k-video-downloader"
}
}
}

Example prompts:

  • “Download this authorized public YouTube video at the best available resolution up to 4K.”
  • “Archive these two rights-cleared YouTube source videos at up to 720p.”
  • “Return the stored file URLs and provenance metadata for this creator backup.”

Integration workflows

Creator backup: schedule a run with a maintained list of owned video URLs, then copy each videoFileUrl to long-term object storage.

Production ingestion: trigger the Actor from a content-management workflow, verify retrievalStatus, then pass the stored file to transcoding, transcription, or review.

Bounded preflight: run one short asset at 360p to validate storage and downstream processing before approving a larger archival batch.

Audit trail: retain dataset rows with canonical source URLs, channel IDs, selected formats, retrieval mode, and timestamps alongside your rights documentation.

Limits and failure behavior

  • Maximum 20 unique videos and 500 MB per file.
  • Videos are processed sequentially to reduce blocking and memory pressure.
  • 4K commonly uses separate video and audio streams and can produce large files.
  • Active live, upcoming, DRM, private, members-only, login-only, age-restricted, and inaccessible geo-blocked videos are unsupported.
  • YouTube can rotate player challenges; a source change may require an Actor update.
  • Some videos have no 4K upload. The Actor selects the best available height below the requested ceiling.
  • A failed input produces a failed dataset row with no download event charge.
  • If every supplied input fails, the Actor run fails rather than reporting an empty success.

Only download videos you own, videos covered by a suitable license, or videos for which the rights holder has authorized your use. Public playback does not itself grant copyright permission.

Follow YouTube's terms, applicable copyright law, privacy obligations, contractual restrictions, and retention requirements. Do not use the Actor to bypass access controls, subscriptions, DRM, age gates, geographic restrictions, or private sharing settings. Keep authorization records for professional archival workflows.

Troubleshooting

The result says the video is login-only or restricted.

Confirm the URL plays anonymously in the required geography. The Actor intentionally does not accept cookies or account credentials.

The selected resolution is below 4K.

The upload may not contain a 2160p format. Check height, resolution, and formatIds; the Actor chooses the best available format below maxHeight.

The selected file exceeds the size limit.

Increase maxVideoSizeMb up to 500 or lower maxHeight to select a smaller rendition.

A run works for one video but not another.

Restrictions are video-specific. Inspect each row's error field. Retry transient blocks, but do not retry private, DRM, or rights-related failures.

FAQ

Does it guarantee 4K?

No. It supports resolutions up to 2160p and selects the best format that the source actually exposes.

Can I resolve formats without storing a file?

No. This Actor is intentionally priced and scoped as a downloader; every successful item stores a completed media file.

Can it download playlists or whole channels?

No. Supply individual video URLs. Use a related channel scraper for discovery, then pass only authorized URLs into this Actor.

Can I provide YouTube cookies?

No. The Actor is intentionally limited to anonymous public playback and does not handle private user sessions.

How long are files kept?

Files use the run's default Apify key-value store and follow your Apify storage retention settings. Copy important archives to durable storage that matches your retention policy.