Skip to content

๐ŸŽฌ Avrix - A modern, feature-rich YouTube downloader with concurrent downloads, queue management, and a beautiful dark/light theme UI. Built with Python & Qt.

Notifications You must be signed in to change notification settings

yassine-krichen/avrix-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avrix Logo

A Professional Desktop Application for YouTube Media Downloads

Python PySide6 License Platform

Stars Forks

Features โ€ข Installation โ€ข Usage โ€ข Documentation โ€ข Download


๐Ÿ“‹ Table of Contents


๐ŸŒŸ Overview

Avrix is a feature-rich, cross-platform desktop application designed for seamless YouTube content downloads. Built with modern Python technologies and following SOLID principles, it offers a professional-grade user experience with a sleek, themeable interface.

Why Avrix?

Feature Avrix Others
๐ŸŽจ Modern UI โœ… Dark/Light themes โŒ Basic interfaces
โšก Concurrent Downloads โœ… Up to 10 simultaneous โŒ Single at a time
๐Ÿ“‹ Queue System โœ… Batch processing โŒ Limited support
๐ŸŽฏ Quality Options โœ… Up to 4K โš ๏ธ Limited options
๐Ÿ’พ Format Support โœ… MP4, MP3, WebM โš ๏ธ Basic formats
๐Ÿ”„ Live Updates โœ… Real-time progress โŒ Basic indicators
๐ŸŽจ Thumbnails โœ… Download & embed โŒ Not available
๐Ÿ“ Subtitles โœ… Multiple languages โŒ Limited support

โœจ Features

๐ŸŽฏ Core Capabilities

๐Ÿ“ฅ Download Options

  • Single Videos - Quick, one-click downloads
  • Entire Playlists - Batch download complete playlists
  • Queue System - Download multiple items sequentially
  • Concurrent Downloads - Up to 10 simultaneous downloads
  • Resume Support - Continue interrupted downloads

๐ŸŽจ Format & Quality

  • MP4 Video - High-quality video downloads
  • MP3 Audio - Extract audio only
  • Quality Selection - 4K, 1080p, 720p, 480p, 360p
  • Automatic Best - Smart quality selection
  • Format Conversion - Powered by FFmpeg

๐Ÿ–ฅ๏ธ User Interface

  • Modern Design - Clean, professional interface
  • Dark/Light Themes - Eye-friendly themes
  • Real-time Progress - Speed, ETA, file size
  • Thumbnail Preview - Visual feedback
  • Drag & Drop - Intuitive URL input

โš™๏ธ Advanced Features

  • Subtitle Downloads - Multiple languages
  • Thumbnail Embedding - Auto-embed artwork
  • Metadata Preservation - Keep video info
  • Settings Persistence - Remember preferences
  • System Notifications - Desktop alerts

๐Ÿ“ธ Screenshots

Dark Theme Interface

Avrix Dark Theme

Professional dark mode with Avrix branding

Download Progress

Download Progress

Real-time progress tracking with speed and ETA indicators

Queue Management

Queue Management

Batch processing with intelligent queue system

Note: Screenshots showcase the modern UI with embedded thumbnails, progress tracking, and queue management.


๐Ÿ’ป Installation

For End Users (Windows Executable)

๐ŸŽฏ One-Click Installation - No Python Required!

  1. Download the latest release:

    ๐Ÿ“ฆ Avrix_v1.0_Setup.zip
    

    Download from Releases

  2. Extract and run the installer:

    Avrix_Installer/
    โ”œโ”€โ”€ Avrix.exe           โ† Double-click to run (portable)
    โ””โ”€โ”€ Install_Avrix.bat   โ† Or run installer for system integration
    
  3. First-time setup:

    • Avrix will check for FFmpeg
    • If needed, follow the automatic download prompt
    • That's it! Start downloading ๐Ÿš€

System Requirements:

  • Windows 10 or later (64-bit)
  • ~100 MB free disk space
  • Internet connection

