Instad is a Python-based yt-dlp GUI for fetching videos, playlists, clips, posts, reels, and audio from platforms supported by yt-dlp.
Caution
Please be aware that videos on platforms like YouTube may be protected by copyright (DMCA). The creator of Instad does not support, and cannot be held accountable for, any use of this application that infringes upon these legal protections.
- Download any URL supported by yt-dlp
- add multiple urls in queue
- Download playlists when present
- Choose between quality
- Paste cookies in Settings for age-restricted, private, or signed-in downloads
- Accepts Netscape
cookies.txtexports or a raw browserCookie:header - Modern GUI built with
customtkinter - Automatic fallback to TUI mode if no graphical display is available
- Python 3.13+
- ffmpeg installed and available in PATH
- Deno installed and available in PATH (for YouTube signature solving)
- Dependencies listed in
requirements.txt
git clone https://github.com/debojitsantra/instad.git
cd instad
python -m venv venv
# Windows
venv\Scripts\activate
# Linux
source venv/bin/activate
pip install -r requirements.txtWindows:
winget install Gyan.FFmpegLinux/WSL:
# Debian
sudo apt install ffmpeg -y
# Arch
sudo pacman -S ffmpeg
# Fedora
sudo dnf install ffmpegWindows
irm https://deno.land/install.ps1 | iexLinux/WSL
curl -fsSL https://deno.land/install.sh | shIf the app fails to start with a Fontconfig or font-related error, install:
## Debian
sudo apt install -y fontconfig fonts-dejavu-core fonts-liberation2
## Arch
sudo pacman -S fontconfig ttf-dejavu ttf-liberation
## Fedora
sudo dnf install fontconfig dejavu-sans-fonts liberation-fonts(Required for some Linux distributions and WSL setups.)
python instad.pyUse Settings -> Cookies for videos that require a signed-in account, such as age-restricted or private content.
Paste either:
- A Netscape
cookies.txtexport. - A raw browser
Cookie:header copied from a signed-in request.
Refresh the pasted cookies if a download fails with an authentication or age-restriction error.
Download the latest release for your platform from the Releases page:
pip install pyinstaller
# Windows
pyinstaller --noconfirm --onefile --noconsole --icon "assets/icon.ico" --add-data "assets;assets" --name instad instad.py
# Linux
pyinstaller --onefile --add-data "assets:assets" instad.pyOutput binary will be in dist/. For a custom Windows executable icon, convert assets/icon.svg to .ico and pass it with --icon path\to\icon.ico.
Releases are built automatically via GitHub Actions on every version tag push:
git tag v1.2.0.1
git push origin v1.2.0.1This triggers automated Windows (.exe) and Linux binary builds, published to GitHub Releases.
| Site | Type |
|---|---|
| Any yt-dlp supported site | Video / Audio / Playlists / Metadata supported by that extractor |





