Skip to content

YouTube Video Downloader

Try for free

Download public YouTube videos as MP4, MP3, and other formats. Paste a video link, choose the quality, and the file is saved with the run.

🎬 YouTube Video Downloader

Download public YouTube videos as MP4, MP3, and a dozen other formats. Paste a video link, pick a quality and a format, and get a download link for the finished file on every dataset row. No YouTube account, no cookies, and you pay only for the megabytes you download.

✨ Why use YouTube Video Downloader?

  • 🔓 No login — public videos only, with no cookies or session to manage.
  • 🎞️ Many formats — MP4, MKV, MOV, WebM, AVI, FLV for video; MP3, M4A, AAC, WAV, FLAC, OGG, Opus and more for audio only.
  • 📐 Quality control — choose 144p up to 2160p; you get the largest published stream at or below your choice (vertical shorts are matched by their short side).
  • 🔗 Ready download links — each row has a file link that works without a token for 7 days, plus direct stream links.
  • 💬 Captions — attach the captions YouTube already published with the video.
  • 🛡️ Clear errors — a bad or private link is skipped with its reason in the run status and the OUTPUT record, and the rest of the run carries on.

🎯 Use cases

  • 🗄️ Archive — keep a short public video as an MP4 for editing or backup.
  • 🎧 Audio extraction — save a soundtrack as MP3 or M4A.
  • 📦 Batch downloads — turn a list of public links into files with a download link on each row.
  • 📝 Captions — pull subtitles that are already published for research or translation.
  • 🧪 Media pipelines — feed downloaded files into your own transcoding or analysis jobs through the API.

🚀 How to use

  1. Paste one or more Video links (watch, youtu.be, shorts, or embed links).
  2. Choose Preferred quality and Preferred format.
  3. Leave Save the file on to get a download link, or turn it off to get stream links only.
  4. Click Start.
  5. Open the dataset, and download each file from downloadedFileUrl. Export the table as JSON, CSV, or Excel if you need it.

📥 Input

FieldTypeWhat it does
videosarrayPublic YouTube watch, share, shorts, or embed links. Required.
maxVideosintegerHow many links to download in this run. Default 10.
preferredQualitystring144p to 2160p. Default 720p. Largest stream at or below this size.
preferredFormatstringmp4 (default), mkv, mov, webm, avi, flv, or audio: mp3, m4a, aac, wav, flac, ogg, opus, vorbis, aiff, alac, mka.
storeInKVStorebooleanSave the file and add a link to the row. Default on.
filenameTemplatePartsarrayExtra parts after the video id in the file name. Default ["title"].
transcriptionAndSubtitlestringNONE, ALWAYS_SUBTITLES, TRANSCRIPTION_AS_FALLBACK, or ALWAYS_TRANSCRIBE.
proxyConfigurationobjectResidential by default.
{
  "videos": [
    { "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw" }
  ],
  "maxVideos": 10,
  "preferredQuality": "720p",
  "preferredFormat": "mp4",
  "storeInKVStore": true
}

MP4 and MKV keep the original streams. Other formats are converted. Audio formats save the soundtrack only.

📤 Output

Each link is one dataset row.

FieldDescription
id, title, channelName, inputVideo id, title, channel, and the link you gave.
downloadedFileUrl, fileKeyDownload link and file name in storage.
quality, format, bytes, durationSecondsDetails of the saved file.
audioOnlyUrl, videoOnlyUrlDirect stream links, which expire on YouTube's own schedule.
subtitles, transcriptionUrlCaption data when requested and published.
noteStatus note, such as the link expiry.

Real item from a test run (links shortened):

{
  "note": "The file link expires in 7 days.",
  "id": "jNQXAC9IVRw",
  "title": "Me at the zoo",
  "channelName": "jawed",
  "input": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "downloadedFileUrl": "https://api-staging.scrape.ly/v2/key-value-stores/bcb0fd16-.../records/jNQXAC9IVRw_Meatthezoo.mp4?signature=...",
  "fileKey": "jNQXAC9IVRw_Meatthezoo.mp4",
  "audioOnlyUrl": "https://rr1---sn-....googlevideo.com/videoplayback?...",
  "videoOnlyUrl": "https://rr1---sn-....googlevideo.com/videoplayback?...",
  "subtitles": null,
  "transcriptionUrl": null,
  "durationSeconds": 19,
  "quality": "240p",
  "format": "mp4",
  "bytes": 742447
}

When a link cannot be read, no row is saved for it and the rest of the run continues. The run's OUTPUT record lists it under failedInputs (input and reason), and the status message names the first reason. Reasons start with one of these codes:

CodeMeaning
INVALID_URLThe link is not a YouTube video.
VIDEO_UNAVAILABLEThe video is private, removed, or blocked.
AGE_RESTRICTEDYouTube asks for an age check.
NO_STREAMSNo public media stream was published.
DOWNLOAD_FAILEDYouTube refused the file after three tries from fresh addresses.
MUX_FAILEDThe streams could not be combined into the requested format.

💰 Pricing

$1 per 1,000 MB downloaded, which is $0.001 per megabyte, rounded up. Billing follows the media downloaded from YouTube, not the size of a converted file: an MP3 is billed from the audio that was downloaded. Rows that fail before a download are free.

Residential proxy traffic ($2 per GB) and compute are billed separately at standard rates. A download uses about 1 MB of residential traffic per MB of video, so it adds about $0.002 per MB, and the all-in price is about $0.003 per MB plus compute.

Worked example: a 100 MB video costs $0.10 in event fees plus about $0.20 of residential traffic (about 0.1 GB) plus a few cents of compute, so about $0.31 to $0.33 in total. The 19-second clip above is billed 1 MB ($0.001 in event fees); with compute and proxy the whole run costs well under one cent.

❓ FAQ

Is it legal to download YouTube videos? Only download videos you have the right to save, and follow YouTube's terms and copyright law. The actor handles public videos only.

Do I need a YouTube login or my own proxy? No login. Residential proxy is selected by default because YouTube challenges datacenter addresses. Each video uses one residential address for the whole download, and the run creates YouTube's proof-of-origin token itself, so you need no cookies.

Which quality do I get? The largest published stream at or below your choice. An old video may only offer 240p or 144p even if you ask for 720p.

Are captions included? Choose a subtitles option to attach captions when YouTube published them. Speech-to-text is not included.

How large can a file be? Files over 90 MB are not saved. The row still carries the direct stream links.

Can I use the API? Yes. Start a run and read the dataset over the API, then fetch each downloadedFileUrl.

⚠️ Limits

  • The default is 10 links per run; raise maxVideos to download more.
  • Public videos only. Private, members-only, and age-restricted videos are skipped and listed in failedInputs.
  • Live streams and premieres are not saved as files.
  • Files over 90 MB are not saved (stream links are still returned).
  • Saved file links expire after 7 days.
  • Each video gets up to three tries from fresh residential addresses. A video YouTube still refuses after that is listed in failedInputs with DOWNLOAD_FAILED and is not charged. In October 2026 tests, 126 of 126 downloads of public videos succeeded across seven runs (shorts, music videos, talks, and videos up to 65 minutes, from watch, share, shorts, embed, mobile and music links).
  • Datacenter addresses are challenged by YouTube. If you pick datacenter, the run moves to residential addresses after the first refusals.
  • Runs use residential proxy traffic, and compute time is billed on top of the event fee.
  • Speech-to-text and uploading to your own cloud bucket are not included.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.