YouTube Video & Shorts Downloader avatar

YouTube Video & Shorts Downloader

Pricing

from $2.00 / 1,000 video download (per mb)s

Go to Apify Store
YouTube Video & Shorts Downloader

YouTube Video & Shorts Downloader

Download YouTube videos and Shorts in MP4, WebM, MKV and more. Choose quality up to 4K, secure hosted download links with retention, structured JSON metadata, optional tags, chapters and transcripts. Preview costs in Estimate mode.

Pricing

from $2.00 / 1,000 video download (per mb)s

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

YouTube Video and Shorts Downloader

Download public YouTube videos and Shorts in your chosen quality and format. Each successful result includes video details, a secure download link, and optional transcripts — saved to your Apify dataset as structured JSON.

Use it for media archiving, content workflows, research, republishing pipelines, and automation — without downloading files manually or building your own downloader.


What you get

Each saved row is one video link from your input, organized into clear sections:

SectionWhat it contains
IdentityOriginal link, video ID, status, content type (video or short), and title
videoTitle, description, channel, dates, duration, views, likes, comments, thumbnails
fileDownload link, format, quality, file size, and link expiry time (when completed)
transcriptFileReference to a transcript saved with your run (when enabled and available)
messageUser-friendly status text for failed or skipped items

Results are added to the dataset as each video finishes, so you can preview progress before the run completes.

In Estimate mode, rows show projected costs instead of download links — no files are downloaded.


Quick start on Apify

  1. Open the Actor in the Apify Console.
  2. Set Run mode to Process (download videos).
  3. Add one or more YouTube links (videos or Shorts).
  4. Choose Video quality, Output format, and File storage duration.
  5. Optionally enable Detailed video information and/or Transcript.
  6. Click Start and open the Dataset tab when the run finishes.

Example input (process mode):

{
"runMode": "process",
"videoUrls": [
"https://www.youtube.com/watch?v=BfsNfFoA0J0",
"https://www.youtube.com/watch?v=q90zq1-heR4"
],
"videoQuality": "1080p",
"videoBitrate": "balanced",
"videoCountry": "US",
"outputFormat": "mp4",
"storageRetention": "1w",
"includeDetailedInfo": true,
"includeTranscript": true,
"transcriptLanguage": "auto",
"transcriptFormat": "json"
}

Example input (estimate mode — cost preview only):

{
"runMode": "estimate",
"videoUrls": ["https://www.youtube.com/watch?v=BfsNfFoA0J0"],
"videoQuality": "1080p",
"storageRetention": "1w",
"includeDetailedInfo": true,
"includeTranscript": true
}

Run modes

ModeWhat it does
ProcessDownloads videos and saves results to the dataset. You are billed only for successful deliveries and selected options.
EstimateAnalyzes your links and returns projected charges. No download and no download billing — useful for checking cost before a large run.

Estimated costs are based on video metadata (size, retention, and options). The actual Process run may differ slightly from the estimate.


Input parameters

TypeList of URLs
FormatRegular videos, Shorts, and short links
Supportedhttps://www.youtube.com/watch?v=..., https://www.youtube.com/shorts/..., https://youtu.be/...

Add one link per row. You can mix videos and Shorts in the same run.

Unsupported or invalid links are skipped with a warning; other links in the same run can still succeed.

Video quality

TypeSelect
OptionsBest available, 4K (2160p), 1440p, 1080p, 720p, 480p, 360p, 240p, 144p
Default480p

This is the maximum resolution to download. If that resolution is unavailable, the next best lower resolution is used.

Video bitrate

TypeSelect
OptionsBest quality, Balanced, Smallest file
DefaultBalanced

Within your chosen resolution, this controls file size and quality. Smallest file reduces download size and cost.

Video country

TypeSelect
DefaultUnited States

Country used to access the video. Choose the country where the video is available if it is blocked in some regions.

Output format

TypeSelect
OptionsMP4, WebM, MKV, MOV, AVI, FLV
DefaultMP4

Each downloaded file includes both video and audio.

File storage duration

TypeSelect
Options1 day, 3 days, 1 week, 2 weeks, 1 month, 3 months, 6 months
Default1 week

How long each download link stays active. Files are removed automatically when the period ends. Longer retention increases storage cost.

Detailed video information

TypeBoolean
DefaultOff

Standard details (title, thumbnail, channel, publish date, view count) are always included.

When enabled, adds extra watch-page details when available — such as tags, keywords, chapters, and metadata rows. Best suited for regular videos; Shorts may return fewer fields.

Transcript options

FieldDescription
Include transcriptSave spoken content as a separate file with your run results
Transcript languageAuto or a specific language (English, Spanish, Arabic, and more)
Transcript formatJSON, plain text (TXT), SRT, or VTT

Transcript files are saved with your run. Open them from the run’s Key-value store using the transcriptFile.key value in each dataset row.


What you will see during a run

