YouTube Video Downloader - 4K, MP4 & MP3 avatar

YouTube Video Downloader - 4K, MP4 & MP3

Pricing

from $0.05 / 1,000 video ($0.000005/mb)s

Go to Apify Store
YouTube Video Downloader - 4K, MP4 & MP3

YouTube Video Downloader - 4K, MP4 & MP3

Download YouTube videos in bulk for about $5/TB during our launch offer. Get MP4/WebM up to 4K from video and Shorts URLs, with direct links or S3 delivery. Pay only for successfully delivered video.

Pricing

from $0.05 / 1,000 video ($0.000005/mb)s

Rating

5.0

(2)

Developer

Titan Network

Titan Network

Maintained by Community

Actor stats

0

Bookmarked

62

Total users

33

Monthly active users

18 days ago

Last modified

Share

YouTube Video Downloader — Bulk MP4, WebM and 4K

Download YouTube videos and Shorts in bulk as MP4 or WebM, with quality options up to 4K when available for the source video. Get direct download links or deliver files to Amazon S3, Google Cloud Storage, or DigitalOcean Spaces.

About $5/TB — Limited-time launch offer

Pay only for successfully delivered video. No need to download or purchase a full terabyte.

Successfully delivered videoApproximate cost
1 GB$0.005
100 GB$0.50
1 TB$5.00

Successful video delivery is accumulated within each Actor run and billed at $0.00005 per 10 MB unit, rounded up. A run that delivers media has a one-unit minimum. The amounts above use decimal units (1 GB = 1,000 MB; 1 TB = 1,000 GB) and are volume comparisons, not a minimum purchase. Check the Pricing tab for current rates.

Quick start: download an MP4 video

  1. Click Try for free and paste one video URL you have permission to download.
  2. Select video output (outputType=media), MP4, and 720p for your first run.
  3. Keep the default direct-link storage option (storageType=apify); no cloud storage credentials are needed for this path.
  4. Start the run and open its Dataset or output table.
  5. Check the record's status. For a completed record, find the video in downloadFiles and open its downloadedFileUrl. Download the file while the temporary link is available, approximately 24 hours after delivery.

Once one video works, add more video URLs to the same input for a batch. Each record reports its own outcome.

MP4 input and output example

The following is a shortened input and output from a successful MP4 run recorded on September 14, 2026. The requested quality was 720p; the quality field records the request and is not a measurement of the delivered file's resolution. URL and object-key values below are illustrative replacements, not working download links. Other values are retained from the historical record.

{
"startUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],
"outputType": "media",
"quality": "720",
"format": "mp4",
"storageType": "apify"
}

The video file in this record was 548,396 bytes. Look for kind=video in downloadFiles; the accompanying metadata file is listed separately.

{
"id": "jNQXAC9IVRw",
"input": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"outputType": "media",
"quality": "720",
"format": "mp4",
"fileSizeBytes": 548396,
"downloadedFileUrl": "https://example.com/downloads/jNQXAC9IVRw.mp4",
"fileKey": "example/jNQXAC9IVRw.mp4",
"downloadFiles": [
{
"kind": "video",
"filename": "jNQXAC9IVRw.mp4",
"fileSizeBytes": 548396,
"downloadedFileUrl": "https://example.com/downloads/jNQXAC9IVRw.mp4",
"fileKey": "example/jNQXAC9IVRw.mp4",
"status": "completed"
},
{
"kind": "metadata",
"filename": "jNQXAC9IVRw.info.json",
"fileSizeBytes": 59599,
"downloadedFileUrl": "https://example.com/downloads/jNQXAC9IVRw.info.json",
"fileKey": "example/jNQXAC9IVRw.info.json",
"status": "completed"
}
],
"status": "completed"
}

For a new run, use the links in your own Dataset. Historical temporary links are not reusable. This example documents a recorded delivery, not a current link-availability or playback test.

Bulk YouTube video downloads

Add multiple YouTube video URLs, Shorts URLs, youtu.be links, or 11-character video IDs to startUrls. A run uses one output mode and one requested format/quality configuration. Duplicate video IDs are deduplicated within the run.

