DEV Community

oheyek
oheyek

Posted on

I built a Python Video Downloader for my Engineering Thesis πŸŽ“πŸŽ₯

Hello Devs! πŸ‘‹

We've all been there. You need to download a video for offline viewing or archiving. You search on Google, click on the first result, and...

🚨 Popups everywhere.
🚨 "Allow notifications to continue."
🚨 Sketchy redirects.

I recently faced a challenge: I needed to create a practical application for my Engineering Thesis (Bachelor's final project). I didn't want to build something that would just sit in a drawer. I wanted to solve a real annoyance.

So, I combined my academic requirements with a practical solution and built VidGrabber – an open-source tool written in Python to grab videos easily.

πŸš€ What is VidGrabber?

VidGrabber is a desktop utility that allows you to download videos from popular platforms. It was designed as a diploma project to demonstrate Python capabilities in handling media streams and GUI applications.

No ads, no tracking, just code.

GitHub logo oheyek / VidGrabber

Desktop application for downloading and processing YouTube content

VidGrabber Logo VidGrabber

Python Version License Platform Release Downloads

A powerful desktop application for downloading and processing YouTube content with an intuitive interface.

VidGrabber Interface

✨ Features

  • Multi-Format Downloads: Download videos (MP4), audio (MP3/WAV), thumbnails (JPG), and tags (CSV).
  • Quality Selection: Choose from available video qualities (144p to 2160p) with automatic detection.
  • Queue Management: Add multiple downloads to queue and process them in batch (up to 5 concurrent downloads).
  • Smart Path Management: Customize download locations for each file type with persistent settings.
  • Theme Customization: Switch between Dark, Light, and System themes.
  • Tag Extraction: Extract video tags and copy them directly to clipboard.
  • Cross-Platform: Works seamlessly on Windows, macOS, and Linux.
  • Auto-Updates: Automatically downloads and updates yt-dlp and ffmpeg binaries.
  • Progress Tracking: Real-time download progress with visual indicators.

πŸ› οΈ Installation

Using the Pre-built Release

  1. Download the appropriate executable for your platform from the Releases page
    • Windows: VidGrabber.exe
    • macOS: VidGrabber-macOS.zip
    • Linux: VidGrabber-Linux.tar.gz
  2. Extract…

πŸ› οΈ Tech Stack

Since this was an engineering project, I focused on clean structure and efficiency:

  • Language: Python 3.x 🐍
  • Core: yt-dlp (for robust video extraction)
  • GUI: customtkinter (for a modern look) / tkinter

✨ Key Features

  • User-Friendly Interface: Designed to be intuitive (a key requirement for my thesis).
  • High Quality: Downloads the best available resolution.
  • Audio Extraction: Option to grab just the audio (MP3).
  • Open Source: Fully transparent code.

πŸ’» How to run it

If you want to test my thesis project, you can clone the repo and run it locally.

  1. Clone the repository:

    git clone https://github.com/oheyek/VidGrabber.git
    cd VidGrabber
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run the app:

    python main.py
    

🀝 Contributions

Even though the thesis is the main milestone, I'd love to keep this project alive! If you have ideas for improvements, feel free to:

  1. Fork the repository.
  2. Create a feature branch.
  3. Submit a Pull Request!

πŸ”— Links

If you find this tool useful or just want to support a student/developer, please consider starring the repo ⭐ on GitHub. It really helps!

Thanks for reading! Happy coding! πŸ’»

Top comments (0)