YouTube Video & Audio Downloader
Pricing
from $20.00 / 1,000 video downloadeds
YouTube Video & Audio Downloader
Download YouTube videos or extract audio (MP3) at your chosen quality, with metadata and optional subtitles. Powered by yt-dlp with residential-proxy support and bot-detection workarounds. For archiving, repurposing, datasets, and pipelines.
Pricing
from $20.00 / 1,000 video downloadeds
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Download YouTube videos, or pull just the audio as MP3, at a quality you choose. Each result comes back with metadata (title, channel, duration, views, resolution) and, if you ask for them, subtitles. It's meant for archiving, repurposing clips, and building video or audio datasets without hand-saving files one at a time.
How it works
The actor runs yt-dlp behind an Apify residential proxy, fetches the best stream at or below your quality cap, and stores each file in the run's key-value store with a public URL. YouTube bot-blocks most datacenter IPs, so residential proxy is the default and is the part that actually keeps downloads from failing.
Input
Pass either an array of urls or a single videoUrl. Everything else has a sensible default, so a list of links is enough to get going.
| Field | Required | Notes |
|---|---|---|
urls | one of urls/videoUrl | Array of YouTube watch or Shorts links. |
videoUrl | one of urls/videoUrl | A single link, if you'd rather not use an array. |
quality | no | Caps video height: 2160, 1440, 1080 (default), 720, 480, 360, or audio for audio-only. Picks the best stream at or below the cap. |
audioOnly | no | Extract MP3 instead of video. Same effect as setting quality to audio. Default false. |
subtitles | no | Also fetch subtitles/auto-captions as SRT. Default false. |
subLangs | no | Comma-separated language codes, e.g. en,es. Only used when subtitles is on. Default en. |
includeMetadata | no | Return title, channel, duration, views, upload date, resolution. Default true. |
proxyConfiguration | no | Apify proxy. Defaults to RESIDENTIAL, which is what you want here. |
Output
One dataset record per URL. A successful record has ok: true plus title, channel, durationSeconds, viewCount, uploadDate, resolution, format, and fileSizeBytes. The download itself lives in the key-value store. mediaKey is the store key and mediaUrl is a direct link to the file. When subtitles are requested, subtitles holds an array of { key, url } per language. If a single URL fails, you get ok: false with an error message and the run keeps going on the rest.
Example
{"urls": ["https://www.youtube.com/watch?v=aqz-KE-bpKQ"],"quality": "1080","subtitles": true,"subLangs": "en"}
Pricing
$0.05 per successful download, pay per result, no subscription. Failed URLs aren't charged.
Notes
Residential proxy is on by default for a reason. If you switch to datacenter IPs, expect YouTube to bot-block a lot of requests. Some videos (age-restricted, region-locked, or private) won't download regardless of proxy. Subtitle availability depends on what the channel uploaded; auto-captions exist for most videos but accuracy varies. If any step uses an AI model, that runs on your own OpenAI key.