YouTube Video Downloader
Pricing
from $2.49 / 1,000 results
YouTube Video Downloader
YouTube Video Downloader SD - YouTube Video Downloader is a powerful tool that downloads YouTube videos or audio in the quality you pick, with title, file size, format and a download link per video, from YouTube video and Shorts URLs - YouTube MP4 downloader.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Neuro Scraper
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Video Downloader - save YouTube videos and audio as MP4, WebM, MKV or M4A
The YouTube Video Downloader saves YouTube videos, Shorts or just their audio in the quality you choose. Paste links, pick a maximum resolution and a container, and every file lands in the run's key-value store with a download link.
Each video also gets a dataset row with its title, channel, duration, views, upload date, file size, resolution, codecs and the link to the stored file.
No login and no Google account. The YouTube Video Downloader works with public videos, the way a logged-out visitor watches them.
What the YouTube Video Downloader does
For every URL, the YouTube Video Downloader picks the best video and audio streams at or below your chosen quality, checks the expected file size against your limit, downloads both streams and merges them into one file.
MP4 output prefers H.264 video with AAC audio, which plays on practically every device and editor. WebM prefers VP9 with Opus, and MKV keeps the best streams as they are.
With audioOnly on, the YouTube Video Downloader saves just the audio track as an M4A file.
Who uses the YouTube Video Downloader
Video editors and content teams who need source footage they have the rights to use, in a fixed quality.
Researchers and archivists who keep copies of public videos for analysis, with the metadata next to each file.
AI and media teams who build audio or video datasets and want files plus a clean index in one run.
Marketers who repurpose their own channel's videos and Shorts into other formats.
Input fields for the YouTube Video Downloader
Only video_urls is required. The field names video_urls, video_resolution and output_format are kept from earlier versions of the YouTube Video Downloader, so saved tasks keep working.
| Field | Type | Default | Meaning |
|---|---|---|---|
video_urls | array | one example video | Video or Shorts URLs, youtu.be links or video ids |
video_resolution | select | 720 | Highest quality: best, 2160, 1440, 1080, 720, 480, 360, 240 or 144 |
output_format | select | mp4 | Container: mp4, webm or mkv |
audioOnly | boolean | false | Save the audio track only (M4A) |
maxFileSizeMb | integer | 500 | Skip videos whose selected format is larger than this |
maxItems | integer | empty | Optional cap on the number of videos |
proxyConfiguration | object | Apify RESIDENTIAL, US | Proxy used for the page and the file download |
Fields of older versions that no longer exist (cookies, output types, download mode, concurrency, file name template) are ignored when an old task still sends them.
Output of the YouTube Video Downloader
The files go to the run's default key-value store. The dataset has one row per downloaded video.
| Field | Meaning |
|---|---|
downloadUrl | Link to the stored file in the key-value store |
kvStoreKey | Record key of the file, e.g. aircAruvnKk-720p.mp4 |
fileSizeBytes, fileSizeMb | File size |
ext, quality | Container and resolution label (720p, audio) |
width, height, fps | Video frame size and frame rate |
videoCodec, audioCodec, formatId | Streams that were used |
videoId, url, title | The video |
channelName, channelId, channelUrl | The channel |
durationSeconds, viewCount, uploadDate | Video metadata |
thumbnailUrl | Thumbnail |
downloadSeconds | Time the download and merge took |
inputUrl, scrapedAt | Run context and ISO timestamp |
Export the YouTube Video Downloader dataset as CSV, JSON, Excel, XML or HTML, or read it through the Apify API.
Example row (shortened)
{"videoId": "aircAruvnKk", "title": "But what is a neural network? | Deep learning chapter 1", "channelName": "3Blue1Brown", "durationSeconds": 1120, "kvStoreKey": "aircAruvnKk-720p.mp4", "fileSizeMb": 40.64, "ext": "mp4", "quality": "720p", "width": 1280, "height": 720, "fps": 60, "videoCodec": "avc1.4d4020", "audioCodec": "mp4a.40.2", "downloadSeconds": 10.9}
How to run the YouTube Video Downloader
Open the YouTube Video Downloader, paste your video links, choose the maximum quality and the container, and press Start. When the run ends, open the dataset and click the downloadUrl of each row.
Choose a moderate quality for long videos. An 18-minute video at 720p was about 40 MB in our test, so maxFileSizeMb decides how long a video you allow before it is skipped.
Vertical Shorts are matched on their short side: a Short asked for at 480 comes as a 480x854 file, the same detail as a 480p landscape video.
Measured results of the YouTube Video Downloader
All numbers come from local test runs of the YouTube Video Downloader on a home connection, without a proxy:
- A 19-second video: 0.71 MB MP4 in 3 to 5 seconds (240p was the best that video has).
- An 18:40 video at 720p: 40.64 MB MP4, H.264 1280x720 at 60 fps with AAC stereo, in 11 to 13 seconds.
- The same video at 480p as WebM: 37.01 MB with VP9 and Opus.
- A Short at 480p as WebM: 480x854, 3.51 MB.
- Audio only: a 3:33 song as a 3.29 MB M4A in 7 to 8 seconds.
How the YouTube Video Downloader works
YouTube protects its video files: a direct link from the player page answers 403 unless the player's JavaScript challenges are solved for that session. We measured this before choosing the method.
The YouTube Video Downloader therefore uses yt-dlp, the open-source downloader, with its JavaScript challenge solver running on Deno, and ffmpeg to merge the video and audio streams. All of it ships inside the Actor.
Every dynamic value YouTube uses, such as the player script and its signature data, is read fresh on each run, so nothing in the YouTube Video Downloader is a stale constant.
YouTube Video Downloader limits, stated plainly
Our tests ran from a residential home connection. On the Apify platform the YouTube Video Downloader uses Apify's residential proxy; that path was not part of our local tests.
YouTube sometimes answers "Sign in to confirm you're not a bot" to some IP addresses. When that happens, the YouTube Video Downloader logs YouTube's exact message for that video and continues with the rest.
The file is held in memory while it is stored, so large files need a larger memory setting for the run. The Actor starts with at least 1 GB; raise it for files near your maxFileSizeMb.
The video bytes travel through the same proxy session as the page request, because YouTube ties the file links to that session. Large files therefore use proxy traffic.
Private, members-only and age-restricted videos that need a login are not downloadable. Respect copyright: download only videos you have the right to use.
YouTube Video Downloader pricing
The YouTube Video Downloader uses pay-per-event pricing: you pay per dataset row (event "result"), plus the Apify platform usage of your run. A video that fails or is skipped for size produces no row, so it is not charged as a result.
Free-plan users get up to 30 videos per run, which is enough to test the YouTube Video Downloader on real data. The current price per 1,000 results is on the Pricing tab.
Using the YouTube Video Downloader in a workflow
Chain it with the other scrapers of this family. Find videos with the YouTube Scraper or a channel's uploads with the YouTube Channel Scraper, then pass the URLs to the YouTube Video Downloader.
A webhook can notify your system when the files are ready, and Make, Zapier or n8n can move each downloadUrl into cloud storage such as Google Drive or S3 as part of your automation.
Developers call the YouTube Video Downloader from Python with the Apify API client and fetch the files straight from the key-value store:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("neuro-scraper/youtube-video-downloader").call(run_input={"video_urls": [{"url": "https://youtu.be/dQw4w9WgXcQ"}], "audioOnly": True})store = client.key_value_store(run["defaultKeyValueStoreId"])for item in client.dataset(run["defaultDatasetId"]).iterate_items():record = store.get_record(item["kvStoreKey"])open(item["kvStoreKey"], "wb").write(record["value"])
Choosing quality and container
Pick mp4 with 720 or 1080 for editing and sharing; it gave H.264 and AAC in our tests. Pick webm when you need the open VP9 and Opus codecs, and mkv when you want the best streams without any codec preference.
WebM is not automatically smaller. For the 18-minute test video, YouTube's 720p60 VP9 stream was 51.02 MB against 22.70 MB for the H.264 stream, so the YouTube Video Downloader's MP4 choice was also the lighter file.
Set audioOnly for podcasts, music analysis and speech-to-text work: the file is a fraction of the video's size.
Keeping files after the run
The key-value store of a run follows Apify's data retention for your plan. Copy files you want to keep to your own storage, for example with an integration that runs when the YouTube Video Downloader finishes.
Every dataset row keeps the kvStoreKey, so a later script can still find each file by its record name for as long as the store exists.
Related scrapers
The YouTube Video Downloader is part of a family of YouTube and social media tools by the same developer.
| Actor | What it extracts |
|---|---|
| YouTube Scraper | Search results and video data by keyword |
| YouTube Channel Scraper | Channel profile and videos |
| YouTube Playlist Scraper | Every video of a playlist |
| YouTube Shorts Scraper | Shorts of a channel or a search |
| YouTube Transcript Scraper | Full transcripts with timestamps |
| YouTube Video Details Scraper | Exact views, likes, dates and tags |
| YouTube Comments Scraper | Comments and replies of any video |
| Facebook Video Downloader | Public Facebook videos as files |
| Instagram Video Downloader | Public Instagram videos as files |
| Instagram Reels Downloader | Public Instagram Reels as files |
| Facebook Reels Downloader | Public Facebook Reels as files |
Leave a review
If the YouTube Video Downloader saved you time, please leave a star rating and a short review on the Actor page. Reviews help other users decide and tell me what to improve.
If a video did not download, open an issue with the run link; the log line for that video says why.
Frequently asked questions
Does the YouTube Video Downloader need my YouTube login?
No. The YouTube Video Downloader downloads public videos without any login or cookies.
Which quality does the YouTube Video Downloader download?
The best quality at or below video_resolution. If a video has nothing that high, you get its best available: a 19-second video in our test topped out at 240p.
Can the YouTube Video Downloader save only the audio?
Yes. Turn on audioOnly and the YouTube Video Downloader saves the audio track as M4A. A 3:33 song was 3.29 MB in our test.
Does the YouTube Video Downloader work with Shorts?
Yes. Paste the Shorts URL. Shorts are saved in their vertical shape, for example 480x854 at the 480 setting.
Where do I find the downloaded files?
In the run's default key-value store. Each dataset row has a downloadUrl to the file and a kvStoreKey with its record name.
Why was a video skipped?
Either its selected format was larger than maxFileSizeMb, which the log states with the expected size, or YouTube refused it; the log then shows YouTube's message, such as "This video is unavailable".
Can I download 4K or 1080p videos?
Choose 2160 or 1080 in video_resolution. Our tests used 720p and below, so expect larger files and longer runs at those settings, and raise maxFileSizeMb and the run memory.
What file formats can I get?
MP4, WebM or MKV for video and M4A for audio only. The dataset with the file links exports as CSV, JSON, Excel and more.
How long does a download take?
It depends on file size and connection. On our home connection the YouTube Video Downloader saved a 40.64 MB 720p file in 11 to 13 seconds, including the merge of video and audio.
Do I need my own proxy for the YouTube Video Downloader?
No. The YouTube Video Downloader uses Apify's residential proxy by default, for the page and the file download.