For Developers (Run from Source)

Prerequisites

๐Ÿ Python

Python 3.8+

Download

๐ŸŽฌ FFmpeg

Required for processing

Download

๐Ÿ“ฆ Git

For cloning

Download

Quick Start

# 1. Clone the repository
git clone https://github.com/yassine-krichen/avrix-downloader.git
cd avrix-downloader

# 2. Create virtual environment (recommended)
python -m venv venv

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

# 3. Install dependencies
pip install -r requirements.txt

# 4. Run the application
python main.py

FFmpeg Installation

๐ŸชŸ Windows

Option 1: Automatic (Recommended)

python setup_ffmpeg.py

Option 2: Manual

  1. Download from ffmpeg.org
  2. Extract and add to PATH
  3. Restart terminal

Option 3: Chocolatey

choco install ffmpeg
๐ŸŽ macOS

Homebrew (Recommended)

brew install ffmpeg

MacPorts

sudo port install ffmpeg
๐Ÿง Linux

Ubuntu/Debian

sudo apt update
sudo apt install ffmpeg

Fedora

sudo dnf install ffmpeg

Arch Linux

sudo pacman -S ffmpeg

๐Ÿš€ Usage

Quick Start Guide

  1. Launch Avrix

    # From source
    python main.py
    
    # Or run the executable
    Avrix.exe
  2. Enter YouTube URL

    • Paste any YouTube video or playlist URL
    • Auto-detection identifies single videos vs playlists
  3. Configure Download

    • Format: MP4 (Video) or MP3 (Audio)
    • Quality: 4K, 1080p, 720p, 480p, 360p, or Best
    • Options: Subtitles, Thumbnails
  4. Choose Destination

    • Default: Downloads/YoutubeDownloader
    • Click "Browse" to change location
  5. Start Downloading

    • Click "Download" for immediate start
    • Or "Add to Queue" for batch processing

Feature Walkthroughs

๐ŸŽฌ Single Video Download

1. Paste URL โ†’ 2. Select Quality โ†’ 3. Click Download โ†’ 4. Done!

๐Ÿ“‹ Playlist Processing

1. Paste Playlist URL
2. App detects all videos
3. Choose download method:
   - Download Now (immediate)
   - Add to Queue (batch)
4. Track progress per video + total

โšก Concurrent Downloads

1. Settings โ†’ Max Concurrent Downloads (1-10)
2. Add multiple items to queue
3. Watch them download simultaneously
4. Progress tracked for each item

๐ŸŽต Audio Extraction

1. Select MP3 format
2. Choose quality (higher = better audio)
3. Automatic conversion with FFmpeg
4. Output: Clean .mp3 files

๐Ÿ—๏ธ Architecture

Avrix is built with clean architecture principles and SOLID design patterns:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              User Interface Layer                โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Main Window โ”‚  โ”‚  Progress/Queue Widgets โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Business Logic Layer                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Facade Pattern โ”‚  โ”‚  Download Manager     โ”‚  โ”‚
โ”‚  โ”‚   (Simplified  โ”‚  โ”‚  Queue Manager        โ”‚  โ”‚
โ”‚  โ”‚    Interface)  โ”‚  โ”‚  Concurrent Manager   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚            Core Services Layer                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  yt-dlp    โ”‚  โ”‚  FFmpeg Integration       โ”‚  โ”‚
โ”‚  โ”‚  Wrapper   โ”‚  โ”‚  Format Builder           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Design Patterns

Pattern Purpose Implementation
Facade Simplified API DownloaderFacade class
Observer Event handling Qt Signals/Slots
Strategy Format selection FormatBuilder
Factory Object creation Download worker factory
Singleton Config management Settings manager

Technology Stack

graph TD
    A[Avrix Application] --> B[PySide6/Qt]
    A --> C[yt-dlp]
    A --> D[FFmpeg]
    B --> E[UI Components]
    C --> F[YouTube API]
    D --> G[Media Processing]
Loading

