YouTube Video Downloader avatar

YouTube Video Downloader

Pricing

Pay per event

Go to Apify Store
YouTube Video Downloader

YouTube Video Downloader

Process one public YouTube video or Short for structured metadata, source-dependent comments, and an optional stored video file. Choose metadata-only mode or a download quality preference.

Pricing

Pay per event

Rating

1.9

(5)

Developer

TrueFetch

TrueFetch

Maintained by Community

Actor stats

3

Bookmarked

233

Total users

31

Monthly active users

14 hours ago

Last modified

Share

YouTube Video Downloader converts one public YouTube video or Short into a 39-field Dataset record and can optionally store the available video file for an API-driven workflow.

  • Its effective schema has three inputs, one required URL, and four explicit quality-mode values.
  • YouTube comment retrieval is wired to the optional max_comments limit, while comment availability still depends on the video.
  • The output contract covers 39 fields for identity, channel, engagement, media properties, comments, processing context, and the stored file URL. Run a one-result test

View API

Smallest-test risk note: use one public video with video_quality: "metadata" and omit max_comments. YouTube access and fields can change, and the effective billing configuration includes an Actor-start event, a metadata event, and metered Actor usage.

What does YouTube Video Downloader do?

YouTube Video Downloader accepts one YouTube video-page URL per run. It extracts the available public metadata into a normalized Apify Dataset item, including the video ID, title, description, thumbnail, duration, publication time, channel details, categories, tags, engagement counts, and media dimensions. When a download mode is selected and a suitable source format is available, it also places the stored file URL in the video field.

The Actor handles the data task around a specific video; it does not search YouTube, crawl a channel, expand a playlist, or accept a batch array. A standard watch URL or a public Shorts URL is the intended input shape. Private, removed, login-gated, region-restricted, or otherwise unavailable pages are outside the reliable public path.

Comments are optional. When max_comments is greater than zero, that limit is supplied to the YouTube extraction request. The result can include comment author, text, like count, and publication time, but a requested number is a ceiling rather than a guaranteed count.

How do I run YouTube Video Downloader?

Start with a video that opens publicly in a normal browser. Paste its URL into Video URL. Select metadata-only mode for a low-risk contract test; choose low, medium, or high only when you need a stored video file. Add Max Comments after the basic metadata path works.

This README uses one recognizable watch-page scenario throughout:

{
"video_url": "https://www.youtube.com/shorts/4KBAE92he8E",
"video_quality": "metadata"
}

After the run completes, open Results and inspect the Dataset item. Treat empty values as unavailable source data. If you later request a download, interpret the quality value as a preference among available formats, not a promise that the source provides a particular resolution.

The Actor does not expose an audio-only input and does not return subtitle or caption fields in its effective Dataset schema. Use the related transcription or subtitle Actor when those are the actual deliverables.

What data does YouTube Video Downloader return?

Each successful processing path writes a record with the same schema. Values remain nullable because YouTube pages and formats do not always expose every metric.

Data groupDataset fields
Processingprocessor, processed_at
Video identityid, platform, title, description, thumbnail
Channelauthor, author_id, author_url
Publication and classificationpublished_at, categories, tags
Engagementview_count, like_count, shares_count, dislike_count, comment_count
Mediaduration, width, height, fps, audio_title, audio_artist
Optional detailscomments, video

An abbreviated illustrative response for the shared example is:

{
"id": "dQw4w9WgXcQ",
"platform": "Youtube",
"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"author": "Rick Astley",
"author_url": "https://www.youtube.com/@RickAstleyYT",
"duration": 213,
"view_count": null,
"comments": [],
"video": ""
}

This block demonstrates keys and types; it is not a current metric snapshot. In metadata-only mode, video remains empty. When comments are returned, their object keys are author, text, like_count, and published_at.

Source-dependent fields also present in every item:

