YouTube Video Downloader - MP4 & MP3 avatar

YouTube Video Downloader - MP4 & MP3

Pricing

from $0.01 / 1,000 results

Go to Apify Store
YouTube Video Downloader - MP4 & MP3

YouTube Video Downloader - MP4 & MP3

Download YouTube videos and Shorts directly to your device in MP4 or MP3 format. Supports batch downloads, quality selection from 360p to 1080p, and audio-only extraction. Powered by yt-dlp for reliable downloads. Pay per minute — only charged on successful downloads.

Pricing

from $0.01 / 1,000 results

Rating

2.0

(1)

Developer

Marielise

Marielise

Maintained by Community

Actor stats

1

Bookmarked

15

Total users

7

Monthly active users

2 days ago

Last modified

Share

YouTube Video Downloader

Download YouTube videos and Shorts directly to your device in seconds. No browser extensions, no sketchy websites, no limits on quality or quantity — just paste a URL and get a direct download link that works on any phone, laptop, or tablet. Choose MP4 video or MP3 audio, pick your quality from 360p to 4K, and batch download as many videos as you need in a single run.

Perfect for: Content creators, video researchers, educators, social media managers, podcast producers, journalists archiving source material, and anyone who needs reliable offline access to YouTube content.

Features

FeatureDescription
MP4 Video DownloadDownload full videos with audio in MP4 format, ready to play anywhere
MP3 Audio ExtractionExtract audio-only tracks as high-quality MP3 files
Quality SelectionChoose from 360p, 480p, 720p HD, 1080p Full HD, 1440p 2K, or 2160p 4K
YouTube ShortsFull support for downloading Shorts alongside regular videos
Batch DownloadsDownload multiple videos in a single run
Direct Download LinksEach file gets a public URL you can open on any device to save the file
Video MetadataGet title, duration, uploader, view count, and file size for every video
Multiple URL FormatsSupports youtube.com/watch, youtube.com/shorts, and youtu.be short links
Reliable EnginePowered by yt-dlp with ffmpeg for consistent, high-quality downloads

How to Use

Step 1: Add YouTube URLs

Paste one or more YouTube video or Shorts URLs. You can use any format:

  • https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • https://youtube.com/shorts/8wst-04IuWI
  • https://youtu.be/dQw4w9WgXcQ

Step 2: Choose Quality and Format

Select your preferred video quality (360p to 1080p) and output format (MP4 video or MP3 audio).

Step 3: Run and Download

The Actor downloads each video and provides:

  • Direct download links in the dataset and key-value store
  • Video metadata including title, duration, uploader, and file size
  • OUTPUT summary with success/fail counts and all download links

Click any download URL to save the file directly to your device.

Input Examples

Download a Single Video

Download a video in 1080p (default settings):

{
"urls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
]
}

Download Multiple Videos

Batch download several videos at once:

{
"urls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
{ "url": "https://www.youtube.com/watch?v=9bZkp7q19f0" },
{ "url": "https://www.youtube.com/watch?v=kJQP7kiw5Fk" }
],
"quality": "720"
}

Download YouTube Shorts

Works with Shorts URLs directly:

{
"urls": [
{ "url": "https://youtube.com/shorts/8wst-04IuWI" },
{ "url": "https://youtube.com/shorts/abc123XYZ" }
],
"quality": "1080"
}

Extract Audio Only (MP3)

Get just the audio track as an MP3 file:

{
"urls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
],
"format": "mp3"
}

Lower Quality for Long Videos

Use 360p or 480p for long videos to stay under the file size limit:

{
"urls": [
{ "url": "https://www.youtube.com/watch?v=LONG_VIDEO_ID" }
],
"quality": "360",
"format": "default"
}

Input Parameters

ParameterTypeRequiredDefaultDescription
urlsarrayYes-List of YouTube URLs to download. Supports regular videos, Shorts, and youtu.be links.
qualitystringNo1080Maximum video resolution: "360", "480", "720", or "1080". The best available quality up to this limit is selected.
formatstringNodefaultOutput format: "default" for MP4 video, "mp3" for audio-only extraction.
Tip: Higher quality means larger file sizes. For videos longer than 20 minutes, consider using 720p or lower to stay within the 230 MB file size limit. For very long videos (1+ hour), use 360p or extract audio with MP3 format.

Output

Dataset Output

Each downloaded video produces one record in the dataset with full metadata and a direct download link.

Success Record:

{
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"originalUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"duration": "3:33",
"uploader": "Rick Astley",
"viewCount": 1500000000,
"quality": "1080p",
"format": "MP4",
"fileSize": "45.2 MB",
"fileSizeBytes": 47395225,
"downloadUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/dQw4w9WgXcQ.mp4",
"kvStoreKey": "dQw4w9WgXcQ.mp4",
"contentType": "video/mp4",
"status": "success",
"downloadedAt": "2025-01-15T10:30:00.000Z"
}

