YouTube Authorized 4K Video Downloader
Pricing
from $22.08 / 1,000 10 mb downloadeds
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
Maintained by CommunityActor 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:
- validates and canonicalizes the YouTube URL;
- resolves anonymous player metadata with current
yt-dlpextraction; - selects the highest available non-DRM video at or below
maxHeight; - selects compatible audio and merges streams with ffmpeg when needed;
- enforces the requested file-size safety limit;
- stores the completed media file in the run key-value store;
- 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?
| Field | Meaning |
|---|---|
videoId | Stable 11-character YouTube video ID |
title | Public video title |
channel, channelId | Publishing channel identity |
durationSeconds, uploadDate | Duration and public upload date |
sourceUrl | Canonical YouTube watch URL |
requestedMaxHeight | Input resolution ceiling |
width, height, resolution | Selected video dimensions |
format | Final or planned container, such as mp4 |
videoCodec, audioCodec | Selected stream codecs |
formatIds | Selected yt-dlp video/audio format IDs |
fileSizeBytes | Final stored file size in bytes |
videoFileKey, videoFileUrl | Apify storage key and API URL |
retrievalMode | direct or bounded residential route |
chargedDownloadUnits | Started 10 MB units for a saved file |
retrievalStatus | downloaded or failed |
error, retrievedAt | Bounded 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:
| Workflow | Event calculation | Actor charge |
|---|---|---|
| Save an 11.3 MB video | start + 2 download units | $0.0786 |
| Save an approximately 240 MB 4K video | start + 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
- Open the Actor input page.
- Add one or more public YouTube video URLs.
- Enable I am authorized to download these videos.
- Choose a maximum height from 360 through 2160.
- Set a file-size limit that fits your workflow.
- Start the run.
- 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
| Input | Type | Default | Details |
|---|---|---|---|
startUrls | array | required | Up to 20 YouTube watch, Shorts, replay, embed, or youtu.be URLs |
confirmAuthorizedUse | boolean | false | Must be true; confirms your authorization |
maxHeight | integer | 1080 | One of 360, 480, 720, 1080, 1440, or 2160 |
maxVideoSizeMb | integer | 100 | Per-file safety limit from 1 to 500 MB |
maxItems | integer | 10 | Maximum unique videos, from 1 to 20 |
maxRequestRetries | integer | 1 | Bounded 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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
faileddataset row with no download event charge. - If every supplied input fails, the Actor run fails rather than reporting an empty success.
Responsible and legal use
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.
Related Automation Lab Actors
- YouTube Channel Videos Scraper — discover public video metadata from a channel before selecting authorized assets.
- YouTube Thumbnail Downloader — save public thumbnail images without transferring video media.
- Video to Text Transcriber — turn an accessible stored video into timestamped transcript records.
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.