# YTDL Web ## Usage ```sh ytdl-web [OPTIONS] ``` Available options: - -b, --base-path string the base path, used when behind reverse proxy - --config string config file (default is $XDG_CONFIG_HOME/ytdl-web/config.yml) - -h, --help help for ytdl-web - -l, --listen string address to listen on (default "127.0.0.1") - -p, --port int port to listen on (default 8080) - -y, --ytdlp-path string the path to the yt-dlp binary, used when it is not in $PATH (default "yt-dlp") ## Configuration ### Environment variables You can configure the application using environment variables | Variable Name | Description | Default Value | Accepted Values | | ---------------------------------- | ----------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------ | | YTDL_CONFIGDIR | Add a custom config directory to search for the config file | ` ` | | | YTDL_ENV | The application environment | `Production` | `Development`, `Staging`, `Production` | | YTDL_YTDLP_BINARYPATH | The path to the yt-dlp binary | `yt-dlp` | | | YTDL_HTTP_PORT | The tcp port for the web server to listen on | `8080` | | | YTDL_HTTP_LISTEN | The address for the web server to listen on | `127.0.0.1` | `0.0.0.0`, `127.0.0.1`, etc. | | YTDL_HTTP_BASEPATH | The base path of the application, useful for reverse proxies | `/` | | | YTDL_CACHE_TTL | How long to keep cached metadata | `1h` | `1h`, `30s`, `2m`, etc. | | YTDL_CACHE_DIRPATH | The path to the directory of where to store the cache | `/tmp/ytdl-web` | | | YTDL_COOKIES_ENABLED | Whether to use cookies when using yt-dlp | `true` | `true` or `false` | | YTDL_COOKIES_FILEPATH | The path to the netscape format cookies file | `./cookies.txt` | | | YTDL_COOKIES_FROMBROWSER_BROWSER | The name of the browser to load cookies from. (if specified, it disables YTDL_COOKIES_FILEPATH) | ` ` | `brave`, `chrome`, `chromium`, `edge`, `firefox`, `opera`, `safari`, `vivaldi` | | YTDL_COOKIES_FROMBROWSER_KEYRING | The name of the keyring for decrypting cookies for the chromium browser on linux | ` ` | `basictext`, `gnomekeyring`, `kwallet` | | YTDL_COOKIES_FROMBROWSER_PROFILE | The browser profile to load cookies from | ` ` | | | YTDL_COOKIES_FROMBROWSER_CONTAINER | The container name (if firefox) to load the cookies from | ` ` | | ## Building from source Prerequisites: - [devenv](https://devenv.sh/getting-started/) Steps: 1. Enter devenv shell ```sh devenv shell ``` 2. Run the build script ```sh build ``` ## Releasing Prerequisites: - [devenv](https://devenv.sh/getting-started/) Steps: 1. Ensure gitea access token is in `~/.config/goreleaser/gitea_token` 2. Enter devenv shell ```sh devenv shell ``` 3. Run the release script ```sh release ``` ## Contributing Please read [CONTRIBUTING.md](./CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. ## Versioning We use [Semantic Versioning](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://git.fifitido.net/apps/ytdl-web/tags). ## Authors - Evan Fiordeliso - _Initial project work_ - [efiordeliso](https://git.fifitido.net/efiordeliso) - Billie Thompson - _Provided README Template_ - [PurpleBooth](https://github.com/PurpleBooth) ## License The project is licensed under the [GPL v3](./LICENSE.md) License - see the [LICENSE.md](./LICENSE.md) file for details.