๐Ÿ“ Project Structure

avrix-downloader/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ main.py                      # Application entry point
โ”œโ”€โ”€ ๐Ÿ“„ build_exe.py                 # Executable builder script
โ”œโ”€โ”€ ๐Ÿ“„ setup_ffmpeg.py              # FFmpeg auto-installer
โ”œโ”€โ”€ ๐Ÿ“„ requirements.txt             # Python dependencies
โ”œโ”€โ”€ ๐Ÿ“„ README.md                    # This file
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ core/                        # Business logic layer
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ downloader.py              # Core download engine (400+ lines)
โ”‚   โ”œโ”€โ”€ concurrent_manager.py      # Concurrent download orchestration
โ”‚   โ”œโ”€โ”€ queue_manager.py           # Queue processing system
โ”‚   โ”œโ”€โ”€ queue_item.py              # Queue item data class
โ”‚   โ”œโ”€โ”€ facade.py                  # Simplified API interface
โ”‚   โ”œโ”€โ”€ format_builder.py          # yt-dlp format specifications
โ”‚   โ”œโ”€โ”€ utils.py                   # Helper utilities
โ”‚   โ””โ”€โ”€ notification_service.py    # Desktop notifications
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ ui/                          # User interface layer
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main_window.py             # Main application window (900+ lines)
โ”‚   โ”œโ”€โ”€ progress_widget.py         # Download progress display
โ”‚   โ”œโ”€โ”€ queue_widget.py            # Queue management UI
โ”‚   โ”œโ”€โ”€ theme_manager.py           # Dark/Light theme system
โ”‚   โ””โ”€โ”€ ui_state_manager.py        # UI state coordination
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ config/                      # Configuration
โ”‚   โ””โ”€โ”€ settings.json              # User preferences (auto-generated)
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ assets/                      # Application assets
โ”‚   โ”œโ”€โ”€ Avrix_dark.png             # Dark theme logo
โ”‚   โ”œโ”€โ”€ Avrix_light.png            # Light theme logo
โ”‚   โ”œโ”€โ”€ avrix_icon.ico             # Windows icon
โ”‚   โ””โ”€โ”€ README.md                  # Asset documentation
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ dist/                        # Build output (generated)
โ”‚   โ””โ”€โ”€ Avrix_Installer/
โ”‚       โ”œโ”€โ”€ Avrix.exe              # Standalone executable
โ”‚       โ”œโ”€โ”€ Install_Avrix.bat      # Windows installer
โ”‚       โ””โ”€โ”€ Uninstall_Avrix.bat    # Windows uninstaller
โ”‚
โ””โ”€โ”€ ๐Ÿ“ docs/                        # Documentation
    โ”œโ”€โ”€ ARCHITECTURE.md            # System architecture
    โ”œโ”€โ”€ BUILD_INSTRUCTIONS.md      # Building executables
    ๏ฟฝ๏ฟฝโ”€โ”€ PROJECT_SUMMARY.md         # Project overview
    โ””โ”€โ”€ QUICK_START.md             # Quick start guide

Module Responsibilities

Core Module (Backend)
  • downloader.py - Main download engine using yt-dlp Python API
  • concurrent_manager.py - Manages multiple simultaneous downloads
  • queue_manager.py - Processes download queue sequentially
  • facade.py - Provides simplified interface for UI layer
  • format_builder.py - Constructs yt-dlp format specifications
  • utils.py - URL validation, config management, formatting
UI Module (Frontend)
  • main_window.py - Main application window and layout
  • progress_widget.py - Real-time progress visualization
  • queue_widget.py - Queue display and management
  • theme_manager.py - Theme switching and styling
  • ui_state_manager.py - Coordinates UI element states

โšก Concurrent Downloads

Avrix supports downloading multiple items simultaneously for maximum efficiency:

