YouTube Video Downloader avatar

YouTube Video Downloader

Pricing

$7.00/month + usage

Go to Apify Store
YouTube Video Downloader

YouTube Video Downloader

Rebuilt YouTube downloader for normalized direct CDN formats or saved playable files. Resolve public videos by access country, automatically combine separate high-quality video and audio, and optionally include subtitles or timed transcripts.

Pricing

$7.00/month + usage

Rating

3.7

(16)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

24

Bookmarked

605

Total users

6

Monthly active users

20 hours

Issues response

12 days ago

Last modified

Share

The rebuilt YouTube Video Downloader resolves fresh CDN formats quickly and now saves complete high-quality files without leaving the audio behind.

Version 2 replaces the old proxy-heavy download flow with a country-aware links-first workflow and reliable file saving. A normal run returns one structured record per public video with metadata, available subtitle languages, and normalized combined, video-only, and audio-only formats. File transfer remains optional, so automation that only needs a fresh direct URL does not pay to move the entire video.

Use direct-format mode for media pipelines, players, format comparison, or downstream downloading. Enable playable-file saving when you want the Actor to combine separate high-quality video and audio streams and return one download URL.

Resolve direct formats

Add one or more YouTube URLs and the country where the links will be accessed. Leave file saving off to receive metadata, available subtitle languages, and normalized direct media URLs quickly.

FieldTypeRequiredDescription
urlsarrayYesOne or more public YouTube video or Shorts URLs. Bare 11-character video IDs are also accepted in JSON input.
regionstringYesTwo-letter ISO country code for the location from which you will access the returned CDN URLs, such as US, IN, or DE.
includeTranscriptbooleanNoAdd the video's timed transcript segments and combined transcript text when available.
subtitleLanguagestringNoOptional language code for one subtitle track to include as VTT text, such as en, es, or pt-BR. The language must be available for the video.

Save playable files

Enable playable-file saving, then choose the maximum quality and output container. Separate video and audio streams are combined automatically. Successful saved-file results stay compact by omitting raw formats, thumbnails, and the automatic subtitle catalog.

FieldTypeRequiredDescription
urlsarrayYesOne or more public YouTube video or Shorts URLs. Bare 11-character video IDs are also accepted in JSON input.
regionstringYesTwo-letter ISO country code for the location from which you will access the returned CDN URLs, such as US, IN, or DE.
saveMediabooleanNoCreate playable files and return their download URLs. Until pay-per-event pricing activates, each run can save at most 100 MB total. Successful saved-file results omit verbose format, thumbnail, and subtitle-catalog lists. Failed file saves are not charged.
qualitystringNoHighest video resolution to save. The default selects the highest available quality.
formatstringNoContainer for saved files. Default produces MP4 for broad player compatibility.
includeTranscriptbooleanNoAdd the video's timed transcript segments and combined transcript text when available.
subtitleLanguagestringNoOptional language code for one subtitle track to include as VTT text, such as en, es, or pt-BR. The language must be available for the video.

Example: formats plus transcript

{
"urls": [
{
"url": "https://www.youtube.com/watch?v=arj7oStGLkU"
}
],
"region": "US",
"saveMedia": false,
"includeTranscript": true,
"subtitleLanguage": "en"
}

One normalized record per video

Every format uses the same field names regardless of whether it contains video and audio together, video only, or audio only. streamType, container, codecs, resolution, bitrate, byte size, duration, and directUrl make selection predictable in code.

🎬 Video identity

FieldTypeDescription
idstringYouTube video ID.
urlstringCanonical YouTube watch URL.
titlestringVideo title.
accessCountrystringCountry from which the returned CDN URLs are expected to be accessed.
durationSecondsnumberVideo duration in seconds.
viewCountnumberView count reported when formats were resolved.
channelobjectChannel ID, title, and URL.

📦 Media and subtitles

FieldTypeDescription
formatsarrayNormalized combined, video-only, and audio-only media formats with direct URLs.
availableSubtitlesarrayAvailable subtitle tracks with language metadata and no expiring source URLs.
thumbnailsarrayAvailable thumbnail images with dimensions.
directUrlsExpireAtstringApproximate expiry time shared by the resolved direct media URLs.

⬇️ Optional outputs

