YouTube Downloader Icon

YouTube Downloader

YouTube video Download Tool

GitHub Releases - Stable

Project Overview

Simple & modern YouTube Downloader to download videos, playlists, subtitles, thumbnails and search queries.

YouTube Downloader is a powerful desktop application built with Python that provides a simple and efficient way to download YouTube content. The application features a modern GUI built with Tkinter and uses pytube as the backend for reliable downloading. It supports various formats, quality options, and batch operations for both individual videos and entire playlists.

Project Stats

Stars128
Downloads200+
Duration

Key Features

  • Download videos by URL
  • Download playlists with video selection
  • Download subtitles or translate to preferred language
  • Search keywords and download from results
  • Audio-only download option
  • Selectable video qualities
  • Advanced quality settings (format codec bitrate)
  • Download thumbnails
  • Resume interrupted downloads
  • Custom download path selection

Technologies Used

Python
Tkinter / GUI
YouTube Scraping
FFmpeg
Git & GitHub

Screenshots

YouTube Downloader Home Screen YouTube Downloader Playlist Download YouTube Downloader Search Results YouTube Downloader Subtitle Options YouTube Downloader Quality Selection YouTube Downloader Download Progress YouTube Downloader Settings Page

Technical Implementation

My technical contributions to this project include (but may not be limited to):

  • Developed a modern, responsive GUI using CustomTkinter, featuring dynamic theme switching and real-time progress bars for an enhanced user experience.
  • Integrated pytubefix to handle YouTube's evolving API, implementing logic to parse video streams, extract metadata, and bypass common download restrictions.
  • Leveraged FFmpeg for high-performance post-processing, enabling the merging of high-quality video and audio streams and conversion between formats like MP4 and MP3.
  • Implemented Python Threading to offload heavy download and conversion tasks to background threads, ensuring the UI remains responsive during intensive operations.