The run log is written for end users — progress messages describe download activity only.

At the start

  • Video country: United States (or your selected country)
  • Warnings if links were skipped or free-plan limits were applied
  • Starting download for N video link(s). (process mode)
  • Estimating costs for N video link(s). No downloads will be performed. (estimate mode)

Per video (process mode)

  • {title or URL}: Queued / Preparing
  • Downloading: {title or URL}
  • Progress updates with percentage, size, speed, and ETA — for example:
    Spiderhead | Chris Hemsworth | Official Trailer | Netflix — 45% · 120.5 MB / 268.0 MB · 2.1 MB/s · ETA 1m 10s
  • Saving file: {title or URL}
  • Downloaded: {title or URL}

When a run finishes

  • Done. 3 downloaded. (with failed or skipped counts when applicable)
  • Estimate complete. 2 video(s) analyzed. (estimate mode)

If you stop a run early, finished downloads are saved and you see:
Stopping the run and saving finished downloads.

The run status bar also shows live progress — for example:
Downloading videos: 1 of 3 finished.


Output overview

Dataset structure (process mode)

  • Results are saved to a single Apify dataset
  • Each row is one input link
  • status is completed, failed, or cancelled
  • Successful rows include file.downloadUrl — use this link before file.expiresAt
  • Optional transcriptFile points to a transcript in the run key-value store

Field presence varies by video. Not every video includes tags, chapters, or transcripts. Empty arrays or null mean no data was available — not necessarily an error.

Dataset structure (estimate mode)

  • Each row has status: estimate or error
  • estimate contains projected duration, quality, and file size
  • pricing contains a cost breakdown in USD
  • No download link is provided

Output fields

Top-level identity

FieldDescription
inputUrlThe YouTube link you provided
videoIdYouTube video ID
statuscompleted, failed, cancelled, or estimate (estimate mode)
contentTypevideo or short
titleVideo title when available
messageUser-friendly status message for non-completed items
errorPresent on failed items with a plain-language explanation

video — metadata

FieldDescription
idVideo ID
titleVideo title
descriptionFull description text
channelIdChannel ID
authorChannel name
publishDatePublish date (ISO 8601)
uploadDateUpload date (ISO 8601)
categoryCategory label when available
lengthSecondsDuration in seconds
viewCountView count
likeCountLike count when available
commentCountComment count when available
thumbnailUrlMain thumbnail URL
thumbnailsList of thumbnail sizes (url, width, height)
captionsAvailableWhether captions appear to be available
embedUrlEmbed URL
isLiveContentWhether the video is live content
isUpcomingWhether the video is upcoming
isEmbeddableWhether embedding is allowed
tagsTags when detailed info is enabled
keywordsKeywords when detailed info is enabled
chaptersChapter list when available
metadataRowsExtra metadata rows from the watch page

file — download (completed items only)

FieldDescription
downloadUrlSecure link to download the video file
formatFile format (for example mp4)
qualityDelivered quality (for example 1080p)
fileSizeBytesFile size in bytes
expiresAtWhen the download link expires (ISO 8601)

transcriptFile — transcript reference

FieldDescription
keyKey in the run key-value store (for example transcript_BfsNfFoA0J0.json)
formatTranscript format (json, txt, srt, or vtt)

Estimate mode fields

FieldDescription
estimate.durationSecondsVideo duration
estimate.qualityEstimated delivery quality
estimate.fileSizeBytesEstimated file size
estimate.transcriptLikelyWhether a transcript is likely available
pricing.currencyCurrency (USD)
pricing.chargesLine items with event name, units, and amount
pricing.totalUsdEstimated total cost
pricing.disclaimerNote that estimates may differ from actual billing

Example output

The excerpts below come from a real Process run with three videos at 1080p, detailed info, and transcripts enabled. Full output is available in the run dataset.

Excerpt — short trailer with transcript

{
"inputUrl": "https://www.youtube.com/watch?v=BfsNfFoA0J0",
"videoId": "BfsNfFoA0J0",
"status": "completed",
"contentType": "video",
"title": "Spiderhead | Chris Hemsworth | Official Trailer | Netflix",
"message": null,
"video": {
"id": "BfsNfFoA0J0",
"title": "Spiderhead | Chris Hemsworth | Official Trailer | Netflix",
"author": "Netflix",
"lengthSeconds": 133,
"viewCount": 10096083,
"likeCount": 131491,
"commentCount": 3901,
"thumbnailUrl": "https://i.ytimg.com/vi/BfsNfFoA0J0/maxresdefault.jpg",
"captionsAvailable": true,
"tags": ["Netflix", "Chris Hemsworth", "Joseph Kosinski"],
"keywords": ["Netflix", "Chris Hemsworth", "Joseph Kosinski"]
},
"file": {
"downloadUrl": "https://example.com/downloads/.../video.mp4",
"format": "mp4",
"quality": "1080p",
"fileSizeBytes": 21263275,
"expiresAt": "2026-07-05T15:36:35.447856"
},
"transcriptFile": {
"key": "transcript_BfsNfFoA0J0.json",
"format": "json"
}
}