How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      Concurrent Download System      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Thread Pool (Configurable 1-10)   โ”‚
โ”‚                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚Download 1โ”‚  โ”‚Download 2โ”‚ ...    โ”‚
โ”‚  โ”‚  Thread  โ”‚  โ”‚  Thread  โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”‚       โ†“              โ†“              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   Queue Manager              โ”‚  โ”‚
โ”‚  โ”‚   โ€ข Processes pending items  โ”‚  โ”‚
โ”‚  โ”‚   โ€ข Manages thread lifecycle โ”‚  โ”‚
โ”‚  โ”‚   โ€ข Handles completions      โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Configuration

Via Settings Menu:

Settings โ†’ General โ†’ Max Concurrent Downloads (1-10)

Benefits:

  • โšก Speed: Download multiple videos simultaneously
  • ๐ŸŽฏ Efficiency: Maximize bandwidth utilization
  • ๐Ÿ”„ Flexibility: Adjust based on system resources
  • ๐Ÿ“Š Tracking: Individual progress for each download

๐Ÿ“‹ Queue Management

The intelligent queue system allows batch processing of multiple downloads:

Features

Feature Description
Add to Queue Queue multiple items for sequential processing
Reorder Drag and drop to change download order
Pause/Resume Control queue processing
Clear Queue Remove all pending items
Persistent Queue survives application restarts
Status Tracking Pending, Downloading, Completed, Failed

Queue States

Pending โ†’ Downloading โ†’ Completed โœ“
               โ†“
            Failed โœ— (with retry option)

๐Ÿ”ง Troubleshooting

โŒ FFmpeg Not Found

Problem: Application can't find FFmpeg

Solutions:

  1. Run automatic installer: python setup_ffmpeg.py
  2. Install manually and add to PATH
  3. Place ffmpeg.exe in Avrix directory
  4. Restart application after installation

Verification:

ffmpeg -version
๐Ÿ”ด Download Fails

Common Causes:

  • โŒ Invalid or private video URL
  • ๐ŸŒ Network connectivity issues
  • ๐Ÿ”’ Region-restricted content
  • ๐Ÿšซ Age-restricted videos

Solutions:

  1. Verify URL is accessible in browser
  2. Check internet connection
  3. Try lower quality settings
  4. Update yt-dlp: pip install --upgrade yt-dlp
๐ŸŒ Slow Downloads

Optimization Tips:

  • Reduce concurrent downloads (try 2-3)
  • Close bandwidth-heavy applications
  • Check network speed
  • Try different quality settings
  • Disable subtitles/thumbnails temporarily
๐Ÿ’พ Out of Disk Space

Prevention:

  • Monitor download destination free space
  • Clean up old downloads regularly
  • Change destination to drive with more space
  • Use MP3 format for audio-only (smaller files)
๐Ÿ–ฅ๏ธ Application Won't Start

Source Installation:

# Reinstall dependencies
pip install -r requirements.txt --force-reinstall

# Check Python version
python --version  # Should be 3.8+

Executable:

  • Check Windows Defender/Antivirus
  • Run as Administrator
  • Download fresh copy from releases

๐Ÿ”จ Building from Source

Create your own standalone executable:

Quick Build

# Automated build script
python build_exe.py

Manual Build (Advanced)

# Install PyInstaller
pip install pyinstaller

# Build single-file executable
pyinstaller --name=Avrix \
  --windowed \
  --onefile \
  --icon=assets/avrix_icon.ico \
  --add-data="assets;assets" \
  --add-data="config;config" \
  --hidden-import=yt_dlp \
  --hidden-import=PySide6 \
  main.py

# Output: dist/Avrix.exe

Build Output

dist/Avrix_Installer/
โ”œโ”€โ”€ Avrix.exe           # ~60 MB standalone executable
โ”œโ”€โ”€ Install_Avrix.bat   # Windows installer script
โ”œโ”€โ”€ Uninstall_Avrix.bat # Uninstaller script
โ””โ”€โ”€ README.txt          # User instructions

See: BUILD_INSTRUCTIONS.md for detailed guide


