Add any social profile / channel / page
Paste any YouTube channel, Instagram profile, Facebook page, LinkedIn page, or direct video URL. yt-dlp handles all of these natively.
Profile queue 0 ✓ SAVED
🔗
No profiles added yet.
Generated command
Command Prompt
Add profiles above to generate commands.
Download mode
Download all: fetches every video from the profile/channel. Use date filters or playlist flags below to limit scope.
Format & quality
Format / quality
Date limit (optional)
Output folder
Filename template
Custom template (editable)
Extra flags
Saved presets 0
🕓
No history yet — generate commands in the Output tab and they'll appear here.
History is stored in your browser's local storage. Clear all history
Quick page scan
⚠️ Works for public pages with static HTML (YouTube, generic sites). LinkedIn, Instagram, and Facebook require login — use 🎭 Playwright mode for those.
About

KZ Downloader is a browser-based GUI that generates ready-to-run yt-dlp commands — no command-line knowledge required. Paste any YouTube channel, Instagram profile, Facebook page, LinkedIn company page, Twitter/X account, TikTok video, or any URL that yt-dlp supports, configure your preferred format and output folder, and the app instantly assembles the correct download command for you to copy or run.

The app runs entirely in your browser — nothing is uploaded or stored on a server. All profiles, settings, history, and presets are saved in your browser's localStorage, scoped to your device. The actual downloading is performed by yt-dlp on your own machine; KZ Downloader is purely a command-builder and queue manager.

Use the Profiles tab to add URLs and generate commands, History to search and re-queue past downloads, Presets to save channel shortcuts, Scanner to discover media on any page (including login-gated pages via the Playwright mode), and Settings to configure format, quality, output path, filename template, and extra yt-dlp flags. The device selector in the top-right corner adapts the generated commands and interface to Windows, macOS, Linux, Android (Termux), or iOS.

