a GUI for yt-dlp written in Rust
you can use the flake.nix in the repo
in your flake.nix
:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
ytdlp-gui = {
url = "github:bksalman/ytdlp-gui";
};
};
outputs = { nixpkgs, ytdlp-gui, ...}:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [
ytdlp-gui.overlay
];
};
in
{
...snip
then you can add it as a normal package, either to your home-manager or nixosConfiguration
download the rpm package from the releases page then install it with sudo dnf localinstall <rpm_package_name>
download the deb package from the releases page then install it with sudo apt install ./<deb_package_name>
Available in the AUR ytdlp-gui
either
a- from your distribution repo
b- or download the binary, then move it to your bin directory, and make it an executable by running chmod +x <bin_file>
3- download the ytdlp-gui
binary from the realeases page
just download the zip file from the releases page, extract it in a subfolder and start the ytdlp-gui.exe
to build from source you need to have cargo
and rustc
, you can install them through rustup
(rust toolchain manager), or from your distribution repos, whatever you like
after that run the following commands:
# clone the repository to "ytdlp-gui" folder
git clone https://github.com/BKSalman/ytdlp-gui
# enter the folder
cd ytdlp-gui
# you can either build the project using this
cargo build
# or build it in release mode for better performance
cargo build -r
then the binary will be either in <project-root>/target/debug/ytdlp-gui
or <project-root>/target/release/ytdlp-gui
and you can either run it directly:
# from project root
./target/release/ytdlp-gui
or using cargo:
cargo r
# or for release mode
cargo r -r
For v0.2.2+ the application saves configuration in the default config directory for the respective platform/OS in <config_dir>/ytdlp-gui/config.toml
the default file looks like this:
# Optional
# This is the directory of the bin, not the bin itself
# bin_path = "<some_cool_path>" # (0.2.4)
bin_dir = "<some_cool_path>" # (0.2.5+) if not set the command will be `yt-dlp <app_args>`
# Optional
download_folder = "<some_cool_path>" # default = "~/Videos"
[options]
video_resolution = "FullHD" # options: "Sd" "Hd" "FullHD" "TwoK" "FourK"
video_format = "Mp4" # options: "Mp4" "Mkv" "Webm"
audio_quality = "Good" # options: "Best" "Good" "Medium" "Low"
audio_format = "Mp3" # options: "Mp3" "Wav" "Vorbis" "M4a" "Opus"
All contribution forms are welcomed, whether it's Pull requests, Issues (bug reports/enhancement requests)
However, I might not be quick to reply to them, or implement the requested stuff, since I'm focusing on other things
But I will do my best 👍