FieldMeaning
source_urlCanonical page URL of the item on its own platform
media_typeKind of media the source reports, such as video or audio
live_statusWhether the item is a recording, currently live, or a finished stream
availabilitySource visibility, such as public, unlisted, or needs_auth
age_limitMinimum viewer age the source enforces; zero means no restriction
languagePrimary language of the item as reported by the source
followersFollower or subscriber count of the author at processing time
is_verifiedWhether the author's account carries a verified badge
saves_countTimes viewers saved the item, on sources that expose it
file_extContainer extension of the selected media, such as mp4 or webm
file_sizeSize of the selected media in bytes, exact or approximate
subtitlesLanguage codes of published subtitle tracks; auto-captions excluded
chaptersChapter markers with title and start and end time in seconds

What inputs can I configure?

The public input surface is intentionally small:

InputRequiredContract
video_urlYesOne public YouTube video or Short URL.
video_qualityNometadata, low, medium, or high; metadata mode skips the stored file.
max_commentsNoInteger from 0 through 10,000; 0 skips comment retrieval and a positive value sets the requested ceiling.

Only the required URL has a schema prefill and example. Optional values are not silently prefilled, so integrations can omit them and preserve the user’s actual intent. Do not send an arbitrary large comment limit unless your workflow uses those records; a high ceiling can increase work without ensuring more accessible comments.

What platforms and markets does YouTube Video Downloader cover?

Coverage is limited to public YouTube video pages, including ordinary watch URLs and Shorts URLs when YouTube makes the page and media available. It has no country, language, channel, category, date, or market filter. The Actor reads the specific URL you provide rather than discovering content.

Unlisted status, age restrictions, regional rules, live-state behavior, and account requirements can affect access. A URL that worked previously may later be removed or changed. Test the precise page types your application will submit and keep failure handling in the caller.

This Actor is not a YouTube Data API replacement for channel search, playlist enumeration, quota-managed account data, or authenticated owner information. Its value is the one-video metadata and optional file workflow.

Why use YouTube Video Downloader?

The Actor gives a cloud workflow one stable response shape for a YouTube URL. Instead of coupling an application to a page layout, the application can read named Dataset fields and use Apify’s run, storage, scheduling, webhook, and API surfaces. The stored file link and metadata remain associated with the run.

Metadata-only mode supports inexpensive triage before requesting media. The explicit comment limit makes comment work opt-in. Nullable fields communicate source gaps without inventing values, while the thumbnail-first overview makes completed items easier to scan in Console.

Public usage counts provide limited evidence that people have tried the Actor, but they do not prove reliability for your URLs. The Store’s rating, user counts, and availability are external and volatile. A representative one-result test remains the decision gate.

Who is YouTube Video Downloader for?

Developers can use it behind a URL-submission endpoint, review interface, or data pipeline. Research teams can collect public metadata for a defined video sample. Content operations teams can create an authorized asset review queue. Archivists can preserve permitted public media together with source context. AI builders can obtain structured metadata before a separate transcription, classification, or summarization stage.

Low-code users can run a URL in Apify Console and export the Dataset. Automation teams can trigger runs through schedules or webhooks when repeating one known URL is meaningful.

Do not use this Actor to determine copyright permissions, bypass access controls, download private content, scrape a channel catalog, or promise permanent availability. If you need only captions, speech text, or search results, choose a purpose-built Actor instead.

How can I use YouTube Video Downloader through the API or MCP?

The Actor reference is truefetch/youtube-video-downloader, and its stable Actor ID is bamrx68ppJrF5TyOv. The API page contains generated client examples and the current OpenAPI definition.

Start the shared metadata-only scenario over HTTP:

curl -X POST "https://api.apify.com/v2/acts/truefetch~youtube-video-downloader/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"video_url":"https://www.youtube.com/shorts/4KBAE92he8E","video_quality":"metadata"}'

Apify’s hosted MCP endpoint can expose only this Actor to a compatible client:

