Skip to content

Production-ready, enhanced version of Tyrrrz's YouTube Downloader. (Focuses on key features and origin.)

License

Notifications You must be signed in to change notification settings

JrLordMoose/EnhancedYoutubeDownloader

Repository files navigation

Enhanced YouTube Downloader

An enhanced, production-ready version of YouTube Downloader that surpasses the original in functionality, user experience, and code quality.


app-preview-main-hero-image2

 

Experience our professional landing page featuring:

  • Multi-platform support (YouTube, TikTok, Instagram, Twitter, 1,800+ sites)
  • Modern glassmorphism design with animated gradients
  • Netflix-style burned-in subtitles
  • Intelligent pause/resume and queue management

Features


ytdownloader-app-branded-preview-image

Core Features

  • ✅ Cross-platform support (Windows, Linux, macOS)
  • ✅ Download single videos, playlists, and channels
  • ✅ Multiple quality and format options
  • ✅ Subtitle support
  • ✅ Metadata tagging
  • ⚠️ Authentication for private content (not fully implemented - do not modify auth settings)

Enhanced Features

  • 🚀 Unified Queue Management - Single pane for all download states
  • 🚀 Pause/Resume Functionality - State persistence and recovery
  • 🚀 Enhanced Error Handling - User-friendly messages with actions
  • 🚀 Metadata Caching - SQLite-based cache with invalidation
  • 🚀 Drag-and-Drop Support - URLs anywhere in UI
  • 🚀 Batch Operations - Multi-select and apply settings
  • 🚀 Download Scheduling - Time-based queue execution
  • 🚀 Format Profiles - Quick presets for common scenarios
  • 🚀 Better Feedback - Toast notifications and loading states
  • 🚀 Performance Optimization - Parallel downloads, chunking, retry logic

Technology Stack

  • Framework: .NET 9.0
  • UI: Avalonia UI 11.x with Material Design
  • YouTube API: YoutubeExplode 6.5.4+
  • Media Processing: FFmpeg 7.x
  • Database: SQLite for caching
  • Testing: xUnit
  • CI/CD: GitHub Actions

Getting Started

Installation (End Users)

Windows

Download and run the installer:

  1. Download EnhancedYoutubeDownloader-Setup-v0.4.4.exe (~83 MB)
  2. Run the installer and follow the setup wizard

⚠️ Windows SmartScreen Warning

You may see a red warning screen saying "Windows protected your PC".


 

ytscreenshot23

 

This is normal and safe! The warning appears because the installer isn't digitally signed (signing costs $200-500/year). To proceed:

  1. Click "More info" on the warning screen

  2. Click "Run anyway" button that appears

  3. The installer is safe - all code is open-source and can be reviewed on GitHub

  4. Choose installation options:

    • ✅ Create desktop shortcut (default: checked)
    • ✅ Launch after installation (default: checked)
  5. Click Install and you're ready to download!

Features:

  • Professional Windows installer with desktop shortcut
  • Start Menu integration with uninstall shortcut
  • Add/Remove Programs integration
  • Custom uninstaller (uninstall.exe) in install folder
  • Smart uninstaller with optional data cleanup
  • FFmpeg + yt-dlp bundled for video download and conversion (80 MB total)
  • Dependency validation on startup with download links

Mac & macOS

Currently, Mac support is experimental. To run Enhanced YouTube Downloader on Mac:

  1. Install .NET 9.0 Runtime:

  2. Download and Run:

    # Clone the repository
    git clone https://github.com/JrLordMoose/EnhancedYoutubeDownloader.git
    cd EnhancedYoutubeDownloader
    
    # Restore dependencies
    dotnet restore
    
    # Run the application
    dotnet run --project src/Desktop/EnhancedYoutubeDownloader.csproj

Note: Full Mac installer coming soon!

Linux

To run on Linux:

  1. Install .NET 9.0 Runtime:

    # Ubuntu/Debian
    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt-get update && sudo apt-get install -y dotnet-runtime-9.0
    
    # Fedora/RHEL
    sudo dnf install dotnet-runtime-9.0
    
    # Arch Linux
    sudo pacman -S dotnet-runtime
  2. Download and Run:

    # Clone the repository
    git clone https://github.com/JrLordMoose/EnhancedYoutubeDownloader.git
    cd EnhancedYoutubeDownloader
    
    # Restore dependencies
    dotnet restore
    
    # Run the application
    dotnet run --project src/Desktop/EnhancedYoutubeDownloader.csproj

Note: FFmpeg will be automatically downloaded on first run.

Building from Source

Prerequisites

  • .NET 9.0 SDK
  • PowerShell (for FFmpeg download)
  • Inno Setup 6+ (optional, for building Windows installer)

Build Steps

  1. Clone the repository:
git clone https://github.com/JrLordMoose/EnhancedYoutubeDownloader.git
cd EnhancedYoutubeDownloader
  1. Restore dependencies:
dotnet restore
  1. Build the solution:
dotnet build
  1. Run the application:
dotnet run --project src/Desktop/EnhancedYoutubeDownloader.csproj

Building for Distribution

Standard Distribution

dotnet publish -c Release -r win-x64 --self-contained
dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r osx-x64 --self-contained

Windows Installer

Build a professional Windows installer with desktop shortcut and launch options:

Automated Build (PowerShell):

.\build-installer.ps1

Manual Build:

# 1. Publish self-contained application
dotnet publish src/Desktop/EnhancedYoutubeDownloader.csproj -c Release -r win-x64 --self-contained

# 2. Build installer with Inno Setup
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" setup.iss

# Installer output: release/EnhancedYoutubeDownloader-Setup-v0.4.4.exe

Installer Features:

  • Desktop shortcut creation (default: enabled)
  • Launch application after installation (default: enabled)
  • Start Menu shortcuts (app + uninstaller)
  • Add/Remove Programs integration
  • Smart data cleanup on uninstall with user confirmation

See CLAUDE.md for detailed build instructions.

Architecture

The application follows a clean architecture pattern with clear separation of concerns:

src/
├── Core/           # Business logic and services
├── Desktop/        # Avalonia UI application
├── Shared/         # Shared models and interfaces
└── Tests/          # Unit and integration tests

Key Components


realtimedownloads-image

 

  • DownloadService: Manages download operations with pause/resume
  • CacheService: Handles metadata caching with SQLite
  • NotificationService: Provides user feedback
  • DashboardViewModel: Main UI logic and queue management

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

Contributors

Special thanks to the following contributors who have helped make this project better:

  • ThiinkMG - Graphics and design contributions

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

About

Production-ready, enhanced version of Tyrrrz's YouTube Downloader. (Focuses on key features and origin.)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •