https://github.com/BKSalman/ytdlp-gui
a very simple GUI for ytdlp written in Rust
https://github.com/BKSalman/ytdlp-gui
Last synced: 3 months ago
JSON representation
a very simple GUI for ytdlp written in Rust
- Host: GitHub
- URL: https://github.com/BKSalman/ytdlp-gui
- Owner: BKSalman
- License: gpl-3.0
- Created: 2022-10-09T22:19:52.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-24T11:56:48.000Z (3 months ago)
- Last Synced: 2025-01-24T12:30:46.628Z (3 months ago)
- Language: Rust
- Size: 36.7 MB
- Stars: 299
- Watchers: 6
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-iced - ytdlp-gui - A GUI for yt-dlp, a fork of youtube-dl with additional features. (Projects Using iced)
README
# ytdlp-gui
a GUI for yt-dlp written in Rust- [Installation](https://github.com/BKSalman/ytdlp-gui#installation)
- [NixOS (Flake)](https://github.com/BKSalman/ytdlp-gui#nixos-flake)
- [Fedora](https://github.com/BKSalman/ytdlp-gui#fedora)
- [Ubuntu](https://github.com/BKSalman/ytdlp-gui#ubuntu)
- [other distributions](https://github.com/BKSalman/ytdlp-gui#other-distributions)
- [Windows](https://github.com/BKSalman/ytdlp-gui#windows)
- [Build from source](https://github.com/BKSalman/ytdlp-gui#build-from-source)
- [Configuration](https://github.com/BKSalman/ytdlp-gui#configuration)
- [Contribution](https://github.com/BKSalman/ytdlp-gui#contribution)# Preview


# Installation
## Linux### NixOS (Flake)
you can use the flake.nix in the repoin 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
### Fedora
download the rpm package from the releases page then install it with ``sudo dnf localinstall ``### Ubuntu
download the deb package from the releases page then install it with ``sudo apt install ./``### Arch
Available in the AUR [ytdlp-gui](https://aur.archlinux.org/packages/ytdlp-gui)
### other distributions
#### 1- download ``yt-dlp``
eithera- from your distribution repo
b- or download the [binary](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp), then move it to your bin directory, and make it an executable by running `chmod +x `
#### 2- download ``ffmpeg`` or ``ffmpeg-free`` from your distribution repos
#### 3- download the ``ytdlp-gui`` binary from the [realeases page](https://github.com/BKSalman/ytdlp-gui/releases)
## Windows
##### just download the zip file from the releases page, extract it in a subfolder and start the ``ytdlp-gui.exe``# Build from source
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 likeafter that run the following commands:
```bash
# 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 `/target/debug/ytdlp-gui` or `/target/release/ytdlp-gui`and you can either run it directly:
```bash
# from project root
./target/release/ytdlp-gui
```or using cargo:
```bash
cargo r
# or for release mode
cargo r -r
```# Configuration
For v0.2.2+ the application saves configuration in the default config directory for the respective platform/OS in ``/ytdlp-gui/config.toml``
the default file looks like this:
```toml
# Optional
# This is the directory of the bin, not the bin itself
# bin_path = "" # (0.2.4)bin_dir = "" # (0.2.5+) if not set the command will be `yt-dlp `
# Optional
download_folder = "" # 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"
```### Note: the quality/format options get automatically saved when pressing the download button
# Contribution
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 👍