YouTube Shorts Downloader (Fast & Lightweight) avatar

YouTube Shorts Downloader (Fast & Lightweight)

Pricing

Pay per usage

Go to Apify Store
YouTube Shorts Downloader (Fast & Lightweight)

YouTube Shorts Downloader (Fast & Lightweight)

Ultra-fast, credit-optimized YouTube Shorts downloader using yt-dlp. Runs on minimal 256MB memory, strictly validates shorts, and outputs direct MP4 downloads to Key-Value Store.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Fire Dev

Fire Dev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share


[!IMPORTANT] Shorts-Only Enforcement: This Actor is engineered specifically for YouTube Shorts ($\le 180$ seconds, vertical format). Non-Shorts and standard full-length videos ($> 180$s or horizontal 16:9 videos) are automatically rejected prior to downloading to safeguard your Apify compute credits.


🚀 Key Features

  • ⚡ Ultra-Low Resource Usage: Runs on just 256 MB of RAM without headless browsers, consuming minimal compute credits per run.
  • 🎯 Pure Shorts Focus: Pre-inspects video length and aspect ratio, skipping non-shorts before data transfer starts.
  • 📦 Direct MP4 Downloads: Automatically saves videos to Apify's Key-Value Store (SHORT_<id>.mp4) with permanent direct download URLs.
  • 📊 Comprehensive Metadata: Extracts channel data, view count, like count, comment count, duration, upload date, and thumbnail links into the default Dataset.
  • 🔄 Lossless Stream Remuxing: Leverages fast ffmpeg stream remuxing (-c copy) without re-encoding, processing short-form videos in 2–5 seconds.
  • 🛡️ Apify Proxy Ready: Integrated proxy support for handling restricted or rate-limited regions.

🏗️ Architecture & Execution Flow

flowchart TD
A["User Input (Shorts URLs)"] --> B["URL Normalization & Validation"]
B --> C{"Pre-Download Check"}
C -->|"Duration > 180s or Landscape"| D["Skip Video & Log Reason"]
D --> E["Push Skipped Status to Dataset"]
C -->|"Valid Short (<=180s)"| F["Fast Stream Download (yt-dlp)"]
F --> G["Stream Copy Remuxing (ffmpeg)"]
G --> H["Save .mp4 to Key-Value Store"]
H --> I["Push Metadata & Direct URL to Dataset"]
I --> J["Cleanup Temporary Media"]

💰 Credit & Resource Optimization

Compute units on Apify are billed by $\text{Memory (GB)} \times \text{Duration (hours)}$. Most scrapers spin up resource-heavy headless browsers (Chromium/Playwright) demanding 1 GB to 4 GB of RAM.

Runner SetupMemory AllocatedRelative Compute Units CostAverage Speed / Short
YouTube Shorts Downloader (This Actor)256 MB1x (Lowest Possible)~3 seconds
Standard Puppeteer Scraper1024 MB4x~12 seconds
Playwright Full Browser Actor2048 MB8x~18 seconds
Heavy Multi-Tab Scraper4096 MB16x~30 seconds

[!TIP] Because this Actor operates with direct HTTP stream retrieval and zero video re-encoding, you can download hundreds of Shorts for mere cents in platform credits.


⚙️ Input Configuration

ParameterTypeDefaultDescription
shortsUrlsarray[]List of YouTube Shorts URLs (https://www.youtube.com/shorts/...).
qualitystring"best"Target video resolution: best, 1080p, 720p, 480p, or audio_only.
saveVideoToKeyValueStorebooleantrueWhen true, uploads the MP4 directly into Apify's Key-Value Store.
includeMetadatabooleantrueIncludes full metadata (views, likes, author, duration) in Dataset.
proxyConfigurationobject{ "useApifyProxy": false }Optional Apify Proxy configuration.

Sample JSON Input

{
"shortsUrls": [
"https://www.youtube.com/shorts/dQw4w9WgXcQ",
"https://www.youtube.com/shorts/k9nKjQzHh6Q"
],
"quality": "best",
"saveVideoToKeyValueStore": true,
"includeMetadata": true
}

📤 Output Data

Every processed video produces a record in the default Dataset:

{
"id": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/shorts/dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up",
"duration": 58,
"uploader": "Rick Astley",
"uploaderId": "@RickAstleyYT",
"uploaderUrl": "https://www.youtube.com/@RickAstleyYT",
"viewCount": 24500000,
"likeCount": 1820000,
"commentCount": 42000,
"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
"uploadDate": "20231015",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/<STORE_ID>/records/SHORT_dQw4w9WgXcQ.mp4",
"fileSizeMb": 8.42,
"status": "SUCCESS"
}

🛠️ Local Development & CLI

# Clone or navigate to the directory
cd /root/youtube-shorts-downloader
# Validate Actor schemas
apify validate-schema
# Run Actor in cloud
apify call fire_dev/youtube-shorts-downloader -i '{"shortsUrls":["https://www.youtube.com/shorts/VIDEO_ID"]}'