Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Capevace/youtube-dl-ui
Basic web UI for youtube-dl. Download a URL in highest quality, choosing between video or audio-only.
https://github.com/Capevace/youtube-dl-ui
http socket-io ui web youtube-dl youtube-downloader
Last synced: 7 days ago
JSON representation
Basic web UI for youtube-dl. Download a URL in highest quality, choosing between video or audio-only.
- Host: GitHub
- URL: https://github.com/Capevace/youtube-dl-ui
- Owner: Capevace
- License: mit
- Created: 2019-09-04T13:33:22.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-03-04T20:44:52.000Z (over 1 year ago)
- Last Synced: 2024-11-01T23:03:11.633Z (11 days ago)
- Topics: http, socket-io, ui, web, youtube-dl, youtube-downloader
- Language: HTML
- Homepage:
- Size: 436 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
youtube-dl-ui
Basic web UI for youtube-dl. Download a URL in highest quality, choosing between video or audio-only.
## Overview
- [Installation](#installation)
- [Usage](#usage)
- [Options](#options)
- [Config](#config)
- [Environment variables & command-line flags](#environment-variables--command-line-flags)
- [Config file](#config-file)
- [Transparent mode](#transparent-mode)
- [Swapping out `youtube-dl`](#swapping-out-youtube-dl)
- [Changelog](#changelog)## Installation
```sh
$ npm install -g youtube-dl-ui
```## Usage
You can now start the server like you would any binary.
```sh
$ youtube-dl-ui
v1.4.1
```### Options
```
Usage: youtube-dl-ui [options]Options:
-V, --version output the version number
-p, --port the port for the http server
-v, --video-path path to directory where videos should be saved
-a, --audio-path path to directory where audio should be saved
-y, --youtube-dl file path to the youtube-dl binary (so you can set
it to yt-dlp)
-s, --socket-path url path the socket should connect to (useful when
proxying the server)
-d, --debug enable debug mode
-h, --help display help for command
```### Config
#### Environment variables & command-line flags
The following environment variables can be set, to control `youtube-dl-ui`:
| Environment variable | Type | Command-line equivalent |
| -------------------- | -------------------------------- | ------------------------------- |
| PORT | number (e.g. 8080) | --port 8080 |
| VIDEO_PATH | string (e.g. ~/Downloads/videos) | --video-path ~/Downloads/videos |
| AUDIO_PATH | string (e.g. ~/Downloads/audio) | --video-path ~/Downloads/audio |
| YOUTUBE_DL | string (e.g. /usr/bin/yt-dlp) | --youtube-dl /usr/bin/yt-dlp |
| SOCKET_PATH | string (e.g. /socket.io) | --socket-path /socket.io |
| DEBUG | boolean | --debug |#### Config file
[RC](https://github.com/dominictarr/rc) is used to look for config files and can be used in the following ways:
- if you passed an option `--config file` then from that file
- `$HOME/.youtube-dl-ui/config`
- `$HOME/.config/youtube-dl-ui`
- `$HOME/.config/youtube-dl-ui/config`
- `/etc/youtube-dl-ui/config`Settings from this file will be overridden, if you also set options using environment variables or command line arguments.
### Transparent mode
You can append the query parameter `?transparent=1` to the UI URL. This will remove the colored background and move the content to the left.
This is used in [@capevace/mission-control](https://github.com/capevace/mission-control) to embed the download UI in an iFrame.
Example:
```
https://example.com/youtube-dl-ui?transparent=1
```### Swapping out [`youtube-dl`](https://youtube-dl.org/)
There are multiple forks of [youtube-dl](https://youtube-dl.org/) like [yt-dlp](https://github.com/yt-dlp/yt-dlp) which have a compatible API and can be used instead of stock youtube-dl.
You can do this by either setting the `YOUTUBE_DL=/usr/bin/yt-dlp` environment variable or by passing the `--youtube-dl /usr/bin/yt-dlp` CLI flag. _To find out your `yt-dlp` path, run `$ which yt-dlp` in your shell._
Example:
```bash
youtube-dl-ui --youtube-dl /usr/bin/yt-dlp# or
YOUTUBE_DL=/usr/bin/yt-dlp youtube-dl-ui
```## Changelog
### Version 1.4.1
- Fixed videos not disappearing after download
- Added `YOUTUBE_DL` option to initial config log
- Cleaned up `package.json` dependencies### Version 1.4.0
- Added `YOUTUBE_DL` environment variable (and CLI option `--youtube-dl`) to set the [youtube-dl](https://youtube-dl.org/) binary
This lets you replace [youtube-dl](https://youtube-dl.org/) with forks like [yt-dlp](https://github.com/yt-dlp/yt-dlp).
- Added empty queue view### Version 1.3.0
- Added footer which shows current version
### Version 1.2.1
- Fixed SOCKET_PATH env variable not working as intended
### Version 1.2.0
- Added Docker support
- Removed automatic config file creation, you will need to do so yourself now
- Added configuration via environment variables### Version 1.1.0
- Updated design to fit new version of @capevace/mission-control
- Fixed some socket connection issues### Version 1.0.3
- Added CLI flag for socket path
- Added config log at startup for verification### Version 1.0.2
- Changed HTML title
### Version 1.0.1
- Forgot to add README lol
### Version 1.0.0
- First polished release
## Authors
Lukas Mateffy – [@Capevace](https://twitter.com/capevace) – [mateffy.me](https://mateffy.me)
Distributed under the MIT license. See `LICENSE` for more information.
## Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Commit your changes (`git commit -am 'Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
5. Create a new Pull Request