Failed Record:

{
"videoId": "PRIVATE_ID",
"title": "Unknown",
"originalUrl": "https://www.youtube.com/watch?v=PRIVATE_ID",
"duration": "0:00",
"uploader": "Unknown",
"viewCount": 0,
"quality": "1080p",
"format": "MP4",
"fileSize": "0 B",
"fileSizeBytes": 0,
"downloadUrl": "",
"kvStoreKey": "",
"contentType": "",
"status": "failed",
"error": "This is a private video and cannot be downloaded.",
"downloadedAt": "2025-01-15T10:30:05.000Z"
}

Key-Value Store Outputs

FileFormatDescription
{videoId}.mp4MP4Downloaded video file (one per successful video download)
{videoId}.mp3MP3Extracted audio file (when using MP3 format)
OUTPUTJSONRun summary with success/fail counts and all download links

OUTPUT summary example:

{
"totalUrls": 3,
"successCount": 2,
"failedCount": 1,
"totalFileSize": "78.5 MB",
"totalFileSizeBytes": 82313011,
"quality": "1080",
"format": "default",
"processingTimeMs": 45200,
"downloads": [
{
"title": "Rick Astley - Never Gonna Give You Up",
"videoId": "dQw4w9WgXcQ",
"status": "success",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/dQw4w9WgXcQ.mp4",
"fileSize": "45.2 MB"
},
{
"title": "PSY - GANGNAM STYLE",
"videoId": "9bZkp7q19f0",
"status": "success",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/9bZkp7q19f0.mp4",
"fileSize": "33.3 MB"
},
{
"title": "Unknown",
"videoId": "PRIVATE_ID",
"status": "failed",
"error": "This is a private video and cannot be downloaded."
}
]
}

Dataset Table View

The Actor provides a clean table view in the Apify Console with these columns:

ColumnDescription
TitleVideo title
Video IDYouTube video identifier
DurationVideo length (MM:SS or HH:MM:SS)
File SizeDownloaded file size (e.g., "45.2 MB")
QualityResolution used (e.g., "1080p")
FormatMP4 or MP3
Download URLClickable link to download the file
YouTube URLLink back to the original video
Statussuccess or failed

Use Cases

Content Archiving

YouTube videos disappear. Channels get deleted, videos get taken down, and links go dead without warning. Download and preserve the content you depend on before it vanishes — in full 1080p quality, saved directly to your storage.

Offline Learning

Save educational lectures, tutorials, and course content to watch without an internet connection. Whether you're on a plane, in a remote location, or simply want to avoid buffering, your learning library travels with you.

Audio Extraction for Podcasters

Strip the audio from any YouTube video and get a clean MP3 file. Repurpose interviews, conference talks, or recorded conversations into podcast episodes, transcripts, or background research without editing software.

Research and Journalism

Collecting video evidence, archiving interviews, or documenting public statements? Download directly to your device and retain a local copy of exactly what was published, in the quality you need, when you need it.

Social Media Content Management

Managing multiple accounts or clients means staying ahead of content trends. Batch download reference videos, competitor content, or campaign material in one run rather than repeating the process one URL at a time.

API Integration

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('your-username/youtube-video-downloader').call({
urls: [
{ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' },
{ url: 'https://youtube.com/shorts/8wst-04IuWI' }
],
quality: '720',
format: 'default'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
if (item.status === 'success') {
console.log(`${item.title}: ${item.downloadUrl} (${item.fileSize})`);
} else {
console.log(`Failed: ${item.originalUrl} - ${item.error}`);
}
}

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('your-username/youtube-video-downloader').call(run_input={
'urls': [
{'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'},
{'url': 'https://youtube.com/shorts/8wst-04IuWI'}
],
'quality': '720',
'format': 'default'
})
items = client.dataset(run['defaultDatasetId']).list_items().items
for item in items:
if item['status'] == 'success':
print(f"{item['title']}: {item['downloadUrl']} ({item['fileSize']})")
else:
print(f"Failed: {item['originalUrl']} - {item['error']}")

cURL

# Start a run
curl -X POST "https://api.apify.com/v2/acts/your-username~youtube-video-downloader/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
],
"quality": "720",
"format": "default"
}'

Pricing

This Actor uses Pay Per Event pricing. You are charged per minute of video downloaded, with the rate depending on quality. You only pay for successful downloads — failed downloads are free.

Price Per Minute

QualityEvent NamePrice Per Minute
360pminute-360p$0.010
480pminute-480p$0.015
720pminute-720p$0.020
1080pminute-1080p$0.030
1440p 2Kminute-1440p$0.040
2160p 4Kminute-2160p$0.050
MP3 (audio only)minute-mp3$0.005

Cost Examples

