A local app with a modernized GUI to view and download YouTube channels, playlists, and videos.
YouTube Downloader is made with Eel and PyTube.
Eel allows for an HTML/CSS/JS GUI with "full access to Python capabilities and libraries", and easy communication with the backend.
The backend utilizes the PyTube API to handle the fetching and downloading of YouTube content through its own YouTube API wrapper.
- View channels, playlists, and videos.
- Download full video and/or audio of YouTube videos and playlists.
- Fully functioning download queue for multiple download types.
- Modifiable download directory
- YouTube account linking
- Customizable settings
YouTube Downloader is local app meant to be run from a single executable. However, if one wishes they can clone the repository and run the code locally (this is not recommended as modifications to PyTube were required to be made to fix some issues, and an individual's experience may not work as expected if those same issues aren't fixed locally. The modified version of PyTube used for this project is available here).
YouTube downloader can be downloaded here. Once downloaded, unzip the directory into your preferred location. The app can then be launched by navigating into the directory and running YouTube Downloader.exe
- Clone the repository:
git clone https://github.com/yari-dewalt/youtube-downloader.git
- Navigate into the cloned repository:
cd youtube-downloader
- (Optional) Set up and activate a virtual environment:
- Install the project dependencies from the requirements.txt file:
pip install -r requirements.txt
- Run the project:
python src/main.py
python -m venv venv
Windows: venv\Scripts\activate
macOS/Linux: source venv/bin/activate
Q. Why does it take so long to load videos and playlists?
A- It takes time for PyTube to communicate with YouTube and return the packaged data. This is unfortunately kind of slow which is why it is recommended to input a specific video if you are looking for something in specific.
Q. Why do I not see some videos/playlists?
A- Only items that are publicly available are able to be fetched. Furthermore, some media may be age restricted or geographically locked. This can be solved by linking your YouTube account in the settings.
Q. Why am I getting an error when inputting a channel/video/playlist link?
A- This may be due to an incorrect link. Double check that the link is correct. It might also be because you don't have access to that specific piece of media (i.e. age restriction and/or not being available in your country). Try linking your YouTube account in the settings to solve this.
Q. Why am I getting an error when downloading a video/playlist?
A- If you are able to view and queue a download for a video/playlist and it results in an error, this is most likely due to an age restriction or geographical restriction. Linking your YouTube account in the settings can help solve this. This can also help due to a bad internet connection. Try making sure that your connection is good and restart the app if issues continue.