Excerpt — longer music video (larger file)

{
"inputUrl": "https://www.youtube.com/watch?v=q90zq1-heR4",
"videoId": "q90zq1-heR4",
"status": "completed",
"contentType": "video",
"title": "Coke Studio Season 10| Naina Moray| Javed Bashir & Akbar Ali feat. Aamir Zaki",
"video": {
"id": "q90zq1-heR4",
"author": "Coke Studio Pakistan",
"lengthSeconds": 611,
"viewCount": 7281276
},
"file": {
"downloadUrl": "https://example.com/downloads/.../video.mp4",
"format": "mp4",
"quality": "1080p",
"fileSizeBytes": 187250898,
"expiresAt": "2026-07-05T15:37:06.568510"
},
"transcriptFile": {
"key": "transcript_q90zq1-heR4.json",
"format": "json"
}
}

Excerpt — failed item

{
"inputUrl": "https://www.youtube.com/watch?v=invalid-example",
"videoId": null,
"status": "failed",
"title": null,
"message": "This video could not be downloaded.",
"error": "This video could not be downloaded.",
"video": null,
"file": null
}

Pricing (process mode)

This Actor uses pay-per-event pricing on Apify. You are charged only when a Process run delivers results — Estimate mode does not trigger download charges.

Typical charge types:

EventWhen it applies
Download (per MB)Data transferred while downloading each successful video
Storage (per MB-day)Hosted file storage for the retention period you selected
Detailed infoWhen detailed watch-page metadata is successfully collected
TranscriptWhen a transcript is successfully saved

You are not charged for failed or skipped videos. If you stop a run early, you are billed for data already transferred during in-progress downloads.

See the Actor’s Pricing tab on Apify for current unit prices.


Free plan limits

On the Apify free plan, the Actor automatically applies:

SettingFree limit
Video links per run1 (only the first valid link)
Video quality720p maximum
Video bitrateSmallest file
File storage duration1 day

Paid Apify plans can use the full input without these caps. If limits apply, the run log includes a short notice.

Free-plan limits do not remove pay-per-event charges on successful downloads — they only restrict input options.


Data quality and limitations

Public videos only
The Actor works with publicly available YouTube videos and Shorts. Private, members-only, or age-restricted content may fail.

Availability varies
Some videos cannot be downloaded due to region restrictions, copyright, or YouTube policy. Failed items include a plain-language message in the dataset.

Quality and format
The delivered quality depends on what YouTube offers for that video. Your selected quality is a maximum — a lower resolution may be used when necessary.

Download links expire
Each file.downloadUrl is valid until file.expiresAt. Download or copy files before the retention period ends.

Transcripts
Transcripts depend on captions being available for the video and language. Enable Include transcript and check transcriptFile in the result.

Compliance
You are responsible for using downloaded content in line with applicable laws and YouTube's Terms of Service.


Tips for best results

  1. Run Estimate first — Check projected cost before downloading many or large videos.
  2. Use Smallest file bitrate — Reduces file size and cost when maximum quality within a resolution is not required.
  3. Match video country — If a video is geo-blocked, try the country where it is normally available.
  4. Start with one link — Confirm quality and format before a large batch.
  5. Download before expiry — Save files locally or to your own storage before expiresAt.
  6. Open transcripts from the key-value store — Use the transcriptFile.key from each row.
  7. Filter the dataset by status — Export completed rows for download URLs; review failed rows separately.
  8. Schedule recurring runs — Use Apify schedules to refresh downloads or metadata on a cadence.

Frequently asked questions

Why was my link skipped?
The URL may not be a supported YouTube video or Shorts link. Check the run log for warnings.

Why did my quality change on the free plan?
Free-plan runs are capped at 720p, smallest bitrate, 1-day storage, and one link. Upgrade or use a paid Apify plan for full options.

Why is there no download link?
The video may have failed, been skipped when you stopped the run, or you used Estimate mode (which never downloads files).

Why is tags or chapters null?
Enable Include detailed video information, and note that Shorts and some videos publish fewer watch-page fields.

Why is there no transcript?
Enable Include transcript, pick a language if needed, and confirm captions exist for that video.

Can I download a whole playlist?
Add individual video or Shorts links to YouTube links. Playlist URLs are not supported directly.

Does Estimate mode charge me?
No download billing events are triggered in Estimate mode. You only pay standard Apify platform compute for the run itself.

What happens if I abort a long download?
Finished videos are saved to the dataset. In-progress downloads are billed for the data transferred up to the point the run stopped.


Support

For Actor-specific issues, use the Issues tab on the Apify store listing or contact the publisher through Apify.

For platform questions (runs, billing, API, schedules), see Apify documentation and Apify support.