Desktop app for downloading entire YouTube channels or playlists via yt-dlp.
Project description
YT Channel Downloader
YT Channel Downloader is an intuitive desktop application built to simplify the process of downloading YouTube media content. Leveraging the robustness of yt-dlp and enriched with a modern PyQt 6 GUI, this tool offers a seamless experience to download your favorite content.
Change Log
What's New in version 0.6.0
What's New in version 0.5.5
- Added a download speed indicator column.
- Added a column showing the duration of videos or audios.
- Added a check for updates.
- Removed
pytube; playlists are now retrieved much faster viayt_dlp. - Published on PyPI for easy installation with
pip. - First release to include binaries for macOS and Linux (Debian-compatible only for now).
- Reorganized the source into a
src/layout for cleaner imports and packaging. - Bug fixes and stability improvements.
What's New in version 0.5.0
- More sites! You can now fetch single tracks or videos from other
yt-dlp-supported platforms — including Vimeo (requires login), Twitch, SoundCloud, Facebook, Instagram, Twitter/X, TikTok, Udemy*, and Reddit — directly from the main URL field. (Bulk channel / playlist fetches remain YouTube-only. *Udemy still requires the appropriate credentials/cookies for premium content.) - YouTube Login and Logout: Configure the browser profile whose cookies yt-dlp reuses for private, premium, or age-restricted downloads - no heavy-weight embedded browser anymore. Use
File -> YouTube loginto pick the browser and profile, and clear the configuration from the same menu when you no longer need it. - Download cancellation: Downloads in progress can now be cancelled with the "Cancel downloads" button.
What's New in version 0.4.12
- Only the Windows installer changed: updated
yt-dlpto the latest version to fix a problem with unretrievable URLs.
What's New in version 0.4.11
- Fixed URL fetching bug: short YouTube URLs are now fetched.
- Cleanup: a minor cleanup in some source files.
What's New in version 0.4.10
- Improved stability: Bug fixes and improved exception handling.
- Smoother UI: The interface also got a small facelift with more consistent layouts and widget styles.
(Contributed by djfm)
What's New in version 0.4.8
- FFmpeg installation verification: Implemented a check for FFmpeg’s presence on the system, as it is required for media downloads. While the Windows installer already handled this by installing FFmpeg if missing, the source code version lacked this verification. (Contributed by arvinnick).
What's New in version 0.4.6
- Thumbnail downloads: Added checkbox in Settings to enable thumbnail downloads for each video link. (Contributed by dsasmblr).
What's New in version 0.4.5
- Fetch progress dialog: Added an indefinite progress bar dialog window that displays the elapsed time in seconds and has a Cancel button.
- Some refactoring: Added numerous Python docstrings, introduced a new class, and reformatted the code for improved cleanliness and readability.
What's New in version 0.4.2
- Shorts support: Downloading YouTube shorts now works.
- Improved exception handling: Improved handling of network and download errors, timeouts.
What's New in version 0.4.1
- Bug Fixes: Due to some updates on YouTube, certain functionality didn't work. The "Any" format selection didn't work. These have been fixed.
- Improved exception handling: Some parts of the code needed exception handling.
- Improved interface: Better and bigger fonts and buttons.
- Added the "Donate" item to the Help menu: In the hope that some will support the author, which motivates faster improvement of the app.
What's New in version 0.4.0
- YouTube Login and Logout: Configure the browser profile whose cookies yt-dlp should reuse for private or age-restricted downloads. Use
File -> YouTube loginto select the browser/profile, and choose “Clear YouTube login” to forget the configuration. - Minor Improvements and Bug Fixes.
What's New in version 0.3.3
- Improved default audio track downloading: the program will now always attempt to download the best available quality audio track. Previously, the associated audio track was not always downloaded, for 4k quality videos in particular.
What's New in version 0.3.2
- Fixed the handling of video resolutions and formats specified in Settings: the program will correctly find the closest available video resolution and format based on user settings, for horizontal and vertical videos.
What's New in version 0.3.1
- Limiting of simultaneous download threads: this improves the responsiveness of the application and optimizes its handling of large download lists.
- Improved file name sanitation method: this prevents some completed downloads not being marked as such.
What's New in version 0.3.0
- Download playlists, in addition to channels or single videos
- Select All check box: allows to select all non-downloaded videos in a list at once
- Bug fixes: improved URL validation, partial download completion
- Interface improvements
- Other improvements: code cleanup, updated README
Binaries
Download the latest binary releases here.
Features
- Fetch Video Listings: Just input a YouTube video, playlist or channel URL and get a list of the videos.
- Selective Download: Choose exactly which videos you want to download, or select all at once.
- Quality Control: Specify video/audio quality or opt to download only the associated audio track.
- Download Marking: Keeps track of downloaded files for easier management.
- Playlist Downloads: Download all or some videos from a playlist URL.
- Channel Downloads: Download all or some videos from a channel URL.
- Single Video or Audio Downloads: Paste any supported link (YouTube, Vimeo, Twitch, SoundCloud, Facebook, Instagram, Twitter/X, TikTok, Udemy*, Reddit, and more via yt-dlp) and download it.
- Thumbnail Downloads: Download thumbnails for each of your videos.
- Private and Age-Restricted Videos: Download media on behalf of your Youtube account.
*Some providers (for example, Udemy or other premium services) still require valid account cookies/credentials. Configure them via File -> YouTube login (cookies-from-browser) before attempting restricted downloads.
Coming Soon
- Search field to search within a retrieved list of videos
- Download history tracking
- Pre-download summary
- Interface improvements
- Suggest a feature!
Installation
Install from PyPI
The easiest way to get the desktop app is straight from PyPI. Make sure FFmpeg is installed (see below), then run:
pip install yt-channel-downloader
If you don't have pip, you can use python -m pip instead.
To update the app to the latest version from PyPI:
pip install --upgrade yt-channel-downloader
yt-channel-downloader
MacOS or Linux (from source)
ffmpeg is needed for the app to work correctly, so make sure you have it on your system. Check in your terminal emulator if ffmpeg is installed:
ffmpeg -version
How to install ffmpeg on MacOS or Linux
You can download it from FFmpeg's official site or install it from a repository according to your OS distribution.
On MacOS with Homebew:
brew install ffmpeg
On Debian/Ubuntu:
sudo apt update
sudo apt install ffmpeg
On Fedora:
sudo dnf install ffmpeg
On Arch Linux:
sudo pacman -S ffmpeg
Recommended: JavaScript runtime (improves YouTube format coverage)
yt-dlp can use a JavaScript runtime to parse YouTube player code; having one installed reduces missing formats and silences runtime warnings. Install any of:
- Node.js via your package manager:
- Debian/Ubuntu:
sudo apt update && sudo apt install nodejs npm - Fedora:
sudo dnf install nodejs npm - Arch Linux:
sudo pacman -S nodejs npm - macOS (Homebrew):
brew install node
- Debian/Ubuntu:
- Deno (alternative runtime): see install instructions at deno.com
Install YT Channel Downloader
Clone the repository
git clone https://github.com/hyperfield/yt-channel-downloader.git
Navigate into the directory
cd yt-channel-downloader
Create a virtual environment
python3 -m venv .venv
Activate the virtual environment
.venv/bin/activate
Install the project in editable mode
pip install -e .
Run the program
yt-channel-downloader
To deactivate the virtual environment after usage, type
deactivate
Windows
ffmpeg is needed for the app to work correctly, so make sure you have it on your system. Open the command line (CMD) and type
ffmpeg -version
to check if it's on your system.
How to install ffmpeg on Windows
-
Download
ffmpeg:- Visit the official FFmpeg download page.
- Alternatively, you can use this direct link: Download FFmpeg for Windows.
-
Extract the files:
- Extract the downloaded archive to a directory, such as
C:\ffmpeg.
- Extract the downloaded archive to a directory, such as
-
Add
ffmpegto your system PATH:- Open the Start menu and search for "Environment Variables".
- Select "Edit the system environment variables".
- In the "System Properties" window, click on the "Environment Variables" button.
- Under "System variables", find the
Pathvariable and select it. Then click "Edit". - Click "New" and add
C:\ffmpeg\binto the list. Click "OK" to close all the windows.
-
Verify the installation:
-
Open Command Prompt (
CMD). -
Run the following command:
ffmpeg -version -
You should see the version information for
ffmpegif it is correctly installed.
-
Recommended: Node.js runtime (improves YouTube format coverage)
yt-dlp can use a JavaScript runtime to parse YouTube player code; having Node.js installed reduces missing formats and silences runtime warnings.
- Download and install the LTS version from nodejs.org
- Or with Chocolatey:
choco install nodejs-lts - Or with Scoop:
scoop install nodejs-lts - Alternative runtime: Deno (install instructions on the homepage)
How to install YT Channel Downloader
Install or upgrade the app with pip (PowerShell or Command Prompt):
python -m pip install --upgrade yt-channel-downloader
yt-channel-downloader
Optional: run from a cloned repository
-
Clone the repo and open PowerShell in the project root.
-
Create and activate a virtual environment:
python -m venv .venv .venv\Scripts\activate
-
Install the project in editable mode:
pip install -e .
-
Launch the app:
yt-channel-downloader -
Deactivate the environment when finished with
deactivate.
How to Use
- Open the application and input a YouTube channel URL.
- Go to "File" -> "Settings" and set your download preferences.
- Press the Get list button to list available videos.
- Select the videos you wish to download.
- Hit the Download button.
Contributing
Feel free to open issues and pull requests. I appreciate your feedback and contributions.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Authors
- hyperfield - Initial work and Documentation - hyperfield
See also the list of contributors who participated in this project.
Donation
If you like this application and want to support future development, I'll appreciate your donation via Ko-Fi or crypto. :)
Bitcoin: bc1pglp2m26kqatgm6z8vtuhk66jd74ghv948wtyhtgtj6wh30nzz6csjajv00
Ethereum: 0x9CEf6B928BF9fFd894ca83db1B822820917ca89a
Tron: TGq2z17jq8UruCNyyD5GU3weuyJSyM2zBp
Binance Smart Chain: 0x863F8f3fC38b7540110462884809621e2B9EE399
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yt_channel_downloader-0.8.0.tar.gz.
File metadata
- Download URL: yt_channel_downloader-0.8.0.tar.gz
- Upload date:
- Size: 214.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdf85c1e30a649633e1c1025cf03830eedb5f6512448f26a356e5fce89da1d6e
|
|
| MD5 |
bfe9e3828d03f5d738baff6f6a171e68
|
|
| BLAKE2b-256 |
6b1b4d71fb2972c503638fa217694b8c9f6a3ca39afbe3d340e6322989acf6b8
|
File details
Details for the file yt_channel_downloader-0.8.0-py3-none-any.whl.
File metadata
- Download URL: yt_channel_downloader-0.8.0-py3-none-any.whl
- Upload date:
- Size: 241.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b70e54d884ac129b00f8ebf45f00fc66095c540d350af4bc9991ce63d3276660
|
|
| MD5 |
91d0d97545091520dc223000b9df3fbd
|
|
| BLAKE2b-256 |
11a23b113350ca276cdde288a509a34b99c21c6d9fb573f4f2636ee4fceb0c45
|