⚡ Quick Install — Already have Python?
If Python is already installed on your machine, skip the per-OS steps below. Download requirements.txt and run two commands — that's it.
1
Download requirements.txt
⬇ Download requirements.txt — save it anywhere in the system (preferably in the KZ Downloader folder) .
2
Install Python dependencies
Open a terminal in the folder where you saved the file and run:
pip install -r requirements.txt
Then set up the Playwright browser (needed for the Scanner tab):
playwright install chromium
3
Install FFmpeg (system-level — required)
FFmpeg cannot be installed via pip. Use the command for your OS:
Windows:
winget install ffmpeg
macOS:
brew install ffmpeg
Linux:
sudo apt install ffmpeg -y
Android (Termux):
pkg install ffmpeg
Confirm it worked:
ffmpeg -version
You're ready! Go to the Profiles tab, add a URL, and generate your first command.
Operating System
1
Install Python 3.10+
Download from python.org/downloads. During install, tick "Add Python to PATH" — this is required. Verify in CMD:
python --version
2
Install yt-dlp
Open Command Prompt (Win+R → cmd) and run:
python -m pip install yt-dlp
To update later:
python -m pip install -U yt-dlp
3
Install FFmpeg (required for merging video+audio)
Download from ffmpeg.org (Windows build by BtbN or gyan.dev). Extract the zip, copy the bin folder path, and add it to your System PATH (Search → "Environment Variables" → Path → New). Verify:
ffmpeg -version
4
Optional: install browser cookies support
Required for LinkedIn, private Instagram, and age-restricted content.
python -m pip install yt-dlp[default]
5
Test it
python -m yt_dlp --version
You're ready! Go to the Profiles tab, add a URL, and generate your first command.
1
Install Homebrew
Homebrew is the package manager for macOS. Open Terminal (Spotlight → Terminal) and run:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Follow the prompts — it will ask for your macOS password. When done, verify:
brew --version
⚠️ On Apple Silicon (M1/M2/M3), Homebrew installs to /opt/homebrew/ instead of /usr/local/. The installer will print a command to add to your shell profile (~/.zprofile) — run it, then restart Terminal, or commands won't be found.
2
Install Python 3
macOS ships with an old system Python — install a current version via Homebrew:
brew install python
Verify. On macOS, Homebrew registers it as python3:
python3 --version
Also confirm pip is available:
pip3 --version
You should see Python 3.12.x and pip 24.x. If either says "not found", restart Terminal — Homebrew needs a fresh shell session to update PATH.
3
Install FFmpeg
Required for merging separate video and audio streams (needed for 1080p+ on YouTube):
brew install ffmpeg
Verify:
ffmpeg -version
4
Install yt-dlp
Via Homebrew (recommended — stays updated with brew upgrade):
brew install yt-dlp
Or via pip3:
python -m pip install yt-dlp
Verify:
python -m yt_dlp --version
5
Optional: cookie support (LinkedIn, private content)
python -m pip install yt-dlp[default]
6
Update everything later
brew upgrade python ffmpeg yt-dlp
You're ready! Go to Profiles → add a URL → generate your command.
1
Install Python 3, pip & FFmpeg
Open a terminal and run:
sudo apt update && sudo apt install python3 python3-pip ffmpeg -y
Verify Python and pip:
python3 --version && pip3 --version
On non-Debian distros (Fedora, Arch, etc.) replace apt with dnf or pacman -S.
2
Install yt-dlp
python -m pip install yt-dlp
Or the standalone binary (always latest):
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && sudo chmod a+rx /usr/local/bin/yt-dlp
3
Verify
python -m yt_dlp --version && ffmpeg -version
You're ready! Go to Profiles → add a URL → generate your command.
yt-dlp runs natively on Android via Termux — a full Linux terminal emulator. Install it once, then use KZ Downloader to generate commands, copy them, and paste into Termux.
1
Install Termux from F-Droid
Download from f-droid.org/packages/com.termux — the Google Play version is outdated and unsupported. Install the APK, open Termux, and update packages:
pkg update && pkg upgrade -y
2
Install Python, pip & FFmpeg
pkg install python ffmpeg -y
Verify:
python --version && ffmpeg -version
3
Install yt-dlp
python -m pip install yt-dlp
Verify:
python -m yt_dlp --version
4
Grant storage access (save to Downloads)
Run this once — it shows an Android permission prompt to allow Termux access to your phone's storage:
termux-setup-storage
Then set your output folder in Options to:
/sdcard/Download/KZ Downloads
5
Run commands from KZ Downloader
Add your URLs in Profiles → Output tab → tap 📋 Copy or 📤 Share → switch to Termux → paste → Enter.
You're ready! Downloads land in your phone's Downloads folder.
6
Update yt-dlp later
python -m pip install -U yt-dlp
⚠️ yt-dlp cannot run natively on iOS — Apple's sandbox prevents executing arbitrary binaries. However, there are two practical workflows:
A
SSH into a Mac or Linux machine
If you have a Mac, Linux server, or Raspberry Pi with yt-dlp installed, you can SSH into it from your iPhone and run commands there. Good SSH clients for iOS:
Generate your command in KZ Downloader → Copy → paste in your SSH client terminal.
B
Use a-Shell (limited, experimental)
a-Shell is a terminal emulator for iOS that includes Python. yt-dlp can be installed but FFmpeg is unavailable, so only audio-only or pre-merged formats work. Not recommended for video.
python -m pip install yt-dlp
Without FFmpeg, 1080p/720p video+audio merging will fail. Use format best[ext=mp4] in Options instead.
C
Self-hosted remote server
Run yt-dlp on a VPS, NAS, or home server and trigger downloads remotely via SSH or a web UI like YoutubeDL-Material. KZ Downloader generates the commands; you paste them via SSH from iOS.
Tip: set your output folder in Options to the server's download path, not a local iOS path.
Your first download — step by step
1
Complete the one-time setup
Follow the Setup Guide above for your operating system to install Python, FFmpeg, and yt-dlp. You only need to do this once. To confirm everything is ready, run:
python -m yt_dlp --version
If you see a version number, you're ready to go.
2
Select your device
Use the device selector in the top-right corner of the app to choose your OS (Windows, Mac, Linux, Android, or iOS). KZ Downloader auto-detects your device on first load, but you can switch at any time. The generated commands, action buttons, and output path defaults all update automatically.
3
Configure your settings (optional)
Go to the Settings tab and set your preferred output folder, video format/quality, and filename template. These settings persist across sessions. Common choices:
Best (video + audio) — highest quality, requires FFmpeg for merging.
1080p max — cap at 1080p; good balance of quality and file size.
Audio only (best) — extract audio only, no video.
4
Add a URL in the Profiles tab
Go to the Profiles tab. Paste any supported URL — a YouTube channel, an Instagram profile, a single video, or any page yt-dlp supports — into the input field and click + Add. The platform is detected automatically and shown as a coloured badge.
You can add multiple URLs at once; they queue up and are included in a single generated command.
5
Copy or run the generated command
The generated yt-dlp command appears instantly in the Generated command panel below the queue. From here you can:
📋 Copy — copy the command to your clipboard and paste it into your terminal or Termux.
⬇ Download file — save as a .bat (Windows) or shell script to run later.
▶ Launch in CMD — (Windows only) opens a CMD window and runs the command immediately.
6
Run the command and find your downloads
Paste or run the command in your terminal. yt-dlp will begin downloading videos to the output folder you configured in Settings. Progress prints to the terminal — you can close it once it finishes.
Downloads land in your configured output folder. On Windows the default is D:/KZ Downloads; on Android it's /sdcard/Download/KZ Downloads. Change this any time in Settings → Output folder.
Tips & common questions
LinkedIn / private Instagram: These require an authenticated session. Enable Use cookies (Chrome) in Settings → Extra flags, or use the Scanner → Playwright tab for a persistent login session.
Downloading a single video vs. a full channel: Paste the video URL directly for a single video. For a full channel, paste the channel or profile URL — yt-dlp will fetch every video automatically. Use the Date limit in Settings to restrict by upload date.
Saving presets: Go to the Presets tab to save frequently used channels. Click any preset to instantly add it to the queue without re-pasting the URL.
Exporting history: Every URL and command you generate is logged in the History tab. Use Export selected to save a backup, or Re-queue to push an old entry back into Profiles.
Updating yt-dlp: Sites change their formats regularly — keep yt-dlp up to date. Run python -m pip install -U yt-dlp periodically to get the latest version.