From e8029cd2db1387621a4b41f307e8883a45774ca2 Mon Sep 17 00:00:00 2001 From: ArabCoders Date: Fri, 1 Dec 2023 17:31:52 +0300 Subject: [PATCH] Fix README.md --- README.md | 47 ++++++++++------------------------- frontend/README.md | 24 ------------------ frontend/src/assets/logo.png | Bin 6849 -> 38936 bytes 3 files changed, 13 insertions(+), 58 deletions(-) delete mode 100644 frontend/README.md diff --git a/README.md b/README.md index 69bd4bff..379c9bfb 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ YTPTube started as a fork of [meTube](https://github.com/alexta69/metube) projec * Re-Imagined the frontend and re-wrote the code in VueJS. * Switched out of binary file storage in favor of SQLite. * Handle live streams. -* Support per link, `yt-dlp config` and `cookies`. +* Support per link, `yt-dlp config` and `cookies`. and `output format` ### Tips Your `yt-dlp` config should include the following options for optimal working conditions. @@ -61,30 +61,11 @@ Certain values can be set via environment variables, using the `-e` parameter on * __UMASK__: umask value used by YTPTube. Defaults to `022`. * __YTP_CONFIG_PATH__: path to where the queue persistence files will be saved. Defaults to `/config` in the docker image, and `./var/config` otherwise. * __YTP_DOWNLOAD_PATH__: path to where the downloads will be saved. Defaults to `/downloads` in the docker image, and `./var/downloads` otherwise. -* __YTP_TEMP_PATH__: path where intermediary download files will be saved. Defaults to `/downloads` in the docker image, and `./var/tmp` otherwise. Set this to an SSD or RAM filesystem (e.g., `tmpfs`) for better performance __Note__: Using a RAM filesystem may prevent downloads from being resumed. +* __YTP_TEMP_PATH__: path where intermediary download files will be saved. Defaults to `/tmp` in the docker image, and `./var/tmp` otherwise. * __YTP_URL_PREFIX__: base path for the web server (for use when hosting behind a reverse proxy). Defaults to `/`. -* __YTP_OUTPUT_TEMPLATE__: the template for the filenames of the downloaded videos, formatted according to [this spec](https://github.com/yt-dlp/yt-dlp/blob/master/README.md#output-template). Defaults to `%(title)s.%(ext)s`. -* __YTP_YTDL_OPTIONS__: Additional options to pass to yt-dlp, in JSON format. [See available options here](https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/YoutubeDL.py#L183). They roughly correspond to command-line options, though some do not have exact equivalents here, for example `--recode-video` has to be specified via `postprocessors`. Also note that dashes are replaced with underscores. -* __YTP_YTDL_OPTIONS_FILE__: A path to a JSON file that will be loaded and used for populating `YTDL_OPTIONS` above. -* __YTP_KEEP_ARCHIVE__: Boolean. Whether to keep history of downloaded videos to prevent downloading same file multiple times. - -The following example value for `YTDL_OPTIONS` embeds English subtitles and chapter markers (for videos that have them), and also changes the permissions on the downloaded video and sets the file modification timestamp to the date of when it was downloaded: - -```yaml - environment: - - 'YTP_YTDL_OPTIONS={"writesubtitles":true,"subtitleslangs":["en","-live_chat"],"updatetime":false,"postprocessors":[{"key":"Exec","exec_cmd":"chmod 0664","when":"after_move"},{"key":"FFmpegEmbedSubtitle","already_have_subtitle":false},{"key":"FFmpegMetadata","add_chapters":true}]}' -``` - -The following example value for `OUTPUT_TEMPLATE` sets: -- playlist name and author, if present -- playlist number and count, if present (zero-padded, if needed) -- video author, title and release date in YYYY-MM-DD format, falling back to *UNKNOWN_...* if missing -- sanitizes everything for valid UNIX filename - -```yaml - environment: - - 'OUTPUT_TEMPLATE=%(playlist_title&Playlist |)S%(playlist_title|)S%(playlist_uploader& by |)S%(playlist_uploader|)S%(playlist_autonumber& - |)S%(playlist_autonumber|)S%(playlist_count& of |)S%(playlist_count|)S%(playlist_autonumber& - |)S%(uploader,creator|UNKNOWN_AUTHOR)S - %(title|UNKNOWN_TITLE)S - %(release_date>%Y-%m-%d,upload_date>%Y-%m-%d|UNKNOWN_DATE)S.%(ext)s' -``` +* __YTP_OUTPUT_TEMPLATE__: the template for the filenames of the downloaded videos, formatted according to [this spec](https://github.com/yt-dlp/yt-dlp/blob/master/README.md#output-template). Defaults to `%(title)s.%(ext)s`. This will be the default for all downloads unless the request include output template. +* __YTP_YTDL_OPTIONS_FILE__: A path to a JSON file that will be loaded and used for populating `ytdlp options`. +* __YTP_KEEP_ARCHIVE__: Whether to keep history of downloaded videos to prevent downloading same file multiple times. Defaults to `false`. ## Running behind a reverse proxy @@ -96,11 +77,11 @@ When running behind a reverse proxy which remaps the URL (i.e. serves YTPTube un ```nginx location /ytptube/ { - proxy_pass http://ytptube:8081; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; + proxy_pass http://ytptube:8081; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; } ``` @@ -125,11 +106,9 @@ The engine which powers the actual video downloads in YTPTube is [yt-dlp](https: There's an automatic nightly build of YTPTube which looks for a new version of yt-dlp, and if one exists, the build pulls it and publishes an updated docker image. Therefore, in order to keep up with the changes, it's recommended that you update your YTPTube container regularly with the latest image. -I recommend installing and setting up [watchtower](https://github.com/containrrr/watchtower) for this purpose. - ## Troubleshooting and submitting issues -Before asking a question or submitting an issue for YTPTube, please remember that YTPTube is only a UI for [yt-dlp](https://github.com/yt-dlp/yt-dlp). Any issues you might be experiencing with authentication to video websites, postprocessing, permissions, other `YTDL_OPTIONS` configurations which seem not to work, or anything else that concerns the workings of the underlying yt-dlp library, need not be opened on the YTPTube project. In order to debug and troubleshoot them, it's advised to try using the yt-dlp binary directly first, bypassing the UI, and once that is working, importing the options that worked for you into `YTDL_OPTIONS`. +Before asking a question or submitting an issue for YTPTube, please remember that YTPTube is only a UI for [yt-dlp](https://github.com/yt-dlp/yt-dlp). Any issues you might be experiencing with authentication to video websites, postprocessing, permissions, other `yt-dlp options` configurations which seem not to work, or anything else that concerns the workings of the underlying yt-dlp library, need not be opened on the YTPTube project. In order to debug and troubleshoot them, it's advised to try using the yt-dlp binary directly first, bypassing the UI, and once that is working, importing the options that worked for you into `yt-dlp options` file. In order to test with the yt-dlp command directly, you can either download it and run it locally, or for a better simulation of its actual conditions, you can run it within the YTPTube container itself. Assuming your YTPTube container is called `YTPTube`, run the following on your Docker host to get a shell inside the container: @@ -142,7 +121,7 @@ Once there, you can use the yt-dlp command freely. ## Building and running locally -Make sure you have node.js and Python 3.8 installed. +Make sure you have node.js and Python 3.11 installed. ```bash cd ytptube/frontend @@ -162,5 +141,5 @@ python app/main.py A Docker image can be built locally (it will build the UI too): ```bash -docker build -t ytptube . +docker build . -t ytptube ``` diff --git a/frontend/README.md b/frontend/README.md deleted file mode 100644 index 576b9809..00000000 --- a/frontend/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# frontend - -## Project setup -``` -npm install -``` - -### Compiles and hot-reloads for development -``` -npm run serve -``` - -### Compiles and minifies for production -``` -npm run build -``` - -### Lints and fixes files -``` -npm run lint -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..e277caa27936b823554d7cf447f82a3b225ef436 100644 GIT binary patch literal 38936 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 Q^Bs__p00i_>zopr0DR9n&j0`b literal 6849 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