FieldTypeDescription
subtitleobjectRequested subtitle track as VTT text when available.
transcriptobjectTimed transcript segments and combined text when requested and available.
savedFileobjectSaved playable-file details and download URL when file saving succeeds.

Shortened result

{
"id": "arj7oStGLkU",
"url": "https://www.youtube.com/watch?v=arj7oStGLkU",
"title": "Inside the Mind of a Master Procrastinator | Tim Urban | TED",
"accessCountry": "US",
"durationSeconds": 844,
"channel": {
"id": "UCAuUUnT6oDeKwE6v1NGQxug",
"title": "TED",
"url": "https://www.youtube.com/channel/UCAuUUnT6oDeKwE6v1NGQxug"
},
"formats": [
{
"itag": 18,
"streamType": "video+audio",
"container": "mp4",
"qualityLabel": "360p",
"width": 640,
"height": 360,
"directUrl": "https://redirector.googlevideo.com/videoplayback?..."
}
],
"availableSubtitles": [
{
"languageCode": "en",
"languageName": "English",
"kind": "subtitles",
"isTranslatable": true
}
],
"subtitle": {
"languageCode": "en",
"languageName": "English",
"format": "vtt",
"content": "WEBVTT\n\n00:00:00.000 --> 00:00:03.000\nSo in college..."
},
"transcript": {
"text": "So in college, I was a government major...",
"segments": [
{
"startMs": 0,
"endMs": 3000,
"startTime": "0:00",
"text": "So in college..."
}
]
}
}

High-quality video and audio

YouTube commonly serves higher resolutions as separate video and audio streams. When playable-file saving is enabled, the Actor selects compatible streams and remuxes them into MP4, WebM, or MKV without re-encoding. The selected maximum quality controls file size and cost.

Direct media URLs are signed, temporary, and resolved for the selected access country. Use them promptly from that country, or enable file saving when the result needs to remain available with the run's retained files.

When a playable file is saved successfully, its dataset record is deliberately compact: basic video metadata, requested enrichment, and savedFile. The verbose formats, thumbnails, automatic subtitle catalog, and direct-URL expiry fields are omitted because the retained file has become the useful output. If saving fails, direct formats remain available as the fallback.

Until pay-per-event pricing becomes active, saved video and audio files are temporarily limited to 100 MB total per run. Direct URLs and metadata are not affected. Non-paying users can collect up to 500 free results before the Actor asks them to upgrade.

Pricing follows completed output

Pay-per-event pricing is configured but not active yet. Until activation, the current Store rental applies and each run can save at most 100 MB total. Non-paying users can collect up to 500 free results. After activation, each video, successful enrichment, and completed saved-file MB follows the displayed event rates; failed enrichments and file saves are not charged.

Apify's free credits may cover up to 500 lifetime results for non-paying users, subject to the temporary 100 MB saved-media cap per run.

Leave playable-file saving off when direct media URLs are enough. Direct URLs and metadata do not count toward the temporary media cap.

Download responsibly

Download only videos you own, videos for which you have permission, or content whose license and applicable law allow downloading. You are responsible for complying with YouTube's terms, copyright rules, privacy laws, and any other restrictions that apply to your use case.

Run from code

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("thenetaji/youtube-video-downloader").call(run_input={
"urls": [
{
"url": "https://www.youtube.com/watch?v=arj7oStGLkU"
}
],
"region": "US",
"saveMedia": false,
"includeTranscript": true,
"subtitleLanguage": "en"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });
const run = await client.actor("thenetaji/youtube-video-downloader").call({
"urls": [
{
"url": "https://www.youtube.com/watch?v=arj7oStGLkU"
}
],
"region": "US",
"saveMedia": false,
"includeTranscript": true,
"subtitleLanguage": "en"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Download audio without the video

  • YouTube Music Downloader — Download public YouTube and YouTube Music tracks as MP3, M4A, or WebM. Optionally add an available subtitle or timed transcript and receive compact metadata with a ready-to-use audio file URL.
  • LinkedIn Post Scraper — Fetch full public LinkedIn post details — text, author, reactions, comments, and media — for one or more post, activity, or article URLs.

Support

Use the Issues tab on the Actor page for failed public videos, missing formats, or feature requests. Include the run ID and video URL when reporting a problem.