Submit individual video URLs or IDs; this guide does not promise automatic expansion of channel or playlist URLs. Check each Dataset record: a successful Actor run does not by itself mean that every requested video was delivered.

Successful media bytes share the same cumulative billing counter within a run. Splitting small downloads across separate runs can incur more rounding than grouping them together.

Download YouTube videos to S3

To deliver video files to your own Amazon S3 bucket, select storageType=aws and provide s3Bucket, s3Region, s3AccessKeyId, and s3SecretAccessKey in the input. Use credentials authorized to write to the selected bucket.

After the run, inspect the video entry in downloadFiles. Use its fileKey to locate the object in your bucket; a direct URL may not be returned for external storage. Keep storage credentials and private download links out of public issues and shared examples.

Google Cloud Storage (gcp) and DigitalOcean Spaces (digitalocean) are also supported. DigitalOcean requires a region. Choose the provider's input option and use the corresponding bucket, region, and credential fields. Azure is not supported. Your storage provider may charge its own storage or transfer fees.

Video formats and quality

  • MP4 or WebM for video, including standard YouTube videos and Shorts.
  • Requested quality options: 360p, 480p, 720p, 1080p, 1440p, and 2160p (4K).
  • Available quality and format depend on the source video. Selecting 4K does not create detail absent from the source.
  • Temporary direct links last approximately 24 hours. Use your own supported storage when you need to manage retention yourself.

Input reference

ParameterTypeRequiredDefaultDescription
startUrlsArray of stringsYes-YouTube URLs (watch, Shorts, youtu.be) or plain 11-char video IDs.
outputTypeStringNo"media"media (video/audio), metadata (standalone .info.json), subtitles (standalone subtitle files). One run uses exactly one mode.
qualityStringNo"720"Media/video only: 360, 480, 720, 1080, 1440, 2160. Ignored for audio/metadata/subtitles.
formatStringNo"mp4"Media only: mp4, webm (video), mp3 (audio only). Ignored for metadata/subtitles.
subtitleLanguagesArray of stringsSubtitles-1-10 language codes (e.g. en, zh-Hans) or ["all"] for every available subtitle.
subtitleFormatStringNo"vtt"srt, vtt, json3, srv1, srv2, srv3, ttml.
storageTypeStringNo"apify"apify (Titan platform storage / pre-signed links), aws, gcp, digitalocean. Azure is not supported.
s3BucketStringExternal-Bucket/container name for aws/gcp/digitalocean.
s3RegionStringNo-Storage region (us-east-1, auto, nyc3). Required for DigitalOcean.
s3AccessKeyIdStringExternal-Access key ID for external storage.
s3SecretAccessKeyStringExternal-Secret access key for external storage.
maxWaitSecIntegerNomode defaultPer-task SSE timeout in seconds (metadata/subtitles 1800, audio 7200, video 14400).
maxConcurrencyIntegerNo20Bounded concurrency (1-50) for submit + SSE worker units.

Field combination rules (sending forbidden fields returns OUTPUT_CONFIG_CONFLICT):

  • Video: outputType=media, quality, format=mp4/webm — no subtitle fields.
  • Audio: outputType=media, format=mp3, fixed quality=720 — no subtitle fields.
  • Metadata: outputType=metadata — omit quality/format and all subtitle fields.
  • Subtitles: outputType=subtitles + subtitleLanguages — omit quality and media format.

Output reference

Each processed video produces a structured dataset record with metadata and download links. The downloadFiles array is the authoritative delivery record and is always persisted in full (audio tasks include the attached .info.json; multi-language subtitles include one entry per delivered language).

FieldTypeDescription
idStringUnique YouTube video ID.
inputStringOriginal input URL provided.
titleStringVideo title.
durationSecIntegerTotal duration in seconds.
outputTypeStringmedia, metadata, or subtitles.
quality / formatStringMedia mode only.
subtitleLanguages / subtitleFormatArray / StringSubtitles mode only.
fileSizeBytes / fileSizeMBNumberMain delivered file size.
downloadedFileUrlStringMain file's direct download link (~24h retention on platform storage; may be absent when external storage only returns an object key).
fileKeyStringMain file's storage object key.
downloadFilesArrayComplete list of delivered files (kind, filename, fileSizeBytes, downloadedFileUrl, fileKey, status). Authoritative.
statusStringcompleted, failed, timeout, or skipped.
noteStringExpiration / usage instructions.