๐Ÿ—บ๏ธ Roadmap

โœ… Completed (v1.0)

  • Core download functionality
  • MP3/MP4 format support
  • Quality selection (up to 4K)
  • Playlist downloads
  • Queue management system
  • Concurrent downloads (up to 10)
  • Dark/Light themes
  • Progress tracking with ETA
  • Subtitle downloads
  • Thumbnail embedding
  • Settings persistence
  • Desktop notifications
  • Windows executable build

๐Ÿšง In Progress (v1.1)

  • Download history tracking
  • Search & filter in queue
  • Automatic yt-dlp updates
  • Proxy support
  • Custom output templates

๐Ÿ”ฎ Planned (v2.0)

  • Browser extension integration
  • Advanced audio codec options (FLAC, WAV)
  • Batch URL import from file
  • Download scheduler
  • Mobile companion app

๐Ÿ’ก Under Consideration

  • Multi-language support (i18n)
  • Chromecast integration
  • Format conversion tools
  • Plugin system
  • Command-line interface (CLI)

Want a feature? Open an issue or contribute!


๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

  • ๐Ÿ› Report Bugs: Open detailed issue reports
  • ๐Ÿ’ก Suggest Features: Share your ideas
  • ๐Ÿ“ Improve Documentation: Fix typos, add examples
  • ๐Ÿ”ง Submit Code: Pull requests are welcome
  • ๐ŸŒ Translations: Help localize Avrix
  • โญ Star the Project: Show your support

Development Setup

# Fork and clone
git clone https://github.com/YOUR_USERNAME/avrix-downloader.git
cd avrix-downloader

# Create feature branch
git checkout -b feature/amazing-feature

# Make your changes
# ... code ...

# Test thoroughly
python main.py

# Commit with clear messages
git commit -m "Add: Amazing new feature"

# Push and create PR
git push origin feature/amazing-feature

Code Guidelines

  • Follow PEP 8 style guidelines
  • Add docstrings to functions/classes
  • Include type hints where appropriate
  • Write meaningful commit messages
  • Test your changes thoroughly
  • Update documentation as needed

๐ŸŽ“ Credits

Core Technologies


Python
Core Language

Qt/PySide6
UI Framework

yt-dlp
Download Engine

FFmpeg
Media Processing

Dependencies

Inspiration & Resources

  • Qt Documentation & Examples
  • yt-dlp Community & Contributors
  • Python Packaging Authority (PyPA)
  • Open Source Community

๐Ÿ“„ License

This project is licensed under the Educational License.

Copyright (c) 2025 Yassine Krichen

Permission is granted for educational and personal use only.
Commercial use requires explicit permission from the author.

Important Legal Notes

โš ๏ธ YouTube Terms of Service: This tool is for personal, educational use only. Users are responsible for complying with YouTube's Terms of Service.

โš ๏ธ Content Rights: Respect copyright laws. Only download content you have the right to download.

โš ๏ธ Fair Use: Be aware of fair use laws in your jurisdiction.


๐ŸŒŸ Acknowledgments

Special thanks to:

  • yt-dlp Team for the incredible download engine
  • Qt/PySide6 for the powerful UI framework
  • FFmpeg Developers for media processing capabilities
  • Open Source Community for inspiration and support
  • Beta Testers for valuable feedback

๐Ÿ“ž Support & Contact

Get Help

Documentation Issues Discussions

Connect

GitHub Email


โญ Show Your Support

If you find Avrix useful, please consider:

  • โญ Starring the repository
  • ๐Ÿฆ Sharing with friends
  • ๐Ÿ“ Writing a review
  • ๐Ÿ’ Contributing code or ideas

Made with โค๏ธ by yassine krichen, for everyone


Star History


Built with Python, Qt, and a passion for great software

About

๐ŸŽฌ Avrix - A modern, feature-rich YouTube downloader with concurrent downloads, queue management, and a beautiful dark/light theme UI. Built with Python & Qt.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages