Instad – Universal Media Downloader

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.

Good to know: If no display is detected (like in Termux or SSH), Instad automatically switches to terminal mode so you can still use all features without a GUI.

Features

Instagram Downloads

Download public posts and profiles. Detects private accounts safely.

YouTube Quality Selection

Choose Audio, 360p, 1080p, or Best available quality for downloads.

Soundgasm to MP3

Automatically converts Soundgasm audio to MP3 format.

Facebook & Reddit

Download media at the best available quality from both platforms.

Others

Download media at the best available quality from all yt-dlp supported platforms platforms.

Modern GUI

Built with customtkinter for a clean, modern interface.

Auto Terminal Mode

Automatically falls back to text mode on headless systems.

Prerequisites

Before installing Instad, make sure you have the following:

Installing ffmpeg:
  • Ubuntu/Debian: sudo apt install ffmpeg
  • Termux: pkg install ffmpeg
  • Windows: Download from ffmpeg.org

Installation

Step 1: Clone or download the repository

Get 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.

Step 2: Install dependencies

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.

Usage – GUI Mode

Launching the graphical interface

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.

Using the GUI

  1. Paste a URL from Instagram, YouTube, Soundgasm, Reddit, or Facebook into the input field.
  2. Select your preferred quality or format if prompted.
  3. Click the download button to start the process.
  4. Watch the progress bar as your media downloads.
  5. Change the download directory using the settings button if needed.
Automatic mode detection: If the script detects that no graphical display is available (common in Termux or SSH sessions), it will automatically switch to terminal mode.

Usage – Terminal Mode

Automatic terminal fallback

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:

Force terminal mode (legacy)

If you want to force terminal mode on a system with a display:

unset DISPLAY
python instad.py

Reset to GUI mode

To return to graphical mode after unsetting display:

export DISPLAY=:0

Instagram Login (Optional)

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.

Method 1: Using instaloader command

instaloader -l your_username

Enter your password when prompted. This creates a session file in the current directory.

Method 2: Using Python one-liner

python -c "from instaloader import Instaloader; L=Instaloader(); L.login(input('Username: '), input('Password: ')); L.save_session_to_file()"
Session file: The session file will be named session-your_username. Instad automatically detects and uses this file when present, allowing downloads from private profiles you follow and bypassing rate limits.
Security note: Keep your session file safe. Do not share it or commit it to public repositories. Anyone with access to this file can access your Instagram account.

Output Location

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:

Troubleshooting

Common issues and solutions

Module not found errors

If you see errors like ModuleNotFoundError, make sure all dependencies are installed:

pip install -r requirements.txt

ffmpeg not found

Install ffmpeg for your system (see Prerequisites section). Verify installation with:

ffmpeg -version

Instagram rate limit or private profile error

Create an Instagram session file (see Instagram Login section). This allows you to download from accounts you follow and helps bypass rate limits.

GUI does not start

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

Download fails or shows error

Disclaimer

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.

License

This project is licensed under the BSD 3-Clause License. See the LICENSE file in the repository for full details.