Download photos, videos, and audio from Instagram, YouTube, Soundgasm, Reddit, and Facebook with a modern GUI or terminal interface.
Instad is a Python-based media downloader built using
instaloader and yt-dlp to provide reliable,
high-quality downloads from multiple platforms. It offers both a graphical interface
powered by customtkinter and an automatic terminal fallback
for headless systems.
Download public posts and profiles. Detects private accounts safely.
Choose Audio, 360p, 1080p, or Best available quality for downloads.
Automatically converts Soundgasm audio to MP3 format.
Download media at the best available quality from both platforms.
Download media at the best available quality from all yt-dlp supported platforms platforms.
Built with customtkinter for a clean, modern interface.
Automatically falls back to text mode on headless systems.
Before installing Instad, make sure you have the following:
sudo apt install ffmpegpkg install ffmpegGet the latest version from GitHub:
git clone https://github.com/debojitsantra/instad.git
cd instad
Or download the ZIP file from the repository and extract it.
Install all required Python libraries listed in
requirements.txt:
pip install -r requirements.txt
This will install instaloader, yt-dlp,
customtkinter, and other necessary packages.
To start Instad with the GUI, simply run:
python instad.py
The GUI window will open with a clean, modern interface where you can paste any supported URL and start downloading instantly.
When running on a system without a graphical interface, Instad automatically starts in text mode. Just run the same command:
python instad.py
Follow the on-screen prompts to:
If you want to force terminal mode on a system with a display:
unset DISPLAY
python instad.py
To return to graphical mode after unsetting display:
export DISPLAY=:0
If you encounter rate limits or want to download from private accounts you follow, you can create an Instagram session file that Instad will use automatically.
instaloader -l your_username
Enter your password when prompted. This creates a session file in the current directory.
python -c "from instaloader import Instaloader; L=Instaloader(); L.login(input('Username: '), input('Password: ')); L.save_session_to_file()"
session-your_username. Instad automatically detects and uses
this file when present, allowing downloads from private profiles you follow
and bypassing rate limits.
By default, all downloaded media is stored in the same folder where the script is located.
In GUI mode, you can change the download directory using the settings or directory selection button.
Files are organized by:
If you see errors like ModuleNotFoundError, make sure all
dependencies are installed:
pip install -r requirements.txt
Install ffmpeg for your system (see Prerequisites section). Verify installation with:
ffmpeg -version
Create an Instagram session file (see Instagram Login section). This allows you to download from accounts you follow and helps bypass rate limits.
If the GUI fails to start, Instad should automatically fall back to terminal mode. If not, try forcing terminal mode:
unset DISPLAY
python instad.py
pip install --upgrade yt-dlp
pip install --upgrade instaloader
Important: This tool is intended for personal, educational, and fair-use purposes only. Please respect content creators' rights and platform terms of service when downloading content.
Downloading copyrighted content without permission may violate laws in your jurisdiction. Use responsibly and only download content you have the right to access.
This project is licensed under the BSD 3-Clause License. See the LICENSE file in the repository for full details.