Billing details

This Actor uses Apify's Pay-Per-Event (PPE) model with a No Success, No Charge guarantee:

Delivered outputBilling eventLaunch price
Video (MP4/WebM)video-download-successAbout $5/TB delivered
Audio (MP3)audio-download-successAbout $5/TB delivered
Standalone metadatametadata-download-success$0.004 per delivered item
Standalone subtitlessubtitles-download-success$0.002 per delivered item
  • You are only charged when all of these hold: Gateway returns completed, the requested output files exist, and the Dataset row was written successfully.
  • No success event is charged for failures, timeouts, cancellations, or missing output files.
  • For billing, successful media bytes are accumulated within each Actor run and rounded up in 10 MB units. Several small files in one run share billing units; every run with successful media has a one-unit minimum.
  • Video and audio cost $0.00005 per 10 MB unit. In a partially successful batch, successful deliveries remain billable; failed items do not incur a success event.

The limited-time video and audio launch price applies across all Apify plan tiers. The live Apify Pricing tab is authoritative; other Store or platform usage draws from the same prepaid balance.

Other outputs: MP3, metadata and subtitles

Video is the main workflow above. The same Actor also supports the following modes; each run uses one output mode.

OutputWhat you getLaunch pricing
AudioMP3 audio with attached metadataAbout $5/TB delivered
MetadataStandalone .info.json without media$0.004 per successful video on the Free tier
SubtitlesAvailable manual or automatic captions in VTT, SRT, JSON3, SRV, or TTML$0.002 per successful video on the Free tier

See the Pricing tab for plan-specific metadata and subtitle rates. MP3 is the supported audio format; M4A and FLAC are not supported.

Audio input:

{ "startUrls": ["jNQXAC9IVRw"], "outputType": "media", "format": "mp3" }

Metadata input:

{ "startUrls": ["jNQXAC9IVRw"], "outputType": "metadata" }

Subtitles input (availability depends on the source video):

{
"startUrls": ["jNQXAC9IVRw"],
"outputType": "subtitles",
"subtitleLanguages": ["en"],
"subtitleFormat": "srt"
}

Subtitle mode retrieves available captions; it is not a promise to generate a new transcription from audio when captions are absent.

FAQ

Can I download YouTube videos in 4K?

You can request up to 4K (2160p). Available quality and format depend on the source video.

Can I download multiple videos in one run?

Yes. Add multiple video or Shorts URLs. Check each Dataset record for its delivery status.

Do I need to download 1 TB to get this price?

No. About $5/TB is the launch rate expressed as a volume comparison. Successful media delivery is accumulated within each run and billed in 10 MB units, rounded up. For example, a run delivering up to 10 MB of video incurs one $0.00005 video event at the current rate.

Temporary links are retained for approximately 24 hours after delivery. Download files during that period, or use your own supported cloud storage.

Does a successful run mean every video was delivered?

No. Check status and downloadFiles for each Dataset record. Successful deliveries in a partially failed batch remain billable.

Where is my video file?

Open the run's Dataset and locate the entry with kind=video in downloadFiles. Use its download URL, or its object key in your external bucket.

Support

Open an issue in this Actor's Issues tab. Include the run ID, requested format and quality, and a short description of the problem. Remove credentials and private download links before posting.

Advanced operation

Powered by Titan Network through the Titan Apify Gateway. The Actor runs with 128 MB of memory and returns storage links rather than transferring video bytes through the Actor container. Progress is reported during processing.

The default concurrency is 20 workers, configurable from 1 to 50. Per-task timeouts default to 30 minutes for metadata/subtitles, 2 hours for audio, and 4 hours for video. All URLs in one run share a batch ID for grouping.

This Actor is designed solely for archiving, offline viewing of authorized content, or educational and fair-use research. Please respect the copyright of creators and YouTube's Terms of Service when using this Actor.