Graphical interface for the command line tool yt-dlp with preset customization.
There are two ways to get started, depending on your preference and system:
Download the latest portable version from the releases section. This is a ZIP file containing the program files and all necessary dependencies.
You must have Python 3.10+ and Pip (the package manager for Python) installed.
You can clone this repository, and run the program from that directory:
git clone https://github.com/phlummox-dev/yt-dlp-gui
cd yt-dlp-gui
pip install uv
uv venv
uv pip install .
uv run scripts/run.pyOr if you aren't interested in the code, and already have the Pip package manager installed, you can run
# install the app
pip install git+https://github.com/phlummox-dev/yt-dlp-gui.git
# and run it
yt-dlp-gui
If you want to create your own presets or modify the existing ones, you're in the right
place. All customization options can be found in the config.toml file. The directory
where this file is located depends on your platform:
- Linux:
/home/username/.config/yt-dlp-gui - macOS:
/Users/username/Library/Application Support/yt-dlp-gui - Windows:
C:\Users\username\AppData\Local\yt-dlp-gui
To define a preset, the section name must begin with presets.. Below are the fields you can use to customize your presets:
-
args (required): This field can be provided as a string or a list. The arguments specified here will be added onto the base
yt-dlparguments. Therefore only the format and other relevant options for downloading should be specified. -
path (optional): This string field allows you to specify the output path. If this field is left out, it must be included in the
argsfield. -
filename (optional): This string field allows you to define the naming convention. If this field is left out, it must be specified in the
argsfield. -
sponsorblock (optional): This integer field allows you to set SponsorBlock functionality.
0to disable or1to remove and2to mark. -
metadata (optional): This boolean field determines whether to include metadata.
-
subtitles (optional): This boolean field determines whether to include subtitles.
-
thumbnail (optional): This boolean field determines whether to include thumbnail.
Below an example of how to add the wav format, you will notice I left out subtitles and thumbnail as they're not applicable for this format.
[presets.wav]
args = "--extract-audio --audio-format wav --audio-quality 0"
path = ""
filename = "%(title)s.%(ext)s"
sponsorblock = 0
metadata = falseTry it yourself by pasting it to the bottom of your config.toml file! You will see that any fields not included in the preset will be disabled in the GUI. If you encounter any issues with your preset, check the debug.log file for details.
On Linux, you may see an error message similar to the following when you try to run the program:
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
This occurs because certain system libraries required by yt-dlp-gui are not installed if the program is
installed using pip or similar tools.
On Debian- or Ubuntu-based systems, running the following command will usually correct the problem:
sudo apt install libxcb-cursor0
If it doesn't, the Qt documentation provides a list of recommended packages to install on Debian- and Ubuntu-based systems – try installing those, and see if that resolves the issue.
On Fedora or RHEL-based systems, try:
sudo dnf install xcb-util-cursor
