This project is a YouTube video downloader desktop application built using Python and CustomTkinter. It allows users to input a YouTube video URL or playlist and download the video(s) in available formats directly to their device. This README provides an overview of the project, setup instructions, usage guide, and potential areas for improvement.
🎉 Input a valid YouTube video or playlist URL.
📺 Choose from available formats (e.g., video or audio).
⬇️ Download selected videos or audio files to a specified location.
📂 Saves downloads to your default Downloads
folder, with organized subfolders for playlists.
Follow these steps to set up and run the YouTube Downloader on your desktop:
-
Clone the repository:
git clone https://github.com/EmileGreyling/YouTube-Downloader-Desktop.git
-
Navigate to the project directory:
cd YouTube-Downloader-Desktop
-
Create a virtual environment:
python3 -m venv env
-
Activate the virtual environment:
- On Windows:
env\Scripts\activate
- On macOS and Linux:
source env/bin/activate
- On Windows:
-
Install required dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
- Enter YouTube URL: Input a valid YouTube video or playlist URL.
- Select Format: Choose the desired download format (e.g., video or audio).
- Download: Click the "Download" button and monitor progress.
- Access Downloaded Files: Files are saved to your default
Downloads
location in organized folders.
To compile the app into an executable:
-
Install auto-py-to-exe:
pip install auto-py-to-exe
-
Run auto-py-to-exe and configure the
.py
script with necessary files (i.e,logo.ico
for the icon) to create an executable for easier access.
Contributions are welcome! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make changes, test them, and submit a pull request with explanations.
Here are some potential areas for improvement in this project:
- Enhanced User Interface: Improve the GUI using additional styling and components in CustomTkinter.
- Better Error Handling: Add robust error handling for invalid URLs and unsupported formats.
- Download Progress: Show real-time download progress for each file.
- Multi-Platform Support: Expand support to download videos from other video platforms.