An open API service indexing awesome lists of open source software.

https://github.com/rgeditv1/yt-dlp-linux-gui

yt-dlp con frontend escrito en python usando CustomTkinter
https://github.com/rgeditv1/yt-dlp-linux-gui

gui linux youtube-downloader yt-dlp yt-downloader

Last synced: 13 days ago
JSON representation

yt-dlp con frontend escrito en python usando CustomTkinter

Awesome Lists containing this project

README

          

# YTDLP UI Edition

A modern graphical interface for downloading YouTube videos and audio using **yt-dlp** and **CustomTkinter**.

Built in Python with a modular architecture and currently in a **stable phase**.

## Now You Can Download From AUR
```bash
yay -S yt-dlp-linux-gui
```

---

## πŸ“Œ Project Status

**Stable**

The application currently:

- Downloads videos in **MP4** format
- Downloads audio in **MP3** format
- Allows custom download directory selection
- Sends system notifications
- Handles resource paths correctly in development

---

## Project Structure
```bash
ytdlp_gui/
β”‚
β”œβ”€β”€ core/
β”‚ └── downloader.py
β”‚
β”œβ”€β”€ gui/
β”‚ β”œβ”€β”€ ui.py
β”‚ └── utils.py
β”‚
β”œβ”€β”€ img/
β”œβ”€β”€ fonts/
β”‚
└── YTDLP.py
```
- **core/** β†’ Download logic (yt-dlp integration)
- **gui/** β†’ Graphical interface and utilities
- **img / fonts/** β†’ Static resources used by the UI

---

## Installation (Recommended)

Instead of installing dependencies manually, simply run:
```bash
chmod +x setup.sh
./setup.sh
```
The setup script will automatically install all required dependencies and prepare the project.

### Windows

PowerShell:
```powershell
.\setup.ps1
```
If PowerShell blocks scripts:
```powershell
powershell -ExecutionPolicy Bypass -File .\setup.ps1
```

CMD:
```bat
setup.cmd
```

---

## β–ΆRunning the Application

After running the setup script:
```bash
python ytdlp_gui/YTDLP.py
```
---

## Features

- Modern dark-mode UI (CustomTkinter)
- MP3 extraction using FFmpeg
- Automatic download directory creation
- Input validation before download
- System notifications for download status
- Clean separation between UI and core logic

---

## How It Works

- The `Downloader` class dynamically configures yt-dlp options.
- Audio mode uses FFmpeg post-processing.
- The UI validates fields before starting downloads.
- A smart `resource_path()` function ensures proper asset loading.

---

## Main Dependencies

- yt-dlp
- customtkinter
- pillow
- plyer

(All installed automatically via `setup.sh`.)

---

## Future Improvements

- Real-time download progress bar
- Playlist support
- Persistent configuration
- Additional format options

---

## πŸ‘€ Author

Developed by **RgeditV1**
and **RowanDavitt**

---