a GUI for yt-dlp written in Rust
you can use the flake.nix in the repo
in your flake.nix
:
```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
yt-dlp
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>
ffmpeg
or ffmpeg-free
from your distribution reposytdlp-gui
binary from the realeases pageytdlp-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: ```bash
git clone https://github.com/BKSalman/ytdlp-gui
cd ytdlp-gui
cargo build
cargo build -r
``
then the binary will be either in
or
and you can either run it directly: ```bash
./target/release/ytdlp-gui ```
or using cargo: ```bash cargo r
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:
```toml
bin_dir = "yt-dlp <app_args>
download_folder = "
[options] videoresolution = "FullHD" # options: "Sd" "Hd" "FullHD" "TwoK" "FourK" videoformat = "Mp4" # options: "Mp4" "Mkv" "Webm" audioquality = "Good" # options: "Best" "Good" "Medium" "Low" audioformat = "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 👍