About
Featured·

VidFetch - YouTube Video Downloader

A sophisticated, cross-platform desktop application for downloading YouTube videos and playlists with a modern, intuitive user interface built with Python and CustomTkinter.
PythonCustomTkinteryt-dlpFFmpegPillowrequestsPyInstaller

Overview

VidFetch is a comprehensive, cross-platform desktop application designed for downloading YouTube videos and playlists with a modern, intuitive user interface. Built with Python and CustomTkinter, it provides a seamless experience for users who want to download high-quality video content in various formats and resolutions, from 360p to 4K.

This application was created by me as a demonstration of advanced Python development skills including GUI design, multi-threading, media processing, and cross-platform compatibility.

Key Features

Video Download Capabilities

  • Multi-Format Support: Download videos in MP4, WebM, and MKV formats
  • Quality Selection: Choose from resolutions ranging from 360p to 4K (8K when available)
  • Individual Video Downloads: Download single videos with customizable quality and format options
  • Playlist Management: Comprehensive support for downloading entire playlists with selective filtering
  • Visual Previews: Integrated thumbnail viewer for immediate content verification before download

Modern User Interface

  • Dark Theme Design: Polished, dark-themed interface built with CustomTkinter
  • Responsive Layout: Clean, card-based design with intuitive navigation
  • Real-Time Progress Tracking: Live download progress with speed indicators and time remaining
  • Download Management Tab: Dedicated view for monitoring multiple concurrent downloads
  • History Management: Track and manage previously downloaded content
  • Settings Panel: Customizable preferences for download location, quality defaults, and notifications

Performance & Reliability

  • Multi-Threaded Downloads: Robust chunked file downloading with up to 8 concurrent threads
  • Intelligent Retry Logic: Automatic retry mechanism with exponential backoff for failed downloads
  • Media Muxing: Seamless integration with FFmpeg for automatic merging of high-quality video and audio streams
  • Pause/Resume Functionality: Control downloads with pause and resume capabilities
  • Error Handling: Comprehensive error handling with user-friendly error messages

Technical Stack

Core Technologies

  • Python 3.12+: Modern Python with type hints and dataclasses
  • CustomTkinter: Modern GUI framework providing beautiful, customizable widgets
  • yt-dlp: Powerful YouTube downloader library (fork of youtube-dl) - Special thanks to the creators and maintainers of yt-dlp for their excellent work
  • FFmpeg: Media processing for video/audio muxing and conversion
  • Pillow (PIL): Image processing for thumbnails and icons
  • requests: HTTP library with retry logic and session management

Architecture

The application follows a modular architecture with clear separation of concerns:

Core Module

  • downloader.py: Multi-threaded download engine with intelligent chunking
  • muxer.py: FFmpeg integration for media merging
  • youtube_client.py: YouTube API interaction
  • models.py: Data models (VideoMetadata, PlaylistMetadata)

UI Module

  • main_window.py: Main application window
  • components.py: Reusable UI components
  • download_item.py: Download progress widgets

Utils Module

  • config.py: Configuration management
  • logging.py: Logging setup
  • paths.py: Resource path resolution

Technical Achievements

  1. Advanced Download Engine: Implemented sophisticated multi-threaded downloader with intelligent chunking and automatic fallback mechanisms
  2. User Experience: Seamless integration of video metadata fetching and display with real-time progress updates
  3. Cross-Platform Compatibility: Platform-specific optimizations for Windows, macOS, and Linux
  4. Robust Error Handling: Comprehensive exception handling with user-friendly error messages

Development Highlights

  • Extensive use of type hints for better code maintainability
  • Efficient caching of icons and images
  • Proper locking mechanisms for thread-safe concurrent operations
  • Clean architecture with separation of concerns
  • Well-documented codebase with comprehensive docstrings

Project Metrics

  • Supported Formats: MP4, WebM, MKV
  • Quality Range: 360p to 4K/8K
  • Concurrent Threads: Up to 8 threads per download
  • Platform Support: Windows 10/11, macOS 11+, Linux
  • Python Version: 3.12+

UI/UX Features

  • Hero section with prominent URL input
  • Search results view with detailed video information and thumbnail preview
  • Download queue with real-time progress tracking
  • History window with grid-based view and filtering
  • Settings window with theme selection and notification preferences
  • Recent downloads section for quick access

Acknowledgments

Special thanks to the creators and maintainers of yt-dlp for providing an excellent library that makes this application possible. yt-dlp is a powerful and actively maintained fork of youtube-dl, and this project would not exist without their hard work and dedication.

Project Status

Version: 0.1.0
Status: Active Development
License: MIT


This application is designed for educational and personal archiving purposes. Users are responsible for complying with YouTube's Terms of Service and applicable copyright laws.