-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
613 additions
and
562 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -131,5 +131,5 @@ dmypy.json | |
.idea/ | ||
bin/ | ||
|
||
config.json | ||
config.toml | ||
debug.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,90 +1,68 @@ | ||
# yt-dlp-gui | ||
Graphical interface for the command line tool [yt-dlp](https://github.com/yt-dlp/yt-dlp), which allows users to download | ||
videos from various [websites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md), including YouTube. | ||
It is designed to be more user-friendly and accessible for those who are not comfortable using the command line. | ||
|
||
Graphical interface for the command line tool [yt-dlp](https://github.com/yt-dlp/yt-dlp) with preset customization. | ||
|
||
## Screenshot | ||
|
||
![](https://github.com/dsymbol/yt-dlp-gui/assets/88138099/4e14b95e-a716-48ad-9d68-8da9a14df755) | ||
![](https://github.com/user-attachments/assets/8e758f07-3cdb-477c-91ab-0ee20c2443e8) | ||
|
||
## Getting Started | ||
## Usage | ||
|
||
There are three ways to get started, depending on your preference and system: | ||
There are two ways to get started, depending on your preference and system: | ||
|
||
* [`Portable`](#portable) ~ *Windows* | ||
* [`Build`](#build) ~ *Windows & Linux* | ||
* [`Manual`](#manual) ~ *Platform independent* | ||
|
||
### Portable | ||
|
||
Download the latest portable version from the [releases](https://github.com/dsymbol/yt-dlp-gui/releases/latest) section. | ||
This will download a ZIP file containing the program files and all necessary dependencies. | ||
Download the latest portable version from the the [releases](https://github.com/dsymbol/yt-dlp-gui/releases/latest) section. | ||
This is a ZIP file containing the program files and all necessary dependencies. | ||
|
||
*All releases are built and released using GitHub Workflow* | ||
|
||
### Build | ||
### Manual | ||
|
||
You **must** have [Python](https://www.python.org/downloads/) 3.9+ installed. | ||
|
||
To build yt-dlp-gui from its source code: | ||
|
||
1. Clone the repository onto your local machine: | ||
|
||
```bash | ||
git clone https://github.com/dsymbol/yt-dlp-gui | ||
cd yt-dlp-gui | ||
``` | ||
|
||
2. Install the necessary dependencies: | ||
|
||
```bash | ||
pip install -r requirements.txt | ||
``` | ||
|
||
3. Use PyInstaller to compile the program: | ||
|
||
```bash | ||
cd app | ||
python app.py | ||
``` | ||
|
||
#### Linux | ||
|
||
```bash | ||
pyinstaller --name=yt-dlp-gui --clean -y app.py | ||
``` | ||
## Preset Customization | ||
|
||
#### Windows | ||
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. | ||
|
||
```pwsh | ||
pyinstaller --name=yt-dlp-gui --clean -y app.py --icon ./ui/assets/yt-dlp-gui.ico --noconsole | ||
``` | ||
### Available Fields | ||
|
||
4. The executable will be ready at: | ||
To define a preset, the section name must begin with `presets.`. Below are the fields you can use to customize your presets: | ||
|
||
```bash | ||
./dist/yt-dlp-gui | ||
``` | ||
- **args** (required): This field specifies the arguments for `yt-dlp`. It can be provided as a string or a list. | ||
|
||
### Manual | ||
- **path** (optional): This string field allows you to specify the output path. If this field is left out, it must be included in the `args` field. | ||
|
||
You **must** have [Python](https://www.python.org/downloads/) 3.9+ installed. | ||
- **filename** (optional): This string field allows you to define the naming convention. If this field is left out, it must be specified in the `args` field. | ||
|
||
1. Clone the repository onto your local machine: | ||
- **sponsorblock** (optional): This integer field allows you to set SponsorBlock functionality. `0` to disable or `1` to remove and `2` to mark. | ||
|
||
```bash | ||
git clone https://github.com/dsymbol/yt-dlp-gui | ||
cd yt-dlp-gui | ||
``` | ||
- **metadata** (optional): This boolean field determines whether to include metadata. | ||
|
||
2. Install the necessary dependencies: | ||
- **subtitles** (optional): This boolean field determines whether to include subtitles. | ||
|
||
```bash | ||
pip install -r requirements.txt | ||
``` | ||
- **thumbnail** (optional): This boolean field determines whether to include thumbnail. | ||
|
||
3. Run the program: | ||
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. | ||
|
||
```bash | ||
cd app | ||
python app.py | ||
```toml | ||
[presets.wav] | ||
args = "--extract-audio --audio-format wav --audio-quality 0" | ||
path = "" | ||
filename = "%(title)s.%(ext)s" | ||
sponsorblock = 0 | ||
metadata = false | ||
``` | ||
|
||
Try 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 which is located in the root directory of the program for details. |
Oops, something went wrong.