Skip to content

hyperfield/yt-channel-downloader

Repository files navigation

YT Channel Downloader

Version Codacy Badge Donate via Ko-Fi Download YT Channel Downloader Download YT Channel Downloader

Download 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.

YT Channel Downloader Screenshot (Windows) YT Channel Downloader Screenshot (Windows) YT Channel Downloader Screenshot (Linux) YT Channel Downloader Screenshot (MacOS)


Change Log

Latest: 0.8.0

  • Estimated download size before downloads start.
  • Estimated download time / ETA.
  • Missing JavaScript runtime detection with a guidance dialog.
  • Pagination for channels and playlists to keep large lists responsive.
  • Cancelable size/ETA calculation with improved progress updates.
  • Thumbnails shown immediately after fetching data.

Full changelog.

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.
  • Size & Time Estimates: Preview total download size and ETA before starting, with cancelable calculations.
  • Pagination for Large Lists: Channels and playlists load in pages to keep the UI responsive.
  • Thumbnail Previews & Downloads: See thumbnails as soon as items are fetched, and save them with your downloads.
  • 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.
  • Runtime Detection: Get guided prompts if an optional JavaScript runtime for yt-dlp is missing.
  • 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
  • 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

Install the .deb (Debian/Ubuntu)

  1. Download the latest .deb from the releases page (or build one with ./scripts/create_binary.sh then ./scripts/create_deb.sh).
  2. Install it with apt so dependencies are resolved:
sudo apt install ./yt-channel-downloader_<version>_<arch>.deb
  1. Launch with:
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
  • 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

  1. Download ffmpeg:

  2. Extract the files:

    • Extract the downloaded archive to a directory, such as C:\ffmpeg.
  3. Add ffmpeg to 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 Path variable and select it. Then click "Edit".
    • Click "New" and add C:\ffmpeg\bin to the list. Click "OK" to close all the windows.
  4. Verify the installation:

    • Open Command Prompt (CMD).

    • Run the following command:

      ffmpeg -version
    • You should see the version information for ffmpeg if 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

  1. Clone the repo and open PowerShell in the project root.

  2. Create and activate a virtual environment:

    python -m venv .venv
    .venv\Scripts\activate
  3. Install the project in editable mode:

    pip install -e .
  4. Launch the app:

    yt-channel-downloader
  5. Deactivate the environment when finished with deactivate.

How to Use

  1. Open the application and input a YouTube channel, playlist, or video URL.
  2. Go to "File" -> "Settings" and set your download preferences.
  3. Press the Get list button to list available videos.
  4. Review thumbnails plus the size/ETA preview; select the videos you wish to download.
  5. 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. :)

Ko-Fi Visa Mastercard

Bitcoin: bc1pglp2m26kqatgm6z8vtuhk66jd74ghv948wtyhtgtj6wh30nzz6csjajv00

Ethereum: 0x9CEf6B928BF9fFd894ca83db1B822820917ca89a

Tron: TGq2z17jq8UruCNyyD5GU3weuyJSyM2zBp

Binance Smart Chain: 0x863F8f3fC38b7540110462884809621e2B9EE399

About

A Qt GUI app that makes it easy to selectively download multiple videos at once from Youtube and other platforms channels.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Languages