ScenarioMinutesCost
1 Short (1 min) at 1080p1$0.03
1 music video (4 min) at 720p4$0.08
1 lecture (30 min) at 480p30$0.45
5 videos (3 min each) at 1080p15$0.45
1 video (5 min) at 4K5$0.25
1 podcast (60 min) as MP360$0.30
Tip: Lower quality and MP3 format are significantly cheaper. A 30-minute video costs $1.50 at 4K, $0.90 at 1080p, $0.30 at 360p, or $0.15 as MP3. Minimum charge is 1 minute per video. Note: 1440p and 4K use VP9 codec (YouTube does not serve H.264 above 1080p) which plays in VLC, mpv, and most modern players but may require "Continue" in QuickTime on Mac.

Performance

ScenarioTypical Run Time
1 short video (under 5 min), 720p20-40 seconds
1 short video (under 5 min), 1080p30-60 seconds
1 long video (20+ min), 720p1-3 minutes
5 videos (mixed lengths), 720p2-5 minutes
1 video, MP3 audio only15-30 seconds

Videos are processed sequentially to avoid YouTube rate limits. Run time scales linearly with the number of videos.

Limitations

  • 230 MB file size limit per video (Apify key-value store constraint). Long videos at 1080p may exceed this - use a lower quality setting for videos over 20 minutes.
  • No playlist support - each URL must point to a single video, not a playlist.
  • Private videos cannot be downloaded (no authentication support).
  • Age-restricted videos cannot be downloaded without login, which is not supported.
  • Live streams cannot be downloaded while in progress.
  • Copyright-blocked videos in certain regions may fail.
  • Videos are processed one at a time to respect YouTube rate limits.

Troubleshooting

Download failed with "file size exceeds maximum"

The downloaded file is larger than 230 MB. Solutions:

  1. Lower the quality - Switch from 1080p to 720p or 480p
  2. Use MP3 format - If you only need audio, MP3 files are much smaller
  3. Try 360p - For very long videos (1+ hour), 360p keeps files small

"Video unavailable" or "removed" error

The video no longer exists on YouTube or has been taken down by the uploader. Verify the URL works in your browser first.

"Age-restricted video" error

This Actor cannot download age-restricted content because it does not support YouTube authentication. There is no workaround for this limitation.

"Private video" error

Private videos require the owner's permission and a logged-in session. This Actor only downloads publicly available videos.

Download is slow

Video download speed depends on:

  1. Video length and quality - A 30-minute 1080p video is a large file
  2. YouTube's servers - Occasional slowdowns are normal
  3. Actor memory - The Actor uses at least 2 GB memory; increasing to 4 GB may help with large files

"Not a valid YouTube URL" error

The Actor only accepts YouTube URLs. Make sure your URL contains youtube.com or youtu.be. Supported formats:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtube.com/shorts/VIDEO_ID
  • https://youtu.be/VIDEO_ID

FAQ

How do I download the file to my device?

After the run completes, click the download URL in the dataset results. The file will download directly in your browser, just like any other file download. This works on phones, tablets, laptops, and desktops.

What quality will I actually get?

The quality setting is a maximum. If a video is only available in 720p, selecting 1080p will give you 720p. The Actor always selects the best available quality up to your chosen limit.

Can I download entire playlists?

No, this Actor downloads individual videos only. To download multiple videos from a playlist, copy each video URL separately and add them all to the urls input.

Why is the file size limit 230 MB?

Apify's key-value store has a 256 MB per-record limit. The 230 MB limit includes a safety margin. For long videos, reduce the quality or use MP3 format to stay under the limit.

How long can videos be?

There is no duration limit, but longer videos produce larger files and cost more (pricing is per minute). A 1-hour video at 1080p will likely exceed the 230 MB file size limit. For long content, use 480p or 360p, or extract audio only with MP3 format.

Am I charged for failed downloads?

No. You are only charged for successful downloads. If a video is private, removed, or fails for any reason, no charge is applied.

Does this work with YouTube Shorts?

Yes. Paste the Shorts URL directly (e.g., https://youtube.com/shorts/VIDEO_ID). Shorts are short vertical videos, so they produce small files even at 1080p.

What happens if a download fails?

Failed downloads are recorded in the dataset with a status: "failed" field and a human-readable error message explaining what went wrong. Successfully downloaded videos are unaffected by failures in the batch.

Can I use this with the Apify API?

Yes. See the API Integration section above for Node.js, Python, and cURL examples. The Actor works with all Apify integrations including webhooks, schedules, and the MCP server.

Download links point to the Apify key-value store, which retains unnamed store data for 7 days. After that, the files are deleted. Download your files promptly or use a named key-value store for longer retention.

Support

Questions or issues? We are here to help:

  • Comments: Leave a comment on the Actor page
  • Issues: Open an issue on GitHub

We respond to all feedback within 24 hours.