{
"mcpServers": {
"apify-youtube": {
"url": "https://mcp.apify.com?tools=truefetch/youtube-video-downloader",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}

Ask the connected client to run truefetch/youtube-video-downloader using the same JSON scenario. Keep API tokens out of prompts and source control. Actor execution and storage access require authentication. See the official Apify MCP guide for OAuth and client-specific configuration.

How much does YouTube Video Downloader cost?

The effective local metadata defines flat pay-per-event prices. Confirm the published price before production use because the Store and repository can change independently.

Billed eventUnitCurrent price
apify-actor-startActor start event$0.01
actor_usageMetered Actor usage event$0.00001
metadataOne video processed without file download$0.10
downloadOne video processed with file download and storage$0.30

For the smallest useful example—one metadata-only URL—the declared fixed events total $0.11 for Actor start plus metadata, before any actor_usage units or other live platform charges. A download path uses the $0.30 download event in place of the $0.10 metadata event. Completed-run charge details are the final billing evidence.

No tier-specific FREE, BRONZE, SILVER, GOLD, PLATINUM, or DIAMOND prices exist in the effective metadata, so none are inferred here.

How does YouTube Video Downloader compare with alternatives?

OptionChoose it whenTrade-off
YouTube Video DownloaderYou have one public YouTube URL and need normalized metadata or the file in ApifyNo channel search, playlist expansion, audio-only option, or subtitle fields.
YouTube Data APIYou need official search, channel, playlist, or account-authorized dataCredentials, scopes, quotas, and separate media handling apply.
Video Subtitles DownloaderCaptions or subtitle files are the required outputIt solves a text-track task rather than this metadata-and-video contract.
Best Video DownloaderYour queue mixes YouTube with other supported sourcesWider source scope means less YouTube-specific positioning.

Choose against your output requirement, not the word “downloader” alone. A video file, public page metadata, subtitles, and channel discovery are distinct jobs.

What are the limits and troubleshooting steps?

Only one URL is accepted per run. Playlist, channel, search, batch, audio-only, and subtitle controls are not exposed. Media quality is source-dependent. Engagement values can be missing, and individual comments may be fewer than the requested maximum. Repeated runs create separate result records rather than deduplicating previous work.

For a failed URL, first open it without relying on an authenticated browser session. Retry with metadata mode and no comments. If that succeeds, add a small max_comments, then test the file request separately. This sequence distinguishes basic page access, comment retrieval, and media delivery.

If video is empty, verify that the request was not metadata-only and inspect the run log for availability or storage errors. If counts are null, do not convert them to zero. If a format request returns an unexpected resolution, remember that the quality field expresses a preference over the formats the source exposes.

That absence is not proof that no defects exist; attach a reproducible run ID when reporting one.

Frequently asked questions

Can it process an entire playlist?

No. The schema takes one video_url, and the documented output is one processed-video record.

Does high quality guarantee 4K?

No. It requests the best available preference; the exact video and source formats control the result.

Can it return audio only?

No audio-only value exists in the effective quality enum.

Does it return subtitles or captions?

No subtitle or caption field exists in the 39-field Dataset contract. Use Video Subtitles Downloader for that requirement.

Are comments guaranteed?

No. A positive limit requests YouTube comment retrieval, but availability and count still depend on the video and source response.

Why is a field null?

The source did not provide a usable value for that item. Nullable fields preserve this distinction.

Can I use Shorts URLs?

Public Shorts URLs are within the intended one-video scope, subject to the same source-access limits.

How do I monitor costs?

Set an appropriate maximum cost in Apify, begin with metadata mode, and review the completed run’s charge events before scheduling.

These are separate output contracts; select the Actor whose Dataset or stored file matches the downstream step.

Support

Online copy may be older than the local repository, and Store statistics can change between checks.

Include a safe reproduction URL, redacted input JSON, run ID, expected field or file, and observed result in a support request.

Run a one-result test

View API