Skip to main content

ViDownload is a fast and flexible command-line video downloader built with Python and powered by yt-dlp. It allows users to download videos or extract audio (MP3) from URLs with support for multiple resolutions, audio bitrates, batch downloads, and parallel processing. The tool also provides automatic ZIP packaging for multiple downloads and an interactive terminal interface for ease of use.

Project description

🎬 VidDownload

VidDownload is a powerful and user-friendly command-line tool for downloading videos and audio from the internet using Python and yt-dlp.

It supports batch downloads, multiple resolutions, MP3 extraction, and parallel processing — all from a simple terminal interface.


🚀 Features

  • 📥 Download videos in multiple resolutions (Best, 480p, 720p, 1080p)
  • 🎵 Extract audio as MP3 with selectable bitrate
  • ⚡ Parallel downloads for faster performance
  • 📦 Automatic ZIP packaging for multiple downloads
  • 📁 Choose custom save locations
  • 🧠 Smart progress tracking with ETA and speed
  • 🖥️ Simple interactive CLI experience

📦 Installation

pip install vid-downlod

Make sure you also have ffmpeg installed on your system.


▶️ Usage

Run directly from terminal:

vid-downlod

🧭 How It Works

  1. Enter number of files to download

  2. Paste video URLs

  3. Choose format:

    • MP4 (video)
    • MP3 (audio)
  4. Select:

    • Resolution (for video)
    • Bitrate (for audio)
  5. Choose save location

  6. Sit back while downloads run in parallel 🚀


⚙️ Supported Options

🎥 Video Resolutions

  • Best
  • 480P
  • 720P
  • 1080P

🎵 Audio Bitrates

  • 128 kbps
  • 192 kbps
  • 256 kbps
  • 320 kbps

📁 Output Behavior

  • Single file → saved directly to chosen directory
  • Multiple files → downloaded into a temp folder and zipped automatically

🧱 Project Structure

  • download.py → Core download logic using yt-dlp
  • main.py → CLI interface and orchestration
  • zip_files.py → Handles ZIP creation

⚡ Performance

ViDownload uses:

  • ThreadPoolExecutor for parallel downloads
  • Smart progress hooks to reduce UI spam
  • Efficient file handling and cleanup

⚠️ Requirements

  • Python 3.8+
  • yt-dlp
  • ffmpeg (required for audio/video processing)

🛠️ Example Workflow

How many files do you want to download?: 2

Enter URL #1: https://...
Enter URL #2: https://...

Download as:
1. MP4
2. MP3

Select resolution / bitrate...

✅ Downloads complete
📦 Zip complete

❗ Disclaimer

This tool is intended for educational and personal use only. Please ensure you comply with the terms of service of the content providers you use.


❤️ Contributing

Pull requests and suggestions are welcome!


📄 License

GNU License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vid_download-0.1.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vid_download-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file vid_download-0.1.0.tar.gz.

File metadata

  • Download URL: vid_download-0.1.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for vid_download-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3fa0ef7eee004b918aa2d43b36e81c3d469d06e2ac10b4967ed29fa6d152684
MD5 d423f770d54ebd4c7b519b220b2e55d4
BLAKE2b-256 19b640312e6de1a98ab83c26eccd6effc84445faf32601335c0ebbbdaa9ea701

See more details on using hashes here.

File details

Details for the file vid_download-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vid_download-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for vid_download-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab7c556c36a3add1efeee9a1dde7db66f3c9648861e25854a90d42189d5816a6
MD5 0c42c9f4eb15e4aaf6717c88362d2ace
BLAKE2b-256 ea7853600d6d5ddb5f136c042d3496de0437f52646fcb57fbccee3ee52fa75ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page