Skip to content

September 23, 2026 · 13 min read

YouTube Video Downloader: 126 of 131 Runs Succeeded (2026)

By Crawlerbros Engineering Team

Each downloaded record delivers 24 fields comprising title, description, view counts, upload dates, and direct public download links for the processed media. This Actor processes single video URLs, entire playlists, and full channel listings while supporting resolutions from 360p up to the best available quality. The free-plan price is $10.00 per 1,000 results, and an optional metadata-only mode skips video file transfers for rapid research tasks. Apify's free plan includes $5.00 of monthly usage with no credit card, covering up to 500 results of this Actor. It is built for engineers and creators needing reliable local archives and structured metadata, and it is not for anyone who requires automated channel management or comment moderation.

Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 500 results at $0.01 each before platform usage. Open YouTube Video Downloader on Apify and run the prefilled example.

How reliable is YouTube Video Downloader in production?

Across the last 30 days of public runs on the Apify platform, YouTube Video Downloader recorded 131 runs with the following outcomes.

Outcome Runs Share
Succeeded 126 96.2%
Failed 0 0.0%
Aborted by the user 5 3.8%
Timed out 0 0.0%
Total 131 100.0%

No run failed or timed out in the last 30 days. The five runs that did not finish were stopped by the people who started them, which is not a fault to alert on. Keep a retry in place all the same: a clean month is a record, not a guarantee.

What does it cost to run YouTube Video Downloader?

Each result costs $0.01 on Apify's free plan, which is $10.00 per 1,000 results. Starting a run is charged separately at $0.05 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

Apify plan Per result Per 1,000 results
FREE $0.01 $10.00
BRONZE $0.00833 $8.33
SILVER $0.00667 $6.67
GOLD $0.005 $5.00
PLATINUM $0.005 $5.00
DIAMOND $0.005 $5.00

Worked example: collecting 10,000 results costs $100.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.

The length of your URL arrays and the maxVideosPerInput control are the main drivers of the result bill. To test your setup cheaply, run with a single target and keep video counts low before launching large channel archives.

How do you run YouTube Video Downloader from the API?

None of its 10 controls is strictly required, so the defaults below produce a valid run on their own. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.

Call the synchronous endpoint to start a run and receive dataset items in one request:

curl -X POST "https://api.apify.com/v2/acts/crawlerbros~youtube-video-downloader/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"videoUrls":["https://www.youtube.com/watch?v=3Gmo0EXHyKg"],"videoQuality":"1080p","downloadSubtitles":false,"maxVideosPerInput":10,"proxyCountry":"US","extractMetadataOnly":false,"subtitleLanguages":["en"]}'

The same run from Python, using the official client:

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
  "videoUrls": [
    "https://www.youtube.com/watch?v=3Gmo0EXHyKg"
  ],
  "videoQuality": "1080p",
  "downloadSubtitles": False,
  "maxVideosPerInput": 10,
  "proxyCountry": "US",
  "extractMetadataOnly": False,
  "subtitleLanguages": [
    "en"
  ]
}

run = client.actor("crawlerbros~youtube-video-downloader").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

And from Node.js:

import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })

const input = {
  "videoUrls": [
    "https://www.youtube.com/watch?v=3Gmo0EXHyKg"
  ],
  "videoQuality": "1080p",
  "downloadSubtitles": false,
  "maxVideosPerInput": 10,
  "proxyCountry": "US",
  "extractMetadataOnly": false,
  "subtitleLanguages": [
    "en"
  ]
}

const run = await client.actor('crawlerbros~youtube-video-downloader').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)

The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.

Which YouTube Video Downloader inputs matter, and which can you skip?

