Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
YouTube Video & Audio Downloader icon

YouTube Video & Audio Downloader

Download YouTube videos as MP4 up to 8K, audio as MP3 or subtitles as .srt. No login or API key. You pay per megabyte delivered.

5 from 2 reviews on Apify 13,010 runs on Apify $0.005 per megabyte downloaded ($5 / 1,000)
Run this in the cloudRun on Apify →

YouTube & Creator Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust urls, videoUrl, quality (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.005 per megabyte downloaded = $5 per 1,000

You are charged forWhenPrice
Megabyte downloadedEach 1 MB of media actually delivered. Failed or skipped downloads are not charged.$0.005

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-17, and they are what you are actually charged.

Inputs

FieldWhat it doesType
urlsOne or more YouTube video links: watch, Shorts, youtu.be, live, embed or mobile links, or bare video ids. Playlist, channel and clip links are skipped and add nothing to the bill; a video link copied from inside a playlist still gives you that video.array
videoUrlA single YouTube URL (alternative to the array).string
qualityVideo quality to download, measured on the short side of the picture - 720 means 1280x720 for landscape video and 720x1280 for a vertical Short. Choose 'audio' for MP3 only. 1440p, 4K and 8K are delivered when the source provides them, otherwise the next best quality is used. You are billed per megabyte delivered, so higher qualities cost proportionally more - raise maxMegabytes for 4K/8K.string
audioOnlyExtract audio as MP3 instead of video.boolean
subtitlesAlso fetch subtitles/auto-captions as SRT.boolean
subLangsComma-separated subtitle language codes (e.g. en,es). Used when subtitles are on.string
includeMetadataReturn title, channel, duration, views, etc.boolean
maxMegabytesSafety limit per video. A video estimated above this size is skipped before anything downloads and adds nothing to the bill. 4K and 8K files are large - raise this (e.g. 5000) to allow them. One file can be at most 20,000 MB (about 20 GB), whatever you set here.integer

What you get

A structured dataset — each result includes fields like:

channeldurationSecondsfileSizeBytesformatmediaKeymediaUrlresolutiontitleuploadDateurlviewCount

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

17 ready-to-run use cases

Download YouTube Videos for OpusClip Shorts & Reels

A clean, watermark-free MP4 of any YouTube video, ready to import into OpusClip, Vizard or Klap and cut into vertical Shorts and Reels.

Archive Competitor YouTube Videos Into a Swipe File

Marketers and ad teams: save competitor YouTube videos with full metadata into an offline swipe file for creative research and ad breakdowns.

Bulk YouTube to MP3: High-Quality Music Downloads

Batch-convert a list of YouTube music videos to high-quality MP3 with track titles and metadata for an offline library or sampling crate.

Download Creative Commons YouTube Footage in HD

Creative Commons and licensed YouTube footage in HD with attribution metadata, so editors can legally reuse the clips in their own videos.

Scrape YouTube Transcripts for RAG & LLM Training

No YouTube API key needed: the captions, an MP3 of the audio and the metadata for a list of video links, ready for a RAG or fine-tuning pipeline.

Download YouTube Videos With Dual-Language Subtitles

Language learners can save any YouTube video with subtitles in two languages, comparing native and target captions offline phrase by phrase.

Back Up Your YouTube Channel Videos + Metadata

Worried about a strike? Download your own YouTube videos in 1080p with their captions, titles and upload dates, and keep a copy of your channel.

YouTube Transcripts to Repurpose Into Blog Posts

Extract the full spoken transcript and metadata from your YouTube videos, then rewrite them into blog posts, newsletters and social content.

Bulk YouTube Audio Download for ML Speech Datasets

Batch-download YouTube audio with matching subtitle transcripts and metadata to assemble a speech-recognition or audio ML training dataset.

Download YouTube Videos in 4K MP4 for Editing

4K source footage straight off YouTube at the highest available resolution, ready to drop onto a Premiere or DaVinci timeline for B-roll and reuse.

YouTube Video Details With a Small 360p Copy

Title, channel, length, view count and upload date for each YouTube link, plus a 360p copy of the video, the lowest quality on offer.

Download YouTube Videos With Multi-Language SRT Subs

Caption tracks in several languages bundled as SRT with any YouTube video download, ready for accessibility, localization or re-publishing.

Download a YouTube Conference Talk for Offline Study

Save a long YouTube conference talk or lecture with its captions and watch it offline, no buffering and no risk of the video disappearing.

Download YouTube Videos in 1080p HD as MP4

Any YouTube video saved as a full 1080p MP4 with its title, channel and view count attached. Paste a URL and run, no setup required.

Convert YouTube to MP3 Audio (No Video File)

Rip the audio off a YouTube talk, lecture or podcast and get a plain MP3 back, with no video file taking up space on your drive.

Download YouTube Subtitles as SRT (Auto-Captions)

The English captions of any YouTube video as a clean SRT file, auto-generated ones when there is no manual track, plus a small 360p copy of the video.

Download a YouTube Short as MP4

Download any YouTube Short as a ready-to-use MP4 with title, channel, duration and resolution. Small files, low cost, no login.

Related tools in YouTube & Creator Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

YouTube Video Uploader iconYouTube & Creator Tools

YouTube Video Uploader

Upload videos to your YouTube channel from a URL with OAuth. Set title, tags, category, thumbnail, privacy and publish time. $0.05 per upload.

2 use cases

AI Viral Clip Cutter — Long Video to Shorts iconYouTube & Creator Tools

AI Viral Clip Cutter — Long Video to Shorts

Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.

3 use cases

AI Text-to-Speech Voiceover iconYouTube & Creator Tools

AI Text-to-Speech Voiceover

Turn any script into an AI voiceover file: MP3, WAV, Opus or AAC. Pick the voice, speed and format. $40.00 per 1,000 voiceovers ($0.04 each).

3 use cases

Video & Audio Transcriber — Word-Level + SRT/VTT iconYouTube & Creator Tools

Video & Audio Transcriber — Word-Level + SRT/VTT

Transcribe any video or audio URL with word-level timestamps. Download SRT, VTT and TXT. The language is found for you. $0.02 per transcribed minute.

3 use cases

AI Character Reference Bank iconYouTube & Creator Tools

AI Character Reference Bank

Make a consistent AI character reference set. You get portrait, 3/4, full body, side and expression sheets, plus a character-bible prompt.

2 use cases

YouTube Channel Scraper iconYouTube & Creator Tools

YouTube Channel Scraper

Scrape videos from any YouTube channel, no login or API key. Rows carry titles, views, dates, duration, thumbnails.

Ready to run — no setup

See all YouTube & Creator Tools →

YouTube Downloader: MP4 video, MP3 audio and SRT captions from a link

Paste one watch or Shorts link, or a hundred, and each file lands in the run's key-value store with a direct link in the dataset row. Above 1080p YouTube stops keeping picture and sound in the same file, so an MP4 only exists once something merges the two streams, which is most of the work here.

The thing to know before you wire it into anything: only successful downloads become dataset rows. A run where every link failed still finishes green with an empty dataset, and the reasons are written to a separate ERRORS record, not to your rows.

InputYouTube video links of any kind, or video ids
OutputA file per video in the run's key-value store, plus one row per file
CeilingmaxMegabytes per video, 1000 by default, and 20,000 MB at most
Account neededNone from you
Price$0.005 per megabyte delivered on the Free plan, lower on paid plans

🎬 What YouTube Downloader does

It reads the video, picks the closest match to the quality you asked for, and merges the streams into one MP4. quality is the short side of the picture, so 720 means 1280x720 on a landscape video and 720x1280 on a vertical Short. If the source has nothing at that tier you get the next best one down.

resolution in the row is measured off the delivered file rather than copied off the page, so it tells you what you actually received. sourceResolution is what the video is at its best. When the run had to deliver below what you asked for, the row carries a qualityNotice saying so in plain words.

Before any bytes move it estimates the file size and compares it against maxMegabytes. Anything over is skipped with no per-megabyte charge. A file too large for the run it started in continues in a second run sized to fit, and that run's row is copied back into your results, so leave it running.

Set audioOnly (or quality: "audio") and you get an MP3 instead. Set subtitles and the captions arrive as .srt files alongside the media, one per language in subLangs.

📥 What you give it

{
  "urls": ["https://www.youtube.com/watch?v=aqz-KE-bpKQ"],
  "quality": "1080",
  "subtitles": true,
  "subLangs": "en,es",
  "maxMegabytes": 1000
}
FieldDefaultWhat it is
urlsnoneVideo links in any form YouTube gives out (watch, Shorts, youtu.be, live, embed, mobile, Music) or bare video ids. As many as you like in one run.
videoUrlnoneA single link, when an array is awkward for your caller.
quality720audio, 360, 480, 720, 1080, 1440, 2160, 4320. The number is the short side of the picture.
audioOnlyfalseMP3 instead of video. Same as asking for quality: "audio".
subtitlesfalseAlso fetch captions, auto-generated ones included, as .srt.
subLangsenComma separated codes, such as en,es. Used when subtitles is on.
includeMetadatatrueAdds title, channel, view count and upload date to the row.
maxMegabytes1000Per video size cap. A video estimated above it is skipped before anything downloads and adds nothing to the bill. Raise it for 4K and 8K.
proxyConfigurationApify defaultLeave it alone unless you have your own servers you want the run to go out through.

📤 What you get back

A real row from a real run, with the download link cut short:

{
  "ok": true,
  "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "title": "Me at the zoo",
  "channel": "jawed",
  "durationSeconds": 19,
  "viewCount": 434752282,
  "uploadDate": "20050424",
  "requestedQuality": "360",
  "resolution": "320x240",
  "sourceResolution": "320x240",
  "format": "mp4",
  "fileSizeBytes": 473976,
  "sha256": "44534ec271816888239ea5a3a3ede4050380c1b96e8ee44162b0c06f71965c5e",
  "billedMegabytes": 1,
  "mediaKey": "jNQXAC9IVRw.mp4",
  "mediaUrl": "https://api.apify.com/v2/key-value-stores/CjkO185dtX0GAeNiD/records/..."
}
FieldWhat it is
mediaKey, mediaUrlThe key in the run's store, and a direct link to the file.
sha256Checksum of the delivered file, so you can tell a truncated download from a good one.
fileSizeBytes, billedMegabytesBytes on disk, and that figure rounded up to whole megabytes.
resolution, sourceResolutionWhat you got, measured off the file, and what the source had.
qualityNoticeOnly present when the run had to deliver below the tier you asked for.
subtitlesWith subtitles: true, an array of { key, url } pairs, one per language.

uploadDate is a plain YYYYMMDD string, as YouTube gives it. Metadata fields go away entirely if you turn includeMetadata off.

🧾 Reading the output

Files live in the run's key-value store, not in the dataset. The dataset is the index: one row per file, with the link and the checksum.

Failures never reach the dataset. They collect in a record called ERRORS in the same store, as a list of { url, error }, written once at the end of the run. A dead or removed video reads This video is unavailable. there. Two things follow from that: a run that delivered nothing still reports as successful, and a run you abort or that times out loses the failure list, because it had not been written yet.

Anything in ERRORS cost you nothing per megabyte. You are billed on bytes that arrived.

▶️ How to run it

1. Open YouTube Downloader and click Try for free. 2. Paste links into YouTube URLs. 3. Pick Max quality. Leave it at 720 for a first run, then raise it once you see the file sizes. 4. Click Start. 5. Open the Key-value store tab for the files, or follow mediaUrl from the dataset row.

💰 How much does it cost?

$0.005 per megabyte delivered on the Free plan, rounded up to the next whole megabyte. It falls on the paid plans:

Apify planPer MB nowFrom 8 October 2026
Free$0.0050$0.0050
Bronze$0.0042$0.0042
Silver$0.0033$0.0033
Gold$0.0021$0.0021
Platinum$0.0012$0.0021
Diamond$0.00068$0.0021

So a 3 MB Short is about $0.015 on Free and about $0.006 on Gold.

Quality drives the bill more than anything else, because a 4K file is many times the size of the same video at 720p. A download that fails, one that is private or removed, and one your maxMegabytes skipped all cost nothing per megabyte.

💡 What people use it for

  • Pulling the audio off talks and interviews as MP3, then running it through a transcriber.
  • Archiving a channel's own uploads at a fixed quality, with sha256 proving the file arrived whole.
  • Grabbing the .srt for a video to re-cut or translate the captions.
  • Feeding clips into an editing pipeline from links a team drops into a channel.

🚧 What it does not do

  • Public videos only. Private, members-only, purchase-required and age-gated videos need a

signed-in account, and they fail.

  • Videos only. Playlist, channel and clip links are refused before anything is fetched and add

nothing to the bill. A video link copied from a playlist still gives you that video. For whole lists, use the actors below.

  • It will not warn you before delivering a lower tier than you asked for. Check resolution and

qualityNotice on the row rather than assuming the request was met.

  • A run where everything failed still reports success. Read the ERRORS record, or count rows.
  • An aborted or timed-out run loses its failure list, because ERRORS is written at the end.
  • File size follows bitrate, not just resolution. A still talking head at 1080p is a fraction of

a fast-moving clip at the same size, so set maxMegabytes by video type rather than by tier.

  • Copyright is yours to sort out. Download what you own or are allowed to use.

🧭 Which YouTube actor do you need?

If you wantUse
The video, audio or captions as a fileThis one
Just the caption text, no media fileYouTube Transcript Scraper
Every video in a playlist, as rowsYouTube Playlist Scraper
A channel's uploads, as rowsYouTube Channel Scraper
Shorts from a channel or a keywordYouTube Shorts Scraper

❓ Questions people ask

Do I need an account, cookies or an API key? No. A link is the whole input.

Am I charged for a download that failed? Not per megabyte. The charge counts bytes that arrived.

Can I download several videos in one run? Yes, put them all in urls. Each is billed on its own size.

Is there a length limit? No fixed duration. One file can be at most 20,000 MB, roughly three to four hours of 4K, and it has to fit your maxMegabytes and finish inside the run timeout (two hours by default). A large one continues in a second run.

Where do the files go? The run's key-value store. mediaUrl on each row is a direct link, and mediaKey is the store key if you would rather fetch it over the API.

Is this legal? It downloads public videos. What you then do with somebody else's copyrighted work is on you, and YouTube's terms still apply. Apify's write-up on the legality of web scraping is a reasonable starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Include the link you used, the run ID and what the ERRORS record said, and the log is enough for us to see what happened.