The videoUrls, playlistUrls, and channelUrls controls determine your collection targets, while maxVideosPerInput caps the scope per source. Leave advanced settings like cookies alone unless you need to access age-restricted content.

  • videoUrls (array): YouTube video URLs to download.
  • videoQuality (string): Preferred quality. Automatically falls back to the best available quality if the chosen resolution is unavailable. We highly recommend choosing 1080p or less for resolution for keeping the cost low. Higher the quality, higher the cost. Default: "720p".
  • downloadSubtitles (boolean): Download subtitle / caption files (English) alongside the video. Default: false.
  • playlistUrls (array): YouTube playlist URLs - all videos in each playlist will be downloaded.
  • channelUrls (array): YouTube channel URLs (e.g. https://www.youtube.com/@ChannelName).
  • maxVideosPerInput (integer): Maximum number of videos to download per playlist, channel, or search query. Does not affect direct video URLs. Default: 10.
  • proxyCountry (string): Country for the residential proxy IP. Change this if a video is geo-blocked in the default country. Default: "US".
  • extractMetadataOnly (boolean): When enabled, extracts video metadata (title, description, view count, etc.) without downloading the actual video file. Much faster and uses no storage. Default: false.
  • subtitleLanguages (array): Language codes for subtitles to download when 'Download Subtitles' is enabled (e.g. 'en', 'es', 'fr'). Defaults to English. Default: ["en"].
  • cookies (string): Optional Netscape-format cookies.txt content for accessing age-restricted or members-only videos. Export from your browser using a cookies extension.

Fixed-choice controls: videoQuality accepts best (Best Available), 1080p, 720p, 480p, 360p, audio_only (MP3), worst (Lowest (Fastest)); proxyCountry accepts 30 values (default US), including US (United States), GB (United Kingdom), CA (Canada), AU (Australia).

What does YouTube Video Downloader return?

The returned records provide direct file links and rich metadata that suit archival and analytics workflows. They conspicuously do not include auto-generated transcripts unless caption downloads are enabled.

  • video_url: URL of the YouTube video
  • video_id: YouTube video ID
  • title: Title of the video
  • description: Video description (up to 2000 characters)
  • uploader: Channel or uploader name
  • uploader_id: Channel or uploader ID
  • uploader_url: URL of the uploader's channel
  • upload_date: Upload date (YYYY-MM-DD)
  • duration_seconds: Duration of the video in seconds
  • view_count: Number of views
  • like_count: Number of likes
  • comment_count: Number of comments
  • thumbnail: URL of the video thumbnail
  • tags: Tags associated with the video
  • categories: Categories associated with the video
  • resolution: Resolution of the downloaded video (e.g. 1920x1080)
  • filesize_bytes: File size of the downloaded video in bytes
  • download_status: Status: success, failed, or metadata_only
  • download_url: Public URL to download the video file
  • storage_key: Key of the video file in storage
  • subtitle_files: List of subtitle file keys
  • subtitle_urls: List of public URLs for subtitle files
  • error: Error message if the download failed
  • downloaded_at: Timestamp of when the download was processed

These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

How do you build the workflow end to end?

Open YouTube Video Downloader and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

  1. Open the input configuration and add your targets to videoUrls, playlistUrls, or channelUrls.
  2. Select a resolution in videoQuality, noting that resolutions above 1080p may require increasing the run memory to 2048 MB or 4096 MB.
  3. Set extractMetadataOnly to true for a trial run to verify that the titles and duration_seconds of the targeted videos are correctly identified before starting expensive file transfers.
  4. Enable downloadSubtitles and list the desired language codes in subtitleLanguages if your workflow requires caption files.
  5. Adjust maxVideosPerInput to a low value like 5 when testing broad channelUrls to avoid unexpected result charges.
  6. Check the proxyCountry setting if you are targeting videos restricted to specific regions like Japan or Germany.
  7. Submit the run and monitor the dataset for the download_url field, which provides the shareable public link for each file.

How do you apply it? Three worked playbooks

These are YouTube Video Downloader's own documented use cases, each worked through as an operating pattern rather than a description.

Use case 1: Content archival

Outcome: Back up your favorite YouTube videos or entire channels before they disappear.

Configure: Set channelUrls to the desired creator URL and maxVideosPerInput to 500.

Working method: Run the collector with videoQuality set to best to ensure the highest fidelity backup. Review the dataset for storage_key values once the run finishes to map your local archive to the stored files.

Deliverable: A dataset containing permanent download links and complete metadata for every video on the channel.

Stop condition: The download_status field returns failed for more than five consecutive records.

Use case 2: Research and analysis

Outcome: Collect video metadata (titles, descriptions, view counts, tags) at scale for content research, trend analysis, or competitive intelligence.

Configure: Enable extractMetadataOnly and provide a list of playlistUrls.

Working method: Execute a metadata-only run to bypass the storage and transfer time of video files. Analyze the tags and categories fields across the returned records to identify common themes in the content set.

Deliverable: A JSON or CSV file containing 24 metadata fields per video without any attached video files.

Stop condition: The view_count field returns null or 0 for known popular videos.

Use case 3: Media production

Outcome: Download source material for editing, compilation, or repurposing (always respect copyright).

Configure: Set videoQuality to 1080p and videoUrls to specific source clips.

Working method: Provide the exact videoUrls needed for the production. After the run, use the download_url to fetch the MP4 files directly into your editing environment.

Deliverable: High-definition video files stored in the Apify platform with accompanying description and title metadata.

Stop condition: The resolution field in the output dataset returns a value lower than the 1920x1080 required for the project.

What breaks, and how do you design around it?

  • Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

Large video files or high resolutions can trigger memory limits, so increase your Actor memory allocation when processing long clips. If geo-blocking blocks a specific target, switch the proxyCountry setting to match an allowed region.

When should you not use YouTube Video Downloader?

Do not use this Actor if you only need to analyze channel growth or search result rankings without downloading the actual video files. For high-volume channel audits, YouTube Channel Scraper is more efficient at mapping entire catalogs. If your primary goal is community sentiment, YouTube Comment Scraper provides deeper threading and author metadata. For keyword research and finding what is currently viral, YouTube Search Scraper or YouTube Trending Scraper are better suited for broader discovery than a direct downloader.

What should you check before trusting the output?

  • Verify that download_status is success; any failed status will contain a descriptive error message in the error field.
  • Check that filesize_bytes is greater than zero for all successful downloads to ensure the file was correctly written to storage.
  • Ensure duration_seconds matches the expected video length, as truncated files may occur if the run times out or exceeds memory limits.
  • Validate that download_url is present and points to a valid file in the Apify Key-Value Store.
  • Confirm that subtitle_urls is populated if downloadSubtitles was enabled, as some videos lack available captions.

None of this proves a record is correct. It gives a scheduled YouTube Video Downloader run defined points where it should stop instead of quietly passing bad data downstream.

Frequently asked questions

What is the cost for 1,000 YouTube video downloads?

On the free plan, 1,000 results cost $10.00 in result charges. Each run also incurs a start fee based on the memory allocated, such as 1024 MB or 2048 MB. You can try the Actor for free using Apify's monthly $5.00 usage credit, which covers approximately 500 results if you stay within the platform usage limits.

How reliable is this downloader for large playlists?

Recent telemetry shows 126 of 131 public runs finished successfully with zero failures and zero timeouts. When processing large playlists near the 500-video limit, ensure you increase the Actor memory to at least 2048 MB to handle the increased processing load and avoid potential mid-run crashes.

Can I get metadata without the cost of video storage?

Yes. By setting extractMetadataOnly to true, you can retrieve all 24 metadata fields, including view_count, tags, and uploader information, without downloading the video file. This method is much faster, uses no storage, and is ideal for competitive intelligence where the video file itself is not required.

What happens if I request 1080p but it is not available?

The Actor is designed to be resilient; it will automatically fall back to the next best available resolution if your preferred videoQuality is missing for a specific video. This ensures that you still receive a result for every URL in your input rather than a failure.

Does this Actor support age-restricted YouTube videos?

Yes, it can access age-restricted or members-only content if you provide valid session data. You must export cookies in Netscape format from your browser and paste them into the cookies input field. This allows the scraper to authenticate as your user profile during the download process.

Where to go next

When you are ready to run it, open YouTube Video Downloader on Apify; the free plan covers up to 500 results a month.

Start with the YouTube Video Downloader Actor page for the current input schema, pricing tier, and run history.

It is part of the YouTube Scraping Suite, which puts every related Actor on one page with its price and run history.

If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

Readers running YouTube Video Downloader commonly pair it with:

Related guides:

Resources

  • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.

  • Actor last updated by its maintainers on 2026-06-25.

  • Run outcome figures cover the 30 day public window ending 2026-09-23.

  • YouTube Video Downloader on Apify

● Featured actors

Youtube Video Downloader

Download YouTube videos, playlists, and entire channels in your preferred quality from 360p all the way up to the best available resolution. Each downloaded video is automatically stored with a shareable public link and comes with rich metadata including title, description, view counts, thumbnails.

Run on Apify ↗