From 9a0ca199e389dd2092abec62236e615e7f05be4f Mon Sep 17 00:00:00 2001 From: crocs <34723037+pairofcrocs@users.noreply.github.com> Date: Wed, 12 Apr 2023 21:35:04 -0500 Subject: [PATCH 01/44] updated image links (#6) * Add files via upload * Update unraid.md --- mkdocs/docs/assets/unraid_es_install.png | Bin 0 -> 87009 bytes mkdocs/docs/assets/unraid_redis_install.png | Bin 0 -> 44329 bytes mkdocs/docs/assets/unraid_ta_install.png | Bin 0 -> 88287 bytes mkdocs/docs/installation/unraid.md | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 mkdocs/docs/assets/unraid_es_install.png create mode 100644 mkdocs/docs/assets/unraid_redis_install.png create mode 100644 mkdocs/docs/assets/unraid_ta_install.png diff --git a/mkdocs/docs/assets/unraid_es_install.png b/mkdocs/docs/assets/unraid_es_install.png new file mode 100644 index 0000000000000000000000000000000000000000..4a792a6513e2a5637a20ac74e8455568fc85b812 GIT binary patch literal 87009 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 literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/unraid_redis_install.png b/mkdocs/docs/assets/unraid_redis_install.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac4fc233536b50877ed664d31ec5a9b062fed18 GIT binary patch literal 44329 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 literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/unraid_ta_install.png b/mkdocs/docs/assets/unraid_ta_install.png new file mode 100644 index 0000000000000000000000000000000000000000..0e9e2067886f8b92953db4688b023cdaebcf1c5c GIT binary patch literal 88287 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%0DaV2?rtjn__b~<-*a;G}S<#&iCVZS=5#j0HNsJ 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
  • VVL>~b`G>m~btd|XF7W0iD|J^ec*k-3I4hjL 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 MY3QqC)NVieKO2ECEC2ui literal 0 HcmV?d00001 diff --git a/mkdocs/docs/installation/unraid.md b/mkdocs/docs/installation/unraid.md index b638299..8b965ca 100644 --- a/mkdocs/docs/installation/unraid.md +++ b/mkdocs/docs/installation/unraid.md @@ -9,7 +9,7 @@ Tube Archivist, and all if it's dependencies are located in the [community appli ### Install `TubeArchivist-RedisJSON` -![TubeArchivist-RedisJSON](https://i.imgur.com/ZKc8pSK.png) +![TubeArchivist-RedisJSON](../assets/unraid_redis_install.png) This is the easiest container to setup of the thee, just make sure that you do not have any port conflicts, and that your `/data` is mounted to the correct path. The other containers will map to the same root directory (/mnt/user/appdata/TubeArchivist). If you need to install `TubeArchivist-RedisJSON`on a different port, you'll have to follow [these steps](https://github.com/tubearchivist/tubearchivist#redis-on-a-custom-port) later on when installing the `TubeArchivist` container. @@ -18,7 +18,7 @@ Make sure and start Redis and the ElasticSearch containers approximately one min ### Install `TubeArchivist-ES` -![TubeArchivist-ES](https://i.imgur.com/RC38b3u.png) +![TubeArchivist-ES](../assets/unraid_es_install.png) ElasticSeach is also pretty easy to setup. Again, make sure you have no port conflicts, make sure that you mapped the ElasticSearch Data to the same root directory as `RedisJSON` (/mnt/user/appdata/TubeArchivist), and make sure to change the default password to something more secure. There is four additional settings in the "show more settings" area, but don't require any changes. @@ -27,7 +27,7 @@ Make sure and start Redis and the ElasticSearch containers approximately one min ### Install `TubeArchivist` -![TubeArchivist](https://i.imgur.com/dctyK3O.png) +![TubeArchivist](../assets/unraid_ta_install.png) It's finally time to set up TubeArchivist! From ad801bc3052c9ee9841cf95e9147824d82af3233 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 27 Apr 2023 09:22:28 +0700 Subject: [PATCH 02/44] fix scheduler examples escape --- mkdocs/docs/settings.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 1c19ea4..fa9dd80 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -91,8 +91,8 @@ Schedule settings expect a cron like format, where the first value is minute, se Examples: - `0 15 *`: Run task every day at 15:00 in the afternoon. -- `30 8 \*/2`: Run task every second day of the week (Sun, Tue, Thu, Sat) at 08:30 in the morning. -- `0 \*/3,8-17 *`: Execute every hour divisible by 3, and every hour during office hours (8 in the morning - 5 in the afternoon). +- `30 8 */2`: Run task every second day of the week (Sun, Tue, Thu, Sat) at 08:30 in the morning. +- `0 */3,8-17 *`: Execute every hour divisible by 3, and every hour during office hours (8 in the morning - 5 in the afternoon). - `0 8,16 *`: Execute every day at 8 in the morning and at 4 in the afternoon. - `auto`: Sensible default. - `0`: (zero), deactivate that task. From f51229676543e932d41e48897c7ada8bf3bc5759 Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 7 May 2023 10:59:28 +0700 Subject: [PATCH 03/44] bump libs --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8cf1914..d47e637 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cairosvg==2.7.0 -mkdocs==1.4.2 -mkdocs-material==9.1.5 +mkdocs==1.4.3 +mkdocs-material==9.1.9 pillow==9.5.0 From e856d8f6f8df2866b8464a4dddcf0a2ca378a56b Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 7 May 2023 10:59:44 +0700 Subject: [PATCH 04/44] fix cast link --- mkdocs/docs/installation/docker-compose.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/installation/docker-compose.md b/mkdocs/docs/installation/docker-compose.md index 34221c1..e260513 100644 --- a/mkdocs/docs/installation/docker-compose.md +++ b/mkdocs/docs/installation/docker-compose.md @@ -24,7 +24,7 @@ The main Python application that displays and serves your video collection, buil - For the scheduler to know what time it is, set your timezone with the `TZ` environment variable, defaults to *UTC*. - Serves the interface on port `8000` - Needs a volume for the video archive at `/youtube` - - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](#enable-cast). + - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](/configuration/cast/). ## Configuring TubeArchivist From c7f4d2a83d7cf0d8462218c883415856e0142f47 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 13 May 2023 14:31:42 +0700 Subject: [PATCH 05/44] update umami --- mkdocs/overrides/partials/integrations/analytics/custom.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/overrides/partials/integrations/analytics/custom.html b/mkdocs/overrides/partials/integrations/analytics/custom.html index f1827e0..2db3da0 100644 --- a/mkdocs/overrides/partials/integrations/analytics/custom.html +++ b/mkdocs/overrides/partials/integrations/analytics/custom.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 3fc46ec7cf2c10a076f8ee80607d8a37c390f9f6 Mon Sep 17 00:00:00 2001 From: Simon <35427372+bbilly1@users.noreply.github.com> Date: Sat, 13 May 2023 21:10:34 +0700 Subject: [PATCH 06/44] Release v0.3.6 (#8) * add new config options * auto start details * add video and channel metadata * add channel tags to searching * add autostart parameter docs * fix depreciated social cards * add description metadata * fix channel detail indent --- mkdocs/docs/api/download.md | 2 ++ mkdocs/docs/channels.md | 8 ++++++++ mkdocs/docs/downloads.md | 10 ++++++++-- mkdocs/docs/faq.md | 4 ++++ mkdocs/docs/index.md | 4 ++++ mkdocs/docs/playlists.md | 4 ++++ mkdocs/docs/search.md | 6 +++++- mkdocs/docs/settings.md | 8 +++++++- mkdocs/docs/users.md | 4 ++++ mkdocs/docs/video.md | 6 ++++++ mkdocs/mkdocs.yml | 8 ++++---- requirements.txt | 2 +- 12 files changed, 57 insertions(+), 9 deletions(-) diff --git a/mkdocs/docs/api/download.md b/mkdocs/docs/api/download.md index 887db08..c753aa9 100644 --- a/mkdocs/docs/api/download.md +++ b/mkdocs/docs/api/download.md @@ -17,6 +17,8 @@ Add list of videos to download queue: ] } ``` +Parameter: +- autostart: true Delete download queue items by filter: **DELETE** `/api/download/?filter=ignore` diff --git a/mkdocs/docs/channels.md b/mkdocs/docs/channels.md index cfa76dd..a55aa01 100644 --- a/mkdocs/docs/channels.md +++ b/mkdocs/docs/channels.md @@ -1,3 +1,7 @@ +--- +description: Subscribe to channels, browse your channels and access additional metadata. +--- + # Channels Pages The channels are organized on two different levels, similar to the [playlists](playlists.md): @@ -21,7 +25,9 @@ To search your channels, click on the search icon download icon will start the download process starting from the top of the queue. Take a look at the relevant settings on the [Settings Page](settings.md#downloads). Once the process started, a progress message will show with additional details and controls: +The **Start Download** icon download icon will start the download process. This will prioritize videos added as *auto start* or as *download now*, starting from the top of the queue. Once the process started, a progress message will show with additional details and controls: - The stop icon stop icon will gracefully stop the download process, once the current video has been finished successfully. - [Currenlty broken] The cancel icon close icon is equivalent to killing the process and will stop the download immediately. Any leftover files will get deleted, the canceled video will still be available in the download queue. @@ -18,7 +22,9 @@ The **Start Download** icon d
 After downloading, Tube Archivist tries to add new videos to already indexed playlists and if activated on the settings page, get comments for the new videos.
 
 ## Add to Download Queue
-The **Add to Download Queue** icon <img src= opens a text field to manually add videos to the download queue. Add one item per line. You have a few options: +The **Add to Download Queue** icon add icon opens a text field to manually add videos to the download queue. Add one item per line. The *Add to queue* will add the videos as regular items to the queue, you'll be able to ignore undesired videos before starting the queue. If you add them with *Download Now*, this will start the download automatically with priority. + +You have a few options: ### Videos - Add a YouTube video ID, for example `2tdiKTSdE9Y` diff --git a/mkdocs/docs/faq.md b/mkdocs/docs/faq.md index 6e2ff92..ceab0f2 100644 --- a/mkdocs/docs/faq.md +++ b/mkdocs/docs/faq.md @@ -1,3 +1,7 @@ +--- +description: Frequently asked questions about what this project is, what it tries and what it doesn't try to do. +--- + # Frequently Asked Questions ## What is the scope of this project? diff --git a/mkdocs/docs/index.md b/mkdocs/docs/index.md index 42f8851..5655f9d 100644 --- a/mkdocs/docs/index.md +++ b/mkdocs/docs/index.md @@ -1,3 +1,7 @@ +--- +description: Home of the documentation, additional installation instructions and user guide. Recommended reading for all interested in the project. +--- + # Tube Archivist Welcome to the official Tube Archivist Docs. This is an up-to-date documentation of user functionality. diff --git a/mkdocs/docs/playlists.md b/mkdocs/docs/playlists.md index 328cadd..255ee28 100644 --- a/mkdocs/docs/playlists.md +++ b/mkdocs/docs/playlists.md @@ -1,3 +1,7 @@ +--- +description: Subscribe to playlists, browse your playlists and access additional metadata. +--- + # Playlist Pages The playlists are organized in two different levels, similar as the [channels](channels.md): diff --git a/mkdocs/docs/search.md b/mkdocs/docs/search.md index 8c70232..91c3032 100644 --- a/mkdocs/docs/search.md +++ b/mkdocs/docs/search.md @@ -1,3 +1,7 @@ +--- +description: Unified search pagage to query your index. +--- + # Search Page Accessible at `/search/` of your **Tube Archivist**, search your archive for Videos, Channels and Playlists - or even full text search throughout your indexed subtitles. @@ -32,7 +36,7 @@ Start your query with the **primary keyword** `video:` to search for videos only - Note the omitted term after the primary key, this will show all videos from the channel *Tom Scott* that are no longer active on YouTube. ## Channel -Start with the `channel:` **primary keyword** to search for channels matching your query. This will search through the *channel name* and *channel description* fields. Narrow your search down with secondary keywords: +Start with the `channel:` **primary keyword** to search for channels matching your query. This will search through the *channel name*, *channel description* and *channel tags* fields. Narrow your search down with secondary keywords: - `subscribed:` is a boolean value, search for channels that you are subscribed to or not. - `active:` is a boolean value, to search for channels that are still active on YouTube or that are no longer active. diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index fa9dd80..104bf50 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -1,3 +1,7 @@ +--- +description: Configure this project, yt-dlp behavior, the scheduler and more. +--- + # Settings Page Accessible at `/settings/` of your **Tube Archivist**, this page holds all the configurations and additional functionality related to the database. @@ -15,11 +19,11 @@ Settings related to the channel management. Disable shorts or streams by setting - **Channel Page Size**: Defines how many pages will get analyzed by **Tube Archivist** each time you click on *Rescan Subscriptions*. The default page size used by yt-dlp is **50**, that's also the recommended value to set here. Any value higher will slow down the rescan process, for example if you set the value to 51, that means yt-dlp will have to go through 2 pages of results instead of 1 and by that doubling the time that process takes. - **Live Page Size**: Same as above, but for channel live streams. - **Shorts page Size**: Same as above, but for shorts videos. +- **Auto Start**: This will prioritize and automatically start downloading videos from your subscriptions over regular video added to the download queue. ## Downloads Settings related to the download process. -- **Download Limit**: Stop the download process after downloading the set quantity of videos. - **Download Speed Limit**: Set your download speed limit in KB/s. This will pass the option `--limit-rate` to yt-dlp. - **Throttled Rate Limit**: Restart download if the download speed drops below this value in KB/s. This will pass the option `--throttled-rate` to yt-dlp. Using this option might have a negative effect if you have an unstable or slow internet connection. - **Sleep Interval**: Time in seconds to sleep between requests to YouTube. It's a good idea to set this to **3** seconds. Might be necessary to avoid throttling. @@ -29,6 +33,8 @@ Settings related to the download process. Additional settings passed to yt-dlp. - **Format**: This controls which streams get downloaded and is equivalent to passing `--format` to yt-dlp. Use one of the recommended one or look at the documentation of [yt-dlp](https://github.com/yt-dlp/yt-dlp#format-selection). Please note: The option `--merge-output-format mp4` is automatically passed to yt-dlp to guarantee browser compatibility. Similar to that, `--check-formats` is passed as well to check that the selected formats are actually downloadable. +- **Format Sort**: This allows you to change how yt-dlp sorts formats by passing `--format-sort` to yt-dlp. Refere to the [documentation](https://github.com/yt-dlp/yt-dlp#sorting-formats), what you can pass here. Be aware, that some codecs might not be compatible with your browser of choice. +- **Extractor Language**: Some channels provide tranlated video titles and descriptions. Add the two letter ISO language code, to set your prefered default language. This will only have an effect, if the uploader adds translations. Not all language codes are supported, see the [documentation](https://github.com/yt-dlp/yt-dlp#youtube) (the `lang` section) for more details. - **Embed Metadata**: This saves the available tags directly into the media file by passing `--embed-metadata` to yt-dlp. - **Embed Thumbnail**: This will save the thumbnail into the media file by passing `--embed-thumbnail` to yt-dlp. diff --git a/mkdocs/docs/users.md b/mkdocs/docs/users.md index 29c089b..06a65b7 100644 --- a/mkdocs/docs/users.md +++ b/mkdocs/docs/users.md @@ -1,3 +1,7 @@ +--- +description: Create users, reset passwords, acces the admin interface. +--- + # User Management For now, **Tube Archivist** is a single user application. You can create multiple users with different names and passwords, they will share the same videos and permissions but some interface configurations are on a per user basis. *More is on the roadmap*. diff --git a/mkdocs/docs/video.md b/mkdocs/docs/video.md index 8b42adb..bd240ea 100644 --- a/mkdocs/docs/video.md +++ b/mkdocs/docs/video.md @@ -1,3 +1,7 @@ +--- +description: Complete Video metadata with playlist navigation and comments. +--- + # Video Page Every video downloaded gets a dedicated page accessible at `/video//` of your Tube Archivist. Throughout the interface, click on a video title to access the video page. @@ -9,6 +13,8 @@ Clicking on the channel name or the channel icon will bring you to the dedicated If available, a tag cloud will show, representing the tags set by the uploader. +There you can also find stream metadata like file size, video codecs, video bitrate and resolution, audio codecs and bitrate. + The video description is truncated to the first few lines, click on *show more* to expand the whole description. ## Playlist diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index b21fca3..b1877a4 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -59,9 +59,9 @@ extra: provider: custom plugins: - social: - cards_color: - fill: "#00202f" - text: "#eeeeee" - cards_font: Sen-Bold + cards_layout_options: + background_color: "#00202f" + color: "#eeeeee" + font_family: Sen-Bold - search: lang: en diff --git a/requirements.txt b/requirements.txt index d47e637..00b9140 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cairosvg==2.7.0 mkdocs==1.4.3 -mkdocs-material==9.1.9 +mkdocs-material==9.1.12 pillow==9.5.0 From 6d92bcdfb1ed5bbc7b8e87da705fb01df5f5db16 Mon Sep 17 00:00:00 2001 From: lamusmaser <1940060+lamusmaser@users.noreply.github.com> Date: Sat, 20 May 2023 00:02:20 -0600 Subject: [PATCH 07/44] #9 update synology section (#10) * Fix introduction statement. * Change the owner for ES. Update the file referenced for the permissions check. Update the file reference. * Replaced `.jpg` of previous file with `.png`. Replaced redis search image. Updated redis image to newer image type. * Fix grammar mistake. Change `HOST_GID` to 0. Add new section to start Upgrade details. * Add `Upgrade` section. * Added note about Links. * Add missing note quotes. * Replace the previous, manual method with the "Reset" action. --- ...2.0_Docker-Folder-Permissions-Commands.png | Bin 18476 -> 0 bytes .../Synology_0.2.0_Docker-Redis-Search.png | Bin 26297 -> 0 bytes ...3.6_Docker-Folder-Permissions-Commands.png | Bin 0 -> 197406 bytes .../Synology_0.3.6_Docker-Redis-Search.png | Bin 0 -> 22200 bytes mkdocs/docs/installation/synology.md | 37 ++++++++++++++---- 5 files changed, 29 insertions(+), 8 deletions(-) delete mode 100644 mkdocs/docs/assets/Synology_0.2.0_Docker-Folder-Permissions-Commands.png delete mode 100644 mkdocs/docs/assets/Synology_0.2.0_Docker-Redis-Search.png create mode 100644 mkdocs/docs/assets/Synology_0.3.6_Docker-Folder-Permissions-Commands.png create mode 100644 mkdocs/docs/assets/Synology_0.3.6_Docker-Redis-Search.png diff --git a/mkdocs/docs/assets/Synology_0.2.0_Docker-Folder-Permissions-Commands.png b/mkdocs/docs/assets/Synology_0.2.0_Docker-Folder-Permissions-Commands.png deleted file mode 100644 index fbf0557f3accb946571e516411e93c9dee09a8d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18476 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 N{Yq8#r?g4H{{lG9Ccgjx diff --git a/mkdocs/docs/assets/Synology_0.2.0_Docker-Redis-Search.png b/mkdocs/docs/assets/Synology_0.2.0_Docker-Redis-Search.png deleted file mode 100644 index 3ba0a2aef69560b4bb7b852c9ac3e513ab450bd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26297 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 diff --git a/mkdocs/docs/assets/Synology_0.3.6_Docker-Folder-Permissions-Commands.png b/mkdocs/docs/assets/Synology_0.3.6_Docker-Folder-Permissions-Commands.png new file mode 100644 index 0000000000000000000000000000000000000000..2be0fa9402f814a56e7fe921885cb7037d5c21bb GIT binary patch literal 197406 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

    uhthX7?OC&z45(&5$y7g>J7}9G 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 HN9?}<_N#IE literal 0 HcmV?d00001 diff --git a/mkdocs/docs/installation/synology.md b/mkdocs/docs/installation/synology.md index f65d181..0695e00 100644 --- a/mkdocs/docs/installation/synology.md +++ b/mkdocs/docs/installation/synology.md @@ -2,7 +2,7 @@ These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. -There are several different methods to install TubeArchivist on Synology platforms. This will focus on the available `docker` package and `docker-compose` implementations. +There are several different methods to install TubeArchivist on Synology platforms. This will focus on the available `docker` package implementation. ### Prepare Directories/Folders Before we setup TubeArchivist, we need to setup the directories/folders. You are assumed to be logged into the Synology NAS. @@ -69,10 +69,10 @@ Once all of the folders have been created, it should have a folder structure wit 6. Change the owner of the "redis" folder. *If correct, this does not have an output.*
    Example: `chown 999:100 redis` 7. Change the owner of the "es" folder. *If correct, this does not have an output.* -
    Example: `chown 1000:1000 es` +
    Example: `chown 1000:0 es` 8. Confirm that the folders have the correct permissions.
    Example: `ls -hl` -![Synology - Docker Folder Permissions Command](../assets/Synology_0.2.0_Docker-Folder-Permissions-Commands.png) +![Synology - Docker Folder Permissions Command](../assets/Synology_0.3.6_Docker-Folder-Permissions-Commands.png) 9. Logout from root.
    Example: `logout` 10. Disconnect from the SSH connection. @@ -96,12 +96,13 @@ Once all of the folders have been created, it should have a folder structure wit 2. After `Docker` is installed, open the `Docker` utility. 3. Go to the `Registry` tab. 4. Search for the following `images` and download them. Follow the recommended versions for each of the images. - - `redislabs/rejson` - ![Synology - Redis Image Search](../assets/Synology_0.2.0_Docker-Redis-Search.png) + - `redis/redis-stack-server` + ![Synology - Redis Image Search](../assets/Synology_0.3.6_Docker-Redis-Search.png) - `bbilly1/tubearchivist-es` ![Synology - ElasticSearch Image Search](../assets/Synology_0.2.0_Docker-ES-Search.png) - `bbilly1/tubearchivist` ![Synology - TubeArchivist Image Search](../assets/Synology_0.2.0_Docker-TA-Search.png) + > !!! note "Upgrades in Synology require use of the `latest` tag." #### 3. Configure ElasticSearch @@ -162,12 +163,12 @@ Once all of the folders have been created, it should have a folder structure wit 9. In the **Port Settings** tab, replace the "Auto" entry under **Local Port** with the port that will be used to connect to TubeArchivist (default is 8000). 10. In the **Links** tab, select the "tubearchivist-es" container from the **Container Name** dropdown and provide it the same alias, "tubearchivist-es". 11. In the **Links** tab, select the "tubearchivist-redis" container from the **Container Name** dropdown and provide it the same alias, "tubearchivist-redis". - 12. In the **Environment** tab, add in the following TubeArchivist specific environment variables that may apply. **Change the variables as-is appropriate to your use case. Follow the [README section](https://github.com/tubearchivist/tubearchivist#tube-archivist) for details on what to set each variable.** + 12. In the **Environment** tab, add in the following TubeArchivist specific environment variables that may apply. **Change the variables as is appropriate to your use case. Follow the [README section](https://github.com/tubearchivist/tubearchivist#tube-archivist) for details on what to set each variable.** - `TA_HOST=synology.local` - `ES_URL=http://tubearchivist-es:9200` - `REDIS_HOST=tubearchivist-redis` - `HOST_UID=1000` - - `HOST_GID=1000` + - `HOST_GID=0` - `TA_USERNAME=tubearchivist` - `TA_PASSWORD=verysecret` - `ELASTIC_PASSWORD=verysecret` @@ -190,4 +191,24 @@ Once all of the folders have been created, it should have a folder structure wit **From there, you should be able to start up your containers and you're good to go!** -If you're still having trouble, join us on [discord](https://www.tubearchivist.com/discord) and come to the #support channel. +### Synology Docker Upgrade +When a new version of the image is available, you can follow the following steps to more easily upgrade your previous instance. +!!!note "If you did not use the `latest` tag, you may have some variances in your upgrade steps. Those are detailed below these instructions." +1. Go to the Registry Tab and download the newest instance of the `:latest` tag, as seen in the Installation Instructions earlier. +2. Go to Image Tab and confirm that you have the newer version available. +3. Stop the running `tubearchivist` container. +4. Click on the **Action🔽** button and choose "Reset". +5. This will load the newer image we downloaded earlier. This should not delete any files if all of your volumes were setup correctly. +6. If it doesn't start automatically, start the `tubearchivist` container. Monitor the upgrade in the logs and confirm that the service starts up successfully. +7. Once you are able to login successfully to the web page for TubeArchivist, you have successfully upgraded your container! + + +!!! note "If you did not use the `latest` tag for the `tubearchivist` container, then you will instead do the following:" + 1. Shut down the old container. + 2. Download the new image. + 3. Follow the Installation instructions again *for just the TubeArchivist image*, using the same configurations as the existing container. It'll have to be named slightly differently. + 4. After the image is now running and the upgrade of the backend files occurs, shut down the new container. Rename or delete the old container. Rename the new container to have the intended name. + +!!! note "Links are incredibly important if you upgrade or change the ES or Redis container images. You will either need to remove the links, create the new containers, then re-add the links or rebuild all of the images with the same instructions as Installation, starting at Step 3." + +If you're still having trouble, join us on [discord](https://www.tubearchivist.com/discord) and come to the #support channel. \ No newline at end of file From fa188a961cce1d19825d495a055d94c2c3338fa0 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 20 May 2023 13:11:10 +0700 Subject: [PATCH 08/44] fix list new line --- mkdocs/docs/installation/synology.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mkdocs/docs/installation/synology.md b/mkdocs/docs/installation/synology.md index 0695e00..d5c4da9 100644 --- a/mkdocs/docs/installation/synology.md +++ b/mkdocs/docs/installation/synology.md @@ -57,7 +57,9 @@ Once all of the folders have been created, it should have a folder structure wit ![Synology - Docker Folder Structure](../assets/Synology_0.2.0_Docker-Folder-Structure.png) #### 8. Change Permissions - CLI Required -> If you do not have SSH access enabled for CLI, [enable it](https://kb.synology.com/en-sg/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet) before continuing. +!!! note + If you do not have SSH access enabled for CLI, [enable it](https://kb.synology.com/en-sg/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet) before continuing. + 1. Open the SSH connection to the Synology. Login as your primary `Admin` user, or the user that was enabled for SSH access. 2. Elevate your access to `root`. Steps are provided [here](https://kb.synology.com/en-sg/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet). 3. Change directories to the **Volume** where the "Docker" folder resides. @@ -102,7 +104,8 @@ Once all of the folders have been created, it should have a folder structure wit ![Synology - ElasticSearch Image Search](../assets/Synology_0.2.0_Docker-ES-Search.png) - `bbilly1/tubearchivist` ![Synology - TubeArchivist Image Search](../assets/Synology_0.2.0_Docker-TA-Search.png) - > !!! note "Upgrades in Synology require use of the `latest` tag." + > !!! note + "Upgrades in Synology require use of the `latest` tag." #### 3. Configure ElasticSearch @@ -177,6 +180,7 @@ Once all of the folders have been created, it should have a folder structure wit - Do not use the default password as it is very insecure. - Ensure that ELASTIC_PASSWORD matches the password used on the tubearchivist-es container. ![Synology - TubeArchivist Environment Configurations](../assets/Synology_0.2.0_Docker-TA-Env-Conf.png) + 13. Click on the **Apply** button. 14. Back on the **Create Container** screen, click the **Next** button. 15. Review the settings to confirm, then click the **Apply** button. From cd168567c2c38b20ac0ef7ab219500b0f687add9 Mon Sep 17 00:00:00 2001 From: Kartikey Chauhan Date: Sat, 17 Jun 2023 14:10:30 -0400 Subject: [PATCH 09/44] Update docker-compose.md Remove duplicate lines --- mkdocs/docs/installation/docker-compose.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/mkdocs/docs/installation/docker-compose.md b/mkdocs/docs/installation/docker-compose.md index e260513..a39871d 100644 --- a/mkdocs/docs/installation/docker-compose.md +++ b/mkdocs/docs/installation/docker-compose.md @@ -22,8 +22,6 @@ The main Python application that displays and serves your video collection, buil - Change the environment variables `TA_USERNAME` and `TA_PASSWORD` to create the initial credentials. - `ELASTIC_PASSWORD` is for the password for Elasticsearch. The environment variable `ELASTIC_USER` is optional, should you want to change the username from the default *elastic*. - For the scheduler to know what time it is, set your timezone with the `TZ` environment variable, defaults to *UTC*. - - Serves the interface on port `8000` - - Needs a volume for the video archive at `/youtube` - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](/configuration/cast/). From 22921ffa3c6a4c2a065b16f774e7b988bce8b318 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 21:19:26 +0700 Subject: [PATCH 10/44] ignore venv --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 4b1010d..7ad9795 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ mkdocs/site # ignore local cache mkdocs/.cache/ + +# python +.venv \ No newline at end of file From 902252a864b5be823c46ce38ea1a7541110913e0 Mon Sep 17 00:00:00 2001 From: Andre Ho Date: Sun, 30 Jul 2023 22:29:01 +0800 Subject: [PATCH 11/44] Update settings.md (#14) Add desciption for downloading Chinese subtitles --- mkdocs/docs/settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 104bf50..0740390 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -40,7 +40,7 @@ Additional settings passed to yt-dlp. ## Subtitles -- **Download Setting**: Select the subtitle language you like to download. Add a comma separated list for multiple languages. +- **Download Setting**: Select the subtitle language you like to download. Add a comma separated list for multiple languages. For Chinese you must specify `zh-Hans` or `zh-Hant`, specifying "zh" is invalid, otherwise the subtitle won't download successfully. - **Source Settings**: User created subtitles are provided from the uploader and are usually the video script. Auto generated is from YouTube, quality varies, particularly for auto translated tracks. - **Index Settings**: Enabling subtitle indexing will add the lines to Elasticsearch and will make subtitles searchable. This will increase the index size and is not recommended on low-end hardware. From 791bf448afcde4d3ae90bdeed75b83c49c1ed146 Mon Sep 17 00:00:00 2001 From: lamusmaser <1940060+lamusmaser@users.noreply.github.com> Date: Sun, 30 Jul 2023 08:30:18 -0600 Subject: [PATCH 12/44] #12 - add API updates for version responses. (#13) --- mkdocs/docs/api/additional.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mkdocs/docs/api/additional.md b/mkdocs/docs/api/additional.md index 95e1720..e66288d 100644 --- a/mkdocs/docs/api/additional.md +++ b/mkdocs/docs/api/additional.md @@ -132,10 +132,14 @@ Change watched state, where the `id` can be a single video, or channel/playlist Validate your connection with the API **GET** `/api/ping/` -When valid returns message with user id: +When valid returns message with user id and parsed TubeArchivist version (Family, Major, Minor): ```json { "response": "pong", - "user": 1 + "user": 1, + "version": [ + 0, + 3, + 6 + ] } -``` From 3ee23cbb54e859925c0fee40a62aa96e95ac5c83 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 23:04:25 +0700 Subject: [PATCH 13/44] bump requirements --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 00b9140..f352479 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cairosvg==2.7.0 -mkdocs==1.4.3 -mkdocs-material==9.1.12 -pillow==9.5.0 +mkdocs==1.5.1 +mkdocs-material==9.1.21 +pillow==10.0.0 From c9c901f032717ace0a1e306f358a38eede1db763 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 23:05:01 +0700 Subject: [PATCH 14/44] Consolidate links to separate page closes #7 --- mkdocs/docs/channels.md | 10 +++------- mkdocs/docs/downloads.md | 23 +++------------------ mkdocs/docs/playlists.md | 7 ++----- mkdocs/docs/urls.md | 43 ++++++++++++++++++++++++++++++++++++++++ mkdocs/mkdocs.yml | 1 + 5 files changed, 52 insertions(+), 32 deletions(-) create mode 100644 mkdocs/docs/urls.md diff --git a/mkdocs/docs/channels.md b/mkdocs/docs/channels.md index a55aa01..b95716d 100644 --- a/mkdocs/docs/channels.md +++ b/mkdocs/docs/channels.md @@ -13,13 +13,9 @@ Accessible at `/channel/` of your Tube Archivist, the **Overview Page** shows a The **Subscribe to Channels** button add icon opens a text field to subscribe to a channel. You have a few options: -- Enter the YouTube channel ID, a 25 character alphanumeric string. Example: - - `UCBa659QWEk1AI4Tg--mrJ2A` -- Enter the URL to the channel page on YouTube. Example: - - `https://www.youtube.com/channel/UCBa659QWEk1AI4Tg--mrJ2A` or alias url `https://www.youtube.com/@TomScottGo` -- Enter a channel alias starting with *@*, for example: `@TomScottGo` -- Enter the video URL for any video and let Tube Archivist extract the channel ID for you, for example `https://www.youtube.com/watch?v=2tdiKTSdE9Y` -- If you want to subscribe to more than one channel directly, you can add one channel per line in the text field +- Enter a [channel](urls.md#channel). +- Enter a [video](urls.md#video) and let Tube Archivist extract the channel ID for you. +- Add one per line. To search your channels, click on the search icon search icon to reach the search page. Start your query with `channel:`, learn more on the [search](search.md) page. diff --git a/mkdocs/docs/downloads.md b/mkdocs/docs/downloads.md index 999a065..176a2a2 100644 --- a/mkdocs/docs/downloads.md +++ b/mkdocs/docs/downloads.md @@ -27,30 +27,13 @@ The **Add to Download Queue** icon You opens a text field to subscribe to playlists. You have a few options: -- Enter the YouTube playlist id, for example: - - `PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha` -- Enter the Youtube dedicated playlist url, for example: - - `https://www.youtube.com/playlist?list=PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha` -- If you want to subscribe to more than one playlist directly, you can add one playlist per line in the text field +- Enter a playlist [playlist](urls.md#playlist) +- Add one per line. !!! note It doesn't make sense to subscribe to a playlist if you are already subscribed the corresponding channel as this will slow down the **Rescan Subscriptions** [task](downloads.md#rescan-subscriptions). diff --git a/mkdocs/docs/urls.md b/mkdocs/docs/urls.md new file mode 100644 index 0000000..96d5099 --- /dev/null +++ b/mkdocs/docs/urls.md @@ -0,0 +1,43 @@ +--- +description: How URLs from YouTube get parsed +--- + +# URLs +This document describes how Tube Archivist identifies and treats links from YouTube. + +!!! note + Application logic of Tube Archivist is tied only to the IDs, not the names. + +## Video +A video ID is **11** characters long, e.g. `2tdiKTSdE9Y`. + +Urls can have several forms: + +- Watch URL: Regular URLs so will see while browsing YouTube, with the path */watch* and a *v* parameter, e.g. `https://www.youtube.com/watch?v=2tdiKTSdE9Y` +- Share URL: Link you will get when you click on *share* on a video, e.g. `https://youtu.be/2tdiKTSdE9Y` +- Shorts URL: e.g. `https://www.youtube.com/shorts/U80grnZJm_8` + +## Channel +A channel ID is **24** characters long, e.g. `UCBa659QWEk1AI4Tg--mrJ2A`. + +Channel URLs can have these forms, all will get translated to the ID: + +- ID URL: With a *channel* path, e.g. `https://www.youtube.com/channel/UCBa659QWEk1AI4Tg--mrJ2A` +- Channel Handle: Starting with a `@` this handle is personal and unique, e.g. `@TomScottGo` +- Alias URL: Based off the channel handle, e.g. `https://www.youtube.com/@TomScottGo` + +### Channel sub pages +Tube archivist can separate between different subpages: + +- Videos only: `https://www.youtube.com/@IBRACORP/videos` +- Shorts only: `https://www.youtube.com/@IBRACORP/shorts` +- Streams only: `https://www.youtube.com/@IBRACORP/streams` +- Every other channel sub page will default to download all, for example `https://www.youtube.com/@IBRACORP/featured` will download videos and shorts and streams. + +## Playlist +A playlist ID can be `34`, `26` or `18` characters long, e.g. `PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha` + +- Playlist URLs start with a *playlist* path and has a *list* parameter, e.g. `https://www.youtube.com/playlist?list=PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha` + +### Playlist vs Video URLs +While browsing YouTube videos in Playlists, you might encounter URLs looking like that: `https://www.youtube.com/watch?v=QPZ0pIK_wsc&list=PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha`. As established above, based on the */watch* path and the *v* parameter, Tube Archivist will treat this as a video with the ID `QPZ0pIK_wsc` and **not** as a playlist. If you mean the playlist, you can easily grab the correct ID from the URL, e.g. `PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha`. diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index b1877a4..84a5134 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -4,6 +4,7 @@ nav: - Home: 'index.md' - User Guide: - 'FAQ': 'faq.md' + - 'URLs': 'urls.md' - 'Downloads Page': 'downloads.md' - 'Channels Pages': 'channels.md' - 'Video': 'video.md' From 30c3efa29df3355b32b5dfbd3055cd7dcde86dd3 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 23:15:11 +0700 Subject: [PATCH 15/44] workaround for social font error --- mkdocs/mkdocs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index 84a5134..dd64515 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -63,6 +63,5 @@ plugins: cards_layout_options: background_color: "#00202f" color: "#eeeeee" - font_family: Sen-Bold - search: lang: en From d99e536c56c882a02f711e0b2add7ae3717bec6a Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 23:15:20 +0700 Subject: [PATCH 16/44] bump python base --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 137dcbc..85036c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # build the docs and load static files into nginx -FROM python:3.10.9-slim-bullseye AS builder +FROM python:3.11.3-slim-bullseye AS builder ENV PATH=/root/.local/bin:$PATH RUN apt-get update -y && apt-get install -y libcairo2 From 83463251ab2506ac2dfa4d2ef057c87310dbbcd7 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 30 Jul 2023 23:51:48 +0700 Subject: [PATCH 17/44] update FAQ --- mkdocs/docs/faq.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mkdocs/docs/faq.md b/mkdocs/docs/faq.md index ceab0f2..d07a68a 100644 --- a/mkdocs/docs/faq.md +++ b/mkdocs/docs/faq.md @@ -29,7 +29,8 @@ Although there are similarities between these excellent projects and Tube Archiv Part of the scope is to be its own media server, to be able to overcome these limitations, so that's where the focus and effort of this project is. That being said, the nature of self hosted and open source software gives you all the possible freedom to use your media as you wish. -- **Jellyfin**: There is a proof of concept script for linking these two APIs together and to populate metadata from Tube Archivist to Jellyfin: [tubearchivist/jellyfin](https://github.com/tubearchivist/jellyfin). Please contribute to improve this integration. +- **Jellyfin**: There is an API to API integration available to sync metadata from Tube Archivist to Jellyfin: [tubearchivist/jellyfin](https://github.com/tubearchivist/jellyfin). Follow the instructions there. Please contribute to improve this integration. +- **Plex**: Progress is happening on that... ## How do I install this natively? This project is a classical Docker application: There are multiple moving parts that need to be able to interact with each other and need to be compatible with multiple architectures and operating systems. Additionally Docker also drastically reduces development complexity which is highly appreciated. @@ -59,3 +60,12 @@ Using a Proxy/VPN can be advantages for heavy users of this project. Some users This project doesn't make any recommendations: Some people prefer to convert their home router to a VPN client, some have a home firewall capable of routing traffic, some prefer to set up their host network as a client and others prefer to use a networking container to tunnel container traffic through. Some prefer one of the many proxy protocols, others use various OpenVPN configurations, others use WireGuard. There are too many variations of that problem to be implemented in this project, use any of the various solutions out there that fits your needs. + +## Why is there no flexible naming structure? +Unlike other similar projects, Tube Archivist needs to keep track of its media files indefinitely while everything can change: Channel names and aliases and titles regularly change over time. Previous attempts failed at handling that properly and the metadata refresh task kept failing because of that. + +This project tries to be compatible with as many filesystem/OS variations out there as possible. Using channel names and titles to build file paths that can be any Unicode character is a flawed and highly error prone approach of doing that, there is always a filesystem/OS out there that proves to be incompatible with how something is named. + +That's why this project has landed on `/.mp4`. These values are guaranteed to be static, are guaranteed to be compatible with every filesystem out there and make things predictable where all files will go on every instance of Tube Archivist indefinitely. + +For browsing these files you have the fancy interface provided by this project, or use a supported integration as stated above. If you really want to you could easily also create your own file naming structure with the API and symlinks, but that is not part of the scope of this project. From c79ff57162eab20a5e369a2ec9fe570db42c2a93 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 31 Jul 2023 20:27:59 +0700 Subject: [PATCH 18/44] add notification docs --- mkdocs/docs/settings.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 0740390..9b25320 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -108,6 +108,15 @@ Examples: - Cron format as *number*/*number* are none standard cron and are not supported by the scheduler, for example `0 0/12 *` is invalid, use `0 */12 *` instead. - Avoid an unnecessary frequent schedule to not get blocked by YouTube. For that reason, the scheduler doesn't support schedules that trigger more than once per hour. +## Notifications +Some of the scheduled tasks support sending notifications at task completion with a short summary message. This uses the amazing [Apprise](https://github.com/caronc/apprise) framework, refere to the wiki about the [basics](https://github.com/caronc/apprise/wiki/URLBasics) how to build links and a list of [supported services](https://github.com/caronc/apprise/wiki#notification-services) for the details. + +Notes: + +- This will only send notifications when a task returns anything, e.g. if a [Rescan Subscriptions](#rescan-subscriptions) task doesn't find any new videos to add, no notification will get sent. +- Due to the fact that apprise is running inside a docker container, [desktop notifications](https://github.com/caronc/apprise/wiki#desktop-notification-services) will not work. +- Add one per line. + ## Rescan Subscriptions That's the equivalent task as run from the downloads page looking through your channel and playlist and add missing videos to the download queue. From 2291a99ecb431e6f7cd471f3c3eff107afbac7d9 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 31 Jul 2023 20:28:13 +0700 Subject: [PATCH 19/44] add failed download docs --- mkdocs/docs/downloads.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs/docs/downloads.md b/mkdocs/docs/downloads.md index 176a2a2..339a72b 100644 --- a/mkdocs/docs/downloads.md +++ b/mkdocs/docs/downloads.md @@ -45,6 +45,8 @@ Every video in the download queue has two buttons: - **Ignore**: This will remove that video from the download queue and this video will not get added again, even when you **Rescan Subscriptions**. - **Download now**: This will give priority to this video. If the download process is already running, the prioritized video will get downloaded as soon as the current video is finished. If there is no download process running, this will start downloading this single video and stop after that. +Failed videos will show an error message of what went wrong and will give you additional options with how to continue. Usually this means the video in the queue is no longer available on YouTube. Tube Archivist will not retry to download a failed video. + You can flip the view by activating **Show Only Ignored Videos**. This will show all videos you have previously *ignored*. Every video in the ignored list has two buttons: From 303fbe9cf2cfb92e9fabb4c9e8c79568443c9357 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 5 Aug 2023 14:37:16 +0700 Subject: [PATCH 20/44] improve notification wording --- mkdocs/docs/settings.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 9b25320..27d0b2f 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -109,7 +109,12 @@ Examples: - Avoid an unnecessary frequent schedule to not get blocked by YouTube. For that reason, the scheduler doesn't support schedules that trigger more than once per hour. ## Notifications -Some of the scheduled tasks support sending notifications at task completion with a short summary message. This uses the amazing [Apprise](https://github.com/caronc/apprise) framework, refere to the wiki about the [basics](https://github.com/caronc/apprise/wiki/URLBasics) how to build links and a list of [supported services](https://github.com/caronc/apprise/wiki#notification-services) for the details. +Some of the tasks support sending notifications at task completion with a short summary message. Tasks can get started through the scheduler or manually from the interface. This uses the amazing [Apprise](https://github.com/caronc/apprise) framework, refer to the wiki about the [basics](https://github.com/caronc/apprise/wiki/URLBasics) how to build links and a list of [supported services](https://github.com/caronc/apprise/wiki#notification-services) for the details. + +Send yourself a test notification to verify your link works, e.g.: +```bash +docker exec -it tubearchivist apprise -b "Hello from TA" +``` Notes: From 54f69e1943626c62c1b27adc5287a3f1c52c0206 Mon Sep 17 00:00:00 2001 From: crocs <34723037+pairofcrocs@users.noreply.github.com> Date: Sat, 5 Aug 2023 02:45:27 -0500 Subject: [PATCH 21/44] Update unraid.md (#15) --- mkdocs/docs/installation/unraid.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs/docs/installation/unraid.md b/mkdocs/docs/installation/unraid.md index 8b965ca..0de1c2e 100644 --- a/mkdocs/docs/installation/unraid.md +++ b/mkdocs/docs/installation/unraid.md @@ -60,5 +60,7 @@ It's finally time to set up TubeArchivist! **From there, you should be able to start up your containers and you're good to go!** +If you run into permission errors, try ```'newperms /mnt/user/appdata/TubeArchivist/'``` to reset the permissions to the root of your TubeArchivist appdata folder. + If you're still having trouble, join us on [discord](https://www.tubearchivist.com/discord) and come to the [#support channel.](https://discord.com/channels/920056098122248193/1006394050217246772) From 7f024e5462a153278dc0f8b3409b2db9caa10e1f Mon Sep 17 00:00:00 2001 From: GrantMcLravy <69214295+GrantMcLravy@users.noreply.github.com> Date: Sat, 19 Aug 2023 23:54:00 -0400 Subject: [PATCH 22/44] Include the .md extension for relative links (#16) * updating tubearchivist/jellyfin to tubearchivist-jf * adding .md file extension * fixing /#, removing slash --- mkdocs/docs/faq.md | 6 +++--- mkdocs/docs/index.md | 8 ++++---- mkdocs/docs/installation/docker-compose.md | 2 +- mkdocs/docs/settings.md | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mkdocs/docs/faq.md b/mkdocs/docs/faq.md index d07a68a..f35ecce 100644 --- a/mkdocs/docs/faq.md +++ b/mkdocs/docs/faq.md @@ -29,7 +29,7 @@ Although there are similarities between these excellent projects and Tube Archiv Part of the scope is to be its own media server, to be able to overcome these limitations, so that's where the focus and effort of this project is. That being said, the nature of self hosted and open source software gives you all the possible freedom to use your media as you wish. -- **Jellyfin**: There is an API to API integration available to sync metadata from Tube Archivist to Jellyfin: [tubearchivist/jellyfin](https://github.com/tubearchivist/jellyfin). Follow the instructions there. Please contribute to improve this integration. +- **Jellyfin**: There is an API to API integration available to sync metadata from Tube Archivist to Jellyfin: [tubearchivist/tubearchivist-jf](https://github.com/tubearchivist/tubearchivist-jf). Follow the instructions there. Please contribute to improve this integration. - **Plex**: Progress is happening on that... ## How do I install this natively? @@ -48,9 +48,9 @@ That might be an unconventional choice at first glance. Tube Archivist is built That comes at a price: ES can use a lot of memory, particularly on a big index, and will heavily use in memory cached queries to be able to respond within milliseconds, even when searching through multiple GBs of raw text. ## Why does subscribing to a channel not download the complete channel? -For Tube Archivist, these are two different things: To download a complete channel, add it to the [download queue](downloads/#add-to-download-queue) with the form or with [Tube Archivist Companion](https://github.com/tubearchivist/browser-extension), the browser extension. This is meant for a complete archival. +For Tube Archivist, these are two different things: To download a complete channel, add it to the [download queue](downloads.md#add-to-download-queue) with the form or with [Tube Archivist Companion](https://github.com/tubearchivist/browser-extension), the browser extension. This is meant for a complete archival. -Subscribing to a channel is for downloading new videos as they come out. That is designed to be as quick as possible, to allow you to efficiently rescan your favourite channels frequently. This will add videos to your download queue based on your [channel page size](settings/#subscriptions). +Subscribing to a channel is for downloading new videos as they come out. That is designed to be as quick as possible, to allow you to efficiently rescan your favourite channels frequently. This will add videos to your download queue based on your [channel page size](settings.md#subscriptions). If you want to archive the complete channel **and** any future videos, you can do both. diff --git a/mkdocs/docs/index.md b/mkdocs/docs/index.md index 5655f9d..f95577a 100644 --- a/mkdocs/docs/index.md +++ b/mkdocs/docs/index.md @@ -7,10 +7,10 @@ Welcome to the official Tube Archivist Docs. This is an up-to-date documentation ## Getting Started -1. [Subscribe](channels#channels-overview) to some of your favourite YouTube channels. -2. [Scan](downloads#rescan-subscriptions) subscriptions to add the latest videos to the download queue. -3. [Add](downloads#add-to-download-queue) additional videos, channels or playlist - ignore the ones you don't want to download. -4. [Download](downloads#download-queue) and let **Tube Archivist** do it's thing. +1. [Subscribe](channels.md#channels-overview) to some of your favourite YouTube channels. +2. [Scan](downloads.md#rescan-subscriptions) subscriptions to add the latest videos to the download queue. +3. [Add](downloads.md#add-to-download-queue) additional videos, channels or playlist - ignore the ones you don't want to download. +4. [Download](downloads.md#download-queue) and let **Tube Archivist** do it's thing. 5. Sit back and enjoy your archived and indexed collection! ## General Navigation diff --git a/mkdocs/docs/installation/docker-compose.md b/mkdocs/docs/installation/docker-compose.md index a39871d..d5187b2 100644 --- a/mkdocs/docs/installation/docker-compose.md +++ b/mkdocs/docs/installation/docker-compose.md @@ -22,7 +22,7 @@ The main Python application that displays and serves your video collection, buil - Change the environment variables `TA_USERNAME` and `TA_PASSWORD` to create the initial credentials. - `ELASTIC_PASSWORD` is for the password for Elasticsearch. The environment variable `ELASTIC_USER` is optional, should you want to change the username from the default *elastic*. - For the scheduler to know what time it is, set your timezone with the `TZ` environment variable, defaults to *UTC*. - - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](/configuration/cast/). + - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](../configuration/cast.md). ## Configuring TubeArchivist diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 27d0b2f..3bff641 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -80,7 +80,7 @@ All third party integrations of TubeArchivist will **always** be *opt in*. - **API**: Your access token for the Tube Archivist API. - **returnyoutubedislike.com**: This will get return dislikes and average ratings for each video by integrating with the API from [returnyoutubedislike.com](https://www.returnyoutubedislike.com/). -- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](Settings#channel-customize). +- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](settings.md#channel-customize). ## Snapshots !!! note From a67a62a06398a0ab1ef849a459ab43e45c0ae344 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 22 Aug 2023 23:11:20 +0700 Subject: [PATCH 23/44] fix some links and indenting --- mkdocs/docs/channels.md | 1 + mkdocs/docs/installation/helm-charts.md | 2 +- mkdocs/docs/installation/podman.md | 4 ++-- mkdocs/docs/installation/synology.md | 4 ++-- mkdocs/docs/installation/truenas-scale.md | 4 ++-- mkdocs/docs/installation/unraid.md | 4 ++-- mkdocs/docs/playlists.md | 1 + mkdocs/docs/settings.md | 2 +- 8 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mkdocs/docs/channels.md b/mkdocs/docs/channels.md index b95716d..6d22d41 100644 --- a/mkdocs/docs/channels.md +++ b/mkdocs/docs/channels.md @@ -8,6 +8,7 @@ The channels are organized on two different levels, similar to the [playlists](p ## Channels Overview Accessible at `/channel/` of your Tube Archivist, the **Overview Page** shows a list of all channels you have indexed. + - You can filter that list to show or hide subscribed channels with the toggle. Clicking on the channel banner or the channel name will direct you to the *Channel Detail Page*. - If you are subscribed to a channel an *Unsubscribe* button will show, if you aren't subscribed, a *Subscribe* button will show instead. diff --git a/mkdocs/docs/installation/helm-charts.md b/mkdocs/docs/installation/helm-charts.md index 2abd47a..682ec97 100644 --- a/mkdocs/docs/installation/helm-charts.md +++ b/mkdocs/docs/installation/helm-charts.md @@ -1,4 +1,4 @@ !!! note - These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. + These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing). If you see any issues here while using these instructions, please contribute. There is a Helm Chart available at [https://github.com/insuusvenerati/helm-charts](https://github.com/insuusvenerati/helm-charts). Mostly self-explanatory but feel free to ask questions in the discord / subreddit. \ No newline at end of file diff --git a/mkdocs/docs/installation/podman.md b/mkdocs/docs/installation/podman.md index ef1cdda..3af2c37 100644 --- a/mkdocs/docs/installation/podman.md +++ b/mkdocs/docs/installation/podman.md @@ -1,9 +1,9 @@ !!! note - These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. + These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing). If you see any issues here while using these instructions, please contribute. Podman handles container hostname resolving slightly differently than docker, so you need to make a few changes to the `docker-compose.yml` to get up and running. -### Follow the installation instructions from the [README](https://github.com/tubearchivist/tubearchivist#installing-and-updating), with a few additional changes to the `docker-compose.yml`. +### Follow the installation instructions from the [README](https://github.com/tubearchivist/tubearchivist#installing), with a few additional changes to the `docker-compose.yml`. Edit these additional changes to the `docker-compose.yml`: diff --git a/mkdocs/docs/installation/synology.md b/mkdocs/docs/installation/synology.md index d5c4da9..03fd600 100644 --- a/mkdocs/docs/installation/synology.md +++ b/mkdocs/docs/installation/synology.md @@ -1,5 +1,5 @@ !!! note - These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. + These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing). If you see any issues here while using these instructions, please contribute. There are several different methods to install TubeArchivist on Synology platforms. This will focus on the available `docker` package implementation. @@ -166,7 +166,7 @@ Once all of the folders have been created, it should have a folder structure wit 9. In the **Port Settings** tab, replace the "Auto" entry under **Local Port** with the port that will be used to connect to TubeArchivist (default is 8000). 10. In the **Links** tab, select the "tubearchivist-es" container from the **Container Name** dropdown and provide it the same alias, "tubearchivist-es". 11. In the **Links** tab, select the "tubearchivist-redis" container from the **Container Name** dropdown and provide it the same alias, "tubearchivist-redis". - 12. In the **Environment** tab, add in the following TubeArchivist specific environment variables that may apply. **Change the variables as is appropriate to your use case. Follow the [README section](https://github.com/tubearchivist/tubearchivist#tube-archivist) for details on what to set each variable.** + 12. In the **Environment** tab, add in the following TubeArchivist specific environment variables that may apply. **Change the variables as is appropriate to your use case. Follow the [README section](https://github.com/tubearchivist/tubearchivist#installing) for details on what to set each variable.** - `TA_HOST=synology.local` - `ES_URL=http://tubearchivist-es:9200` - `REDIS_HOST=tubearchivist-redis` diff --git a/mkdocs/docs/installation/truenas-scale.md b/mkdocs/docs/installation/truenas-scale.md index 667b7a9..1f619d4 100644 --- a/mkdocs/docs/installation/truenas-scale.md +++ b/mkdocs/docs/installation/truenas-scale.md @@ -1,10 +1,10 @@ !!! note - These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. + These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing). If you see any issues here while using these instructions, please contribute. Truenas Scale can be a bit confusing, with its k3s kubernetes implementation. However, there is a step by step guide available for it's users here: -https://heavysetup.info/applications/tube-archivist/dataset/ +[heavysetup.info](https://heavysetup.info/applications/tube-archivist/dataset/) - Ensure you are navigating the columns under `Tube Archivist` on the left hand side of the screen diff --git a/mkdocs/docs/installation/unraid.md b/mkdocs/docs/installation/unraid.md index 0de1c2e..36e7d00 100644 --- a/mkdocs/docs/installation/unraid.md +++ b/mkdocs/docs/installation/unraid.md @@ -1,5 +1,5 @@ !!! note - These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing-and-updating). If you see any issues here while using these instructions, please contribute. + These are beginner's guides/installation instructions for additional platforms generously provided by users of these platforms. When in doubt, verify the details with the [project README](https://github.com/tubearchivist/tubearchivist#installing). If you see any issues here while using these instructions, please contribute. Tube Archivist, and all if it's dependencies are located in the [community applications](https://unraid.net/community/apps?q=tubearchivist) store. The three containers you will need are as follows: @@ -12,7 +12,7 @@ Tube Archivist, and all if it's dependencies are located in the [community appli ![TubeArchivist-RedisJSON](../assets/unraid_redis_install.png) This is the easiest container to setup of the thee, just make sure that you do not have any port conflicts, and that your `/data` is mounted to the correct path. The other containers will map to the same root directory (/mnt/user/appdata/TubeArchivist). -If you need to install `TubeArchivist-RedisJSON`on a different port, you'll have to follow [these steps](https://github.com/tubearchivist/tubearchivist#redis-on-a-custom-port) later on when installing the `TubeArchivist` container. +If you need to install `TubeArchivist-RedisJSON`on a different port, you'll have to follow [these steps](docker-compose.md#redis-on-a-custom-port) later on when installing the `TubeArchivist` container. Make sure and start Redis and the ElasticSearch containers approximately one minute before starting `TubeArchivist` diff --git a/mkdocs/docs/playlists.md b/mkdocs/docs/playlists.md index 33adb31..c0844d0 100644 --- a/mkdocs/docs/playlists.md +++ b/mkdocs/docs/playlists.md @@ -7,6 +7,7 @@ The playlists are organized in two different levels, similar as the [channels](c ## Playlist Overview Accessible at `/playlist/` of your Tube Archivist, this **Overview Page** shows a list of all playlists you have indexed over all your channels. + - You can filter that list to show only subscribed to playlists with the toggle. You can index playlists of a channel from the channel detail page as described [here](channels.md#channel-detail). diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md index 3bff641..4e59945 100644 --- a/mkdocs/docs/settings.md +++ b/mkdocs/docs/settings.md @@ -80,7 +80,7 @@ All third party integrations of TubeArchivist will **always** be *opt in*. - **API**: Your access token for the Tube Archivist API. - **returnyoutubedislike.com**: This will get return dislikes and average ratings for each video by integrating with the API from [returnyoutubedislike.com](https://www.returnyoutubedislike.com/). -- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](settings.md#channel-customize). +- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](channels.md#about). ## Snapshots !!! note From 00fd7896ed09bd7ccdefc07a9165f7538c37ea4a Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 22 Aug 2023 23:53:03 +0700 Subject: [PATCH 24/44] add advanced page --- mkdocs/docs/advanced.md | 33 +++++++++++++++++++++++++++++++ mkdocs/docs/stylesheets/style.css | 5 +++++ mkdocs/mkdocs.yml | 1 + 3 files changed, 39 insertions(+) create mode 100644 mkdocs/docs/advanced.md diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md new file mode 100644 index 0000000..66e3157 --- /dev/null +++ b/mkdocs/docs/advanced.md @@ -0,0 +1,33 @@ +# Advanced Notes + +!!! note + As a general rule of thumb, make sure your backups are up to date before continuing with anything here. + +A loose collection of advanced debug info, may or may not apply to you, only use this when you know what you are doing. Some of that functionality might get implemented in the future in the regular UI. + +## Reactivate all Videos +As part of the metadata refresh task, Tube Archivist will mark videos as deactivated, if they are no longer available on YouTube. For some reasons, that might have deactivated videos that shouldn't have, for example if a video got reinstated after a copyright strike on YT. You can reactivate all videos in bulk, so the refresh task will check them again and deactivate the ones that are actually not available anymore. + +Run this curl command from within the TA container: + +```bash +curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' +{ + "query": { + "term": { + "active": { + "value": false + } + } + }, + "script": { + "source": "ctx._source.active = true", + "lang": "painless" + } +}' +``` + +## Corrupted ES index reset +After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings.md#snapshots) set up. + +ES will not start, if the data is corrupted. So, stop all containers, delete everything *except* the `/snapshot` folder in the ES volume. After that, start everything back up. Tube Archivist will create a new blank index. All your snapshots should be available for restore on your settings page, you probably want to restore the most recent one. After restore, run a [filesystem rescan](settings.md#rescan-filesystem) for good measures. diff --git a/mkdocs/docs/stylesheets/style.css b/mkdocs/docs/stylesheets/style.css index 00d1ed1..e29af50 100644 --- a/mkdocs/docs/stylesheets/style.css +++ b/mkdocs/docs/stylesheets/style.css @@ -40,6 +40,10 @@ footer { border-color: var(--accent-font-light); } +.highlight .nv { + color: var(--highlight-error-light); +} + [data-md-color-scheme="tubearchivist"] { --md-default-bg-color: var(--main-bg); --md-default-fg-color: var(--main-font); @@ -60,6 +64,7 @@ footer { --md-code-hl-string-color: var(--accent-font-dark); --md-code-hl-number-color: var(--highlight-error-light); --md-code-hl-operator-color: var(--highlight-error); + --md-code-nv-color: var(--highlight-error); } :root { diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index dd64515..635c33e 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -12,6 +12,7 @@ nav: - 'Search': 'search.md' - 'Users': 'users.md' - 'Settings': 'settings.md' + - 'Advanced': 'advanced.md' - Installation: - 'Docker-Compose (default)': 'installation/docker-compose.md' - 'Unraid': 'installation/unraid.md' From d8d67e2eaf9e4f3c1d52e6c5352f62d4bde1beb6 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 22 Aug 2023 23:53:21 +0700 Subject: [PATCH 25/44] bump requirements --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index f352479..847dc7a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -cairosvg==2.7.0 -mkdocs==1.5.1 -mkdocs-material==9.1.21 +cairosvg==2.7.1 +mkdocs==1.5.2 +mkdocs-material==9.2.3 pillow==10.0.0 From 8a99e5da65766aedf8cf54e931a431c98f3419ab Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 22 Aug 2023 23:58:47 +0700 Subject: [PATCH 26/44] add advanced description --- mkdocs/docs/advanced.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index 66e3157..5c14afe 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -1,3 +1,7 @@ +--- +description: Collection of advanced concepts and debug info. +--- + # Advanced Notes !!! note From 68b2f21fa130bfad9668f083795a367726ee7787 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 23 Aug 2023 22:29:25 +0700 Subject: [PATCH 27/44] [API] add sub/unsub docs --- mkdocs/docs/api/channel.md | 2 +- mkdocs/docs/api/playlist.md | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mkdocs/docs/api/channel.md b/mkdocs/docs/api/channel.md index 89623bc..ecdfbf9 100644 --- a/mkdocs/docs/api/channel.md +++ b/mkdocs/docs/api/channel.md @@ -7,7 +7,7 @@ Parameter: - filter: subscribed -Subscribe to a list of channels: +Subscribe/Unsubscribe to a list of channels: **POST** `/api/channel/` ```json { diff --git a/mkdocs/docs/api/playlist.md b/mkdocs/docs/api/playlist.md index c07ab74..ddb110b 100644 --- a/mkdocs/docs/api/playlist.md +++ b/mkdocs/docs/api/playlist.md @@ -3,6 +3,16 @@ ## Playlist List **GET** `/api/playlist/` +Subscribe/Unsubscribe to a list of playlists: +**POST** `/api/playlist/` +```json +{ + "data": [ + {"playlist_id": "PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha", "playlist_subscribed": true} + ] +} +``` + ## Playlist Item **GET** `/api/playlist//` From e4fa6ed2bf7dc9a67093f83055336e84dca2d3a1 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 23 Aug 2023 23:55:04 +0700 Subject: [PATCH 28/44] add delete playlist API docs --- mkdocs/docs/api/playlist.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkdocs/docs/api/playlist.md b/mkdocs/docs/api/playlist.md index ddb110b..9136a1f 100644 --- a/mkdocs/docs/api/playlist.md +++ b/mkdocs/docs/api/playlist.md @@ -16,5 +16,11 @@ Subscribe/Unsubscribe to a list of playlists: ## Playlist Item **GET** `/api/playlist//` +Delete playlist, metadata only: +**DELETE** `/api/playlist//` +Delete playlist, also delete all videos in playlist: +**DELETE** `/api/playlist//?delete-videos=true` + + ## Playlist Videos **GET** `/api/playlist//video/` From b06ab3a22a495621718888c27635a51a87a76764 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 24 Aug 2023 22:46:55 +0700 Subject: [PATCH 29/44] add channel search API docs --- mkdocs/docs/api/channel.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkdocs/docs/api/channel.md b/mkdocs/docs/api/channel.md index ecdfbf9..c678c20 100644 --- a/mkdocs/docs/api/channel.md +++ b/mkdocs/docs/api/channel.md @@ -17,6 +17,12 @@ Subscribe/Unsubscribe to a list of channels: } ``` +## Channel Search +**GET** `/api/channel/?q=` + +Parameter: +- q: Query to search channel + ## Channel Item **GET** `/api/channel//` **DELETE** `/api/channel/\/` From 1caa07cd3fbcee13949e104fcfbfc153b7503b80 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 26 Aug 2023 20:58:16 +0700 Subject: [PATCH 30/44] add more API notes --- mkdocs/docs/api/introduction.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkdocs/docs/api/introduction.md b/mkdocs/docs/api/introduction.md index cd659ba..55d295c 100644 --- a/mkdocs/docs/api/introduction.md +++ b/mkdocs/docs/api/introduction.md @@ -5,6 +5,12 @@ This page has a generic overview with how the Tube Archivist API functions. This !!! note These API endpoints *have* changed in the past and *will* change again while building out additional integrations and functionality. For the time being, don't expect backwards compatibility for third party integrations using these endpoints. +!!! note + Endpoints marked as **experimental** are particularly likely to change again. + +!!! note + Not all endpoints will return expected status codes for errors, e.g. sometimes you'll see an error **500 Server Error** even though it should be **400 Bad request**. If you encounter any such cases, [please fix them](https://github.com/tubearchivist/tubearchivist/blob/master/CONTRIBUTING.md#how-to-make-a-pull-request) as you find them, no need to clutter up the issue queue. + ## Context - All changes to the API are marked with a `[API]` keyword for easy searching, for example search for [commits](https://github.com/tubearchivist/tubearchivist/search?o=desc&q=%5Bapi%5D&s=committer-date&type=commits). You'll find the same in the [release notes](https://github.com/tubearchivist/tubearchivist/releases). - Check the commit history and release notes to see if a documented feature is already in your release. The documentation might be ahead of the regular release schedule. From 37dd5f1c49f5ca59805c568ea728dc0203a5380e Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 26 Aug 2023 20:58:38 +0700 Subject: [PATCH 31/44] add experimental to channel search --- mkdocs/docs/api/channel.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mkdocs/docs/api/channel.md b/mkdocs/docs/api/channel.md index c678c20..d42bc7f 100644 --- a/mkdocs/docs/api/channel.md +++ b/mkdocs/docs/api/channel.md @@ -18,9 +18,13 @@ Subscribe/Unsubscribe to a list of channels: ``` ## Channel Search + +⚠️ **Experimental** + **GET** `/api/channel/?q=` -Parameter: +Parameter: + - q: Query to search channel ## Channel Item From d4d9506ad58c3bfce016aa0fb426a6feb6334dad Mon Sep 17 00:00:00 2001 From: dmynerd78 Date: Sun, 27 Aug 2023 00:02:12 +0000 Subject: [PATCH 32/44] Document fullscreen toggle hotkey --- mkdocs/docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs/docs/index.md b/mkdocs/docs/index.md index f95577a..6a5872f 100644 --- a/mkdocs/docs/index.md +++ b/mkdocs/docs/index.md @@ -29,6 +29,7 @@ You can control the video player with the following keyboard shortcuts: - `?`: Show help - `m`: toggle mute +- `f`: toggle fullscreen - `c`: toggle subtitles if available - `>`: increase playback speed - `<`: decrease playback speed From b335037f5f35cc4e35b11c70652338cb31f43556 Mon Sep 17 00:00:00 2001 From: lamusmaser Date: Thu, 31 Aug 2023 09:30:19 -0600 Subject: [PATCH 33/44] Add Plex integration to FAQ. --- mkdocs/docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/faq.md b/mkdocs/docs/faq.md index f35ecce..2b07d73 100644 --- a/mkdocs/docs/faq.md +++ b/mkdocs/docs/faq.md @@ -30,7 +30,7 @@ Although there are similarities between these excellent projects and Tube Archiv Part of the scope is to be its own media server, to be able to overcome these limitations, so that's where the focus and effort of this project is. That being said, the nature of self hosted and open source software gives you all the possible freedom to use your media as you wish. - **Jellyfin**: There is an API to API integration available to sync metadata from Tube Archivist to Jellyfin: [tubearchivist/tubearchivist-jf](https://github.com/tubearchivist/tubearchivist-jf). Follow the instructions there. Please contribute to improve this integration. -- **Plex**: Progress is happening on that... +- **Plex**: There is a Plex Scanner and Agent combination that allows integration between Tube Archivist and Plex: [tubearchivist/tubearchivist-plex](https://github.com/tubearchivist/tubearchivist-plex). Follow the instructions there. Please contribute to improve this integration. ## How do I install this natively? This project is a classical Docker application: There are multiple moving parts that need to be able to interact with each other and need to be compatible with multiple architectures and operating systems. Additionally Docker also drastically reduces development complexity which is highly appreciated. From af163d9c50a4e185b1bd67791e9f5c6141fbf5fb Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 2 Sep 2023 12:17:48 +0700 Subject: [PATCH 34/44] add more reactivate commands --- mkdocs/docs/advanced.md | 52 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index 5c14afe..cfc2348 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -9,19 +9,21 @@ description: Collection of advanced concepts and debug info. A loose collection of advanced debug info, may or may not apply to you, only use this when you know what you are doing. Some of that functionality might get implemented in the future in the regular UI. -## Reactivate all Videos -As part of the metadata refresh task, Tube Archivist will mark videos as deactivated, if they are no longer available on YouTube. For some reasons, that might have deactivated videos that shouldn't have, for example if a video got reinstated after a copyright strike on YT. You can reactivate all videos in bulk, so the refresh task will check them again and deactivate the ones that are actually not available anymore. +## Reactivate documents +As part of the metadata refresh task, Tube Archivist will mark videos, channels and playlists as deactivated, if they are no longer available on YouTube. For some reasons, that might have deactivated something that shouldn't have, for example if a video got reinstated after a copyright strike on YT. You can reactivate all things in bulk, so the refresh task will check them again and deactivate the ones that are actually not available anymore. -Run this curl command from within the TA container: +Curl commands to run within the TA container. + +Reactivate all videos: ```bash curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' { "query": { "term": { - "active": { - "value": false - } + "active": { + "value": false + } } }, "script": { @@ -31,6 +33,44 @@ curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSW }' ``` +Reactivate all channels: + +```bash +curl -XPOST "$ES_URL/ta_channel/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' +{ + "query": { + "term": { + "channel_active": { + "value": false + } + } + }, + "script": { + "source": "ctx._source.channel_active = true", + "lang": "painless" + } +}' +``` + +Reactivate all playlists: + +```bash +curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' +{ + "query": { + "term": { + "playlist_active": { + "value": false + } + } + }, + "script": { + "source": "ctx._source.playlist_active = true", + "lang": "painless" + } +}' +``` + ## Corrupted ES index reset After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings.md#snapshots) set up. From 8c498b82a10f6f4b547ba4b9cf5a3ab036a70aa0 Mon Sep 17 00:00:00 2001 From: Clark <104835586+anonamouslyginger@users.noreply.github.com> Date: Sun, 3 Sep 2023 05:22:50 +0000 Subject: [PATCH 35/44] Split settings out to match application (#19) * Split settings out to match application * fix internal settings links --------- Co-authored-by: Simon --- mkdocs/docs/advanced.md | 4 +- mkdocs/docs/channels.md | 4 +- mkdocs/docs/downloads.md | 4 +- mkdocs/docs/faq.md | 2 +- mkdocs/docs/settings.md | 219 ---------------------------- mkdocs/docs/settings/actions.md | 78 ++++++++++ mkdocs/docs/settings/application.md | 86 +++++++++++ mkdocs/docs/settings/dashboard.md | 6 + mkdocs/docs/settings/scheduling.md | 60 ++++++++ mkdocs/docs/settings/user.md | 14 ++ mkdocs/mkdocs.yml | 15 +- 11 files changed, 261 insertions(+), 231 deletions(-) delete mode 100644 mkdocs/docs/settings.md create mode 100644 mkdocs/docs/settings/actions.md create mode 100644 mkdocs/docs/settings/application.md create mode 100644 mkdocs/docs/settings/dashboard.md create mode 100644 mkdocs/docs/settings/scheduling.md create mode 100644 mkdocs/docs/settings/user.md diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index cfc2348..44f7cb8 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -72,6 +72,6 @@ curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSW ``` ## Corrupted ES index reset -After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings.md#snapshots) set up. +After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings/application.md#snapshots) set up. -ES will not start, if the data is corrupted. So, stop all containers, delete everything *except* the `/snapshot` folder in the ES volume. After that, start everything back up. Tube Archivist will create a new blank index. All your snapshots should be available for restore on your settings page, you probably want to restore the most recent one. After restore, run a [filesystem rescan](settings.md#rescan-filesystem) for good measures. +ES will not start, if the data is corrupted. So, stop all containers, delete everything *except* the `/snapshot` folder in the ES volume. After that, start everything back up. Tube Archivist will create a new blank index. All your snapshots should be available for restore on your settings page, you probably want to restore the most recent one. After restore, run a [filesystem rescan](settings/actions.md#rescan-filesystem) for good measures. diff --git a/mkdocs/docs/channels.md b/mkdocs/docs/channels.md index 6d22d41..6bf50b1 100644 --- a/mkdocs/docs/channels.md +++ b/mkdocs/docs/channels.md @@ -48,12 +48,12 @@ On the *Channel About* page, accessible at `/channel//about/`, you c If available, you can find the channel description and channel tags there. -The channel customize form gives options to change settings on a per channel basis. Any configurations here will overwrite your configurations from the [settings](settings.md) page. +The channel customize form gives options to change settings on a per channel basis. Any configurations here will overwrite your configurations from the [settings](settings/application.md) page. - **Download Format**: Overwrite the download quality for videos from this channel. - **Auto Delete**: Automatically delete watched videos from this channel after selected days. - **Index Playlists**: Automatically add all Playlists with at least a video downloaded to your index. Only do this for channels where you care about playlists as this will slow down indexing new videos for having to check which playlist this belongs to. -- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. Customize per channel: You can *disable* or *enable* SponsorBlock for certain channels only to overwrite the behavior set on the [settings](settings.md) page. Selecting *unset* will remove the overwrite and your setting will fall back to the default on the settings page. +- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. Customize per channel: You can *disable* or *enable* SponsorBlock for certain channels only to overwrite the behavior set on the [settings](settings/application.md) page. Selecting *unset* will remove the overwrite and your setting will fall back to the default on the settings page. ### Downloads If you have any videos from this channel pending in the download queue, a *Downloads* link will show, bringing you directly to the [downloads](downloads.md) page, filtering the list by the selected channel. diff --git a/mkdocs/docs/downloads.md b/mkdocs/docs/downloads.md index 339a72b..e4a120d 100644 --- a/mkdocs/docs/downloads.md +++ b/mkdocs/docs/downloads.md @@ -9,7 +9,7 @@ Accessible at `/downloads/` of your Tube Archivist, this page handles all the do ## Rescan Subscriptions The **Rescan Subscriptions** icon rescan icon will start a background task to look for new videos from the channels and playlists you are subscribed to. -Tube Archivist will get available *videos*, *shorts* and *streams* from each channel, you can define the channel and playlist page size on the [settings page](settings.md#subscriptions). With the default page size, expect this process to take around 2-3 seconds for each channel or playlist you are subscribed to. A status message will show the progress. +Tube Archivist will get available *videos*, *shorts* and *streams* from each channel, you can define the channel and playlist page size on the [settings page](settings/application.md#subscriptions). With the default page size, expect this process to take around 2-3 seconds for each channel or playlist you are subscribed to. A status message will show the progress. Then for every video found, **Tube Archivist** will skip the video if it has already been downloaded or if you added it to the *ignored* list before. All the other videos will get added to the download queue. Expect this to take around 2 seconds for each video as **Tube Archivist** needs to grab some additional metadata and artwork. New videos will get added at the bottom of the download queue. @@ -53,4 +53,4 @@ Every video in the ignored list has two buttons: - **Forget**: This will delete the item from the ignored list. - **Add to Queue**: This will add the ignored video back to the download queue. -You can delete your download queue from the [Settings](settings.md#actions) page. +You can delete your download queue from the [Settings](settings/actions.md) page. diff --git a/mkdocs/docs/faq.md b/mkdocs/docs/faq.md index 2b07d73..d598bc3 100644 --- a/mkdocs/docs/faq.md +++ b/mkdocs/docs/faq.md @@ -50,7 +50,7 @@ That comes at a price: ES can use a lot of memory, particularly on a big index, ## Why does subscribing to a channel not download the complete channel? For Tube Archivist, these are two different things: To download a complete channel, add it to the [download queue](downloads.md#add-to-download-queue) with the form or with [Tube Archivist Companion](https://github.com/tubearchivist/browser-extension), the browser extension. This is meant for a complete archival. -Subscribing to a channel is for downloading new videos as they come out. That is designed to be as quick as possible, to allow you to efficiently rescan your favourite channels frequently. This will add videos to your download queue based on your [channel page size](settings.md#subscriptions). +Subscribing to a channel is for downloading new videos as they come out. That is designed to be as quick as possible, to allow you to efficiently rescan your favourite channels frequently. This will add videos to your download queue based on your [channel page size](settings/application.md#subscriptions). If you want to archive the complete channel **and** any future videos, you can do both. diff --git a/mkdocs/docs/settings.md b/mkdocs/docs/settings.md deleted file mode 100644 index 4e59945..0000000 --- a/mkdocs/docs/settings.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -description: Configure this project, yt-dlp behavior, the scheduler and more. ---- - -# Settings Page -Accessible at `/settings/` of your **Tube Archivist**, this page holds all the configurations and additional functionality related to the database. - -Click on **Update Settings** at the bottom of the form to apply your configurations. - -## Color scheme -Switch between the easy on the eyes dark theme and the burning bright theme. - -## Archive View -- **Page Size**: Defines how many results get displayed on a given page. Same value goes for all archive views. - -## Subscriptions -Settings related to the channel management. Disable shorts or streams by setting their page size to 0 (zero). - -- **Channel Page Size**: Defines how many pages will get analyzed by **Tube Archivist** each time you click on *Rescan Subscriptions*. The default page size used by yt-dlp is **50**, that's also the recommended value to set here. Any value higher will slow down the rescan process, for example if you set the value to 51, that means yt-dlp will have to go through 2 pages of results instead of 1 and by that doubling the time that process takes. -- **Live Page Size**: Same as above, but for channel live streams. -- **Shorts page Size**: Same as above, but for shorts videos. -- **Auto Start**: This will prioritize and automatically start downloading videos from your subscriptions over regular video added to the download queue. - -## Downloads -Settings related to the download process. - -- **Download Speed Limit**: Set your download speed limit in KB/s. This will pass the option `--limit-rate` to yt-dlp. -- **Throttled Rate Limit**: Restart download if the download speed drops below this value in KB/s. This will pass the option `--throttled-rate` to yt-dlp. Using this option might have a negative effect if you have an unstable or slow internet connection. -- **Sleep Interval**: Time in seconds to sleep between requests to YouTube. It's a good idea to set this to **3** seconds. Might be necessary to avoid throttling. -- **Auto Delete Watched Videos**: Automatically delete videos marked as watched after selected days. If activated, checks your videos after download task is finished. - -## Download Format -Additional settings passed to yt-dlp. - -- **Format**: This controls which streams get downloaded and is equivalent to passing `--format` to yt-dlp. Use one of the recommended one or look at the documentation of [yt-dlp](https://github.com/yt-dlp/yt-dlp#format-selection). Please note: The option `--merge-output-format mp4` is automatically passed to yt-dlp to guarantee browser compatibility. Similar to that, `--check-formats` is passed as well to check that the selected formats are actually downloadable. -- **Format Sort**: This allows you to change how yt-dlp sorts formats by passing `--format-sort` to yt-dlp. Refere to the [documentation](https://github.com/yt-dlp/yt-dlp#sorting-formats), what you can pass here. Be aware, that some codecs might not be compatible with your browser of choice. -- **Extractor Language**: Some channels provide tranlated video titles and descriptions. Add the two letter ISO language code, to set your prefered default language. This will only have an effect, if the uploader adds translations. Not all language codes are supported, see the [documentation](https://github.com/yt-dlp/yt-dlp#youtube) (the `lang` section) for more details. -- **Embed Metadata**: This saves the available tags directly into the media file by passing `--embed-metadata` to yt-dlp. -- **Embed Thumbnail**: This will save the thumbnail into the media file by passing `--embed-thumbnail` to yt-dlp. - -## Subtitles - -- **Download Setting**: Select the subtitle language you like to download. Add a comma separated list for multiple languages. For Chinese you must specify `zh-Hans` or `zh-Hant`, specifying "zh" is invalid, otherwise the subtitle won't download successfully. -- **Source Settings**: User created subtitles are provided from the uploader and are usually the video script. Auto generated is from YouTube, quality varies, particularly for auto translated tracks. -- **Index Settings**: Enabling subtitle indexing will add the lines to Elasticsearch and will make subtitles searchable. This will increase the index size and is not recommended on low-end hardware. - -## Comments - -- **Download and index comments**: Set your configuration for downloading and indexing comments. This takes the same values as documented in the `max_comments` section for the youtube extractor of [yt-dlp](https://github.com/yt-dlp/yt-dlp#youtube). Add without space between the four different fields: *max-comments,max-parents,max-replies,max-replies-per-thread*. Example: - - `all,100,all,30`: Get 100 max-parents and 30 max-replies-per-thread. - - `1000,all,all,50`: Get a total of 1000 comments over all, 50 replies per thread. -- **Comment sort method**: Change sort method between *top* or *new*. The default is *top*, as decided by YouTube. -- The [Refresh Metadata](#refresh-metadata) background task will get comments from your already archived videos, spreading the requests out over time. - -Archiving comments is slow as only very few comments get returned per request with yt-dlp. Choose your configuration above wisely. Tube Archivist will download comments after the download queue finishes, your videos will be already available while the comments are getting downloaded. - -## Cookie -Importing your YouTube Cookie into Tube Archivist allows yt-dlp to bypass age restrictions, gives access to private videos and your *watch later* or *liked videos*. - -### Security concerns -Cookies are used to store your session and contain your access token to your google account, this information can be used to take over your account. Treat that data with utmost care as you would any other password or credential. *Tube Archivist* stores your cookie in Redis and will automatically append it to yt-dlp for every request. - -### Auto import -Easiest way to import your cookie is to use the **Tube Archivist Companion** [browser extension](https://github.com/tubearchivist/browser-extension) for Firefox and Chrome. - -### Manual import -Alternatively you can also manually import your cookie into Tube Archivist. Export your cookie as a *Netscape* formatted text file, name it *cookies.google.txt* and put it into the *cache/import* folder. After that you can enable the option on the settings page and your cookie file will get imported. - -- There are various tools out there that allow you to export cookies from your browser. This project doesn't make any specific recommendations. -- Once imported, a **Validate Cookie File** button will show, where you can confirm if your cookie is working or not. - -### Use your cookie -Once imported, additionally to the advantages above, your [Watch Later](https://www.youtube.com/playlist?list=WL) and [Liked Videos](https://www.youtube.com/playlist?list=LL) become a regular playlist you can download and subscribe to as any other [playlist](playlists.md). - -### Limitation -There is only one cookie per Tube Archivist instance, this will be shared between all users. - -## Integrations -All third party integrations of TubeArchivist will **always** be *opt in*. - -- **API**: Your access token for the Tube Archivist API. -- **returnyoutubedislike.com**: This will get return dislikes and average ratings for each video by integrating with the API from [returnyoutubedislike.com](https://www.returnyoutubedislike.com/). -- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](channels.md#about). - -## Snapshots -!!! note - This will make a snapshot of your metadata index only, no media files or additional configuration variables you have set on the settings page will be backed up. - -System snapshots will automatically make daily snapshots of the Elasticsearch index. The task will start at 12pm your local time. Snapshots are deduplicated, meaning that each snapshot will only have to backup changes since the last snapshot. Old snpshots will automatically get deleted after 30 days. - -- **Create snapshot now**: Will start the snapshot process now, outside of the regular daily schedule. -- **Restore**: Restore your index to that point in time. - -# Scheduler Setup -Schedule settings expect a cron like format, where the first value is minute, second is hour and third is day of the week. Day 0 is Sunday, day 1 is Monday etc. - -Examples: - -- `0 15 *`: Run task every day at 15:00 in the afternoon. -- `30 8 */2`: Run task every second day of the week (Sun, Tue, Thu, Sat) at 08:30 in the morning. -- `0 */3,8-17 *`: Execute every hour divisible by 3, and every hour during office hours (8 in the morning - 5 in the afternoon). -- `0 8,16 *`: Execute every day at 8 in the morning and at 4 in the afternoon. -- `auto`: Sensible default. -- `0`: (zero), deactivate that task. - -!!! note "BE AWARE" - - Changes in the scheduler settings require a container restart to take effect. - - Cron format as *number*/*number* are none standard cron and are not supported by the scheduler, for example `0 0/12 *` is invalid, use `0 */12 *` instead. - - Avoid an unnecessary frequent schedule to not get blocked by YouTube. For that reason, the scheduler doesn't support schedules that trigger more than once per hour. - -## Notifications -Some of the tasks support sending notifications at task completion with a short summary message. Tasks can get started through the scheduler or manually from the interface. This uses the amazing [Apprise](https://github.com/caronc/apprise) framework, refer to the wiki about the [basics](https://github.com/caronc/apprise/wiki/URLBasics) how to build links and a list of [supported services](https://github.com/caronc/apprise/wiki#notification-services) for the details. - -Send yourself a test notification to verify your link works, e.g.: -```bash -docker exec -it tubearchivist apprise -b "Hello from TA" -``` - -Notes: - -- This will only send notifications when a task returns anything, e.g. if a [Rescan Subscriptions](#rescan-subscriptions) task doesn't find any new videos to add, no notification will get sent. -- Due to the fact that apprise is running inside a docker container, [desktop notifications](https://github.com/caronc/apprise/wiki#desktop-notification-services) will not work. -- Add one per line. - -## Rescan Subscriptions -That's the equivalent task as run from the downloads page looking through your channel and playlist and add missing videos to the download queue. - -Become a sponsor and join [members.tubearchivist.com](https://members.tubearchivist.com/) to get access to *real time* notifications for new videos uploaded by your favorite channels. - -## Start download -Start downloading all videos currently in the download queue. - -## Refresh Metadata -Rescan videos, channels and playlists on youtube and update metadata periodically. This will also refresh your subtitles and comments based on your current settings. If an item is no longer available on YouTube, this will deactivate it and exclude it from future refreshes. This task is meant to be run once per day, set your schedule accordingly. - -The field **Refresh older than x days** takes a number where TubeArchivist will consider an item as *outdated*. This value is used to calculate how many items need to be refreshed today based on the total indexed. This will spread out the requests to YouTube. Sensible value here is **90** days. - -Additionally to the outdated documents, this will also refresh very recently published videos. This is to keep metadata and statistics uptodate during the first few days when the video goes live. - -## Thumbnail check -This will check if all expected thumbnails are there and will delete any artwork without matching video. - -## ZIP file index backup -Create a zip file of the metadata and select **Max auto backups to keep** to automatically delete old backups created from this task. For data consistency, make sure there aren't any other tasks running that will change the index during the backup process. This is very slow, particularly for large archives. Use snapshots instead. - - -# Actions - -## Delete download queue -The button **Delete all queued** will delete all pending videos from the download queue. The button **Delete all ignored** will delete all videos you have previously ignored. - -## Manual Media Files Import -!!! note - This is inherently error prone, as there are many variables, some outside of the control of this project. Read this carefully and use at your own risk. - -Add the files you'd like to import to the */cache/import* folder. Only add files, don't add subdirectories. All files you are adding, need to have the same *base name* as the media file. Then start the process from the settings page *Manual Media Files Import*. - -Valid media extensions are *.mp4*, *.mkv* or *.webm*. If you have other file extensions or incompatible codecs, convert them first to mp4. **Tube Archivist** can identify the videos with one of the following methods. - -### Method 1: -Add a matching *.info.json* file with the media file. Both files need to have the same base name, for example: - -- For the media file: `.mp4` -- For the JSON file: `.info.json` - -The import process then looks for the 'id' key within the JSON file to identify the video. - -### Method 2: -Detect the YouTube ID from filename, this accepts the default yt-dlp naming convention for file names like: - -- `[].mp4` -- The YouTube ID in square brackets at the end of the filename is the crucial part. - -### Offline import: -If the video you are trying to import is not available on YouTube any more, **Tube Archivist** can import the required metadata: - -- The file `.info.json` is required to extract the required information. -- Add the thumbnail as `.`, where valid file extensions are *.jpg*, *.png* or *.webp*. If there is no thumbnail file, **Tube Archivist** will try to extract the embedded cover from the media file or will fallback to a default thumbnail. -- Add subtitles as `..vtt` where *lang* is the two letter ISO country code. This will archive all subtitle files you add to the import folder, independent from your configurations. Subtitles can be archived and used in the player, but they can't be indexed or made searchable due to the fact, that they have a very different structure than the subtitles as **Tube Archivist** needs them. -- For videos, where the whole channel is not available any more, you can add the `.info.json` file as generated by *youtube-dl/yt-dlp* to get the full metadata. Alternatively **Tube Archivist** will extract as much info as possible from the video info.json file. - -### Some notes: - -- This will **consume** the files you put into the import folder: Files will get converted to mp4 if needed (this might take a long time...) and moved to the archive, *.json* files will get deleted upon completion to avoid having duplicates on the next run. -- For best file transcoding quality, convert your media files with desired settings first before importing. -- Maybe start with a subset of your files to import to make sure everything goes well... -- A notification box will show with progress, follow the docker logs to monitor for errors. - -## Embed thumbnails into media file -This will write or overwrite all thumbnails in the media file using the downloaded thumbnail. This is only necessary if you didn't download the files with the option *Embed Thumbnail* enabled or you want to make sure all media files get the newest thumbnail. - -## ZIP file index backup -This will backup your metadata into a zip file. The file will get stored at *cache/backup* and will contain the necessary files to restore the Elasticsearch index formatted **nd-json** files. For data consistency, make sure there aren't any other tasks running that will change the index during the backup process. This is very slow, particularly for large archives. - -!!! note "BE AWARE" - This will **not** backup any media files, just the metadata from the Elasticsearch. - -## Restore From Backup -The restore functionality will expect the same zip file in *cache/backup* as created from the **Backup database** function. This will recreate the index from the zip archive file. There will be a list of all available backup to choose from. The *source* tag can have these different values: - -- **manual**: For backups manually created from here on the settings page. -- **auto**: For backups automatically created via a sceduled task. -- **update**: For backups created after a Tube Archivist update due to changes in the index. -- **False**: Undefined. - -!!! note "BE AWARE" - This will **replace** your current index with the one from the backup file. This won't restore any media files. - -## Rescan Filesystem -This function will go through all your media files and looks at the whole index to try to find any issues: - -- Should the filename not match with the indexed media url, this will rename the video files correctly and update the index with the new link. -- When you delete media files from the filesystem outside of the Tube Archivist interface, this will delete leftover metadata from the index. -- When you have media files that are not indexed yet, this will grab the metadata from YouTube like it was a newly downloaded video. This can be useful when restoring from an older backup file with missing metadata but already downloaded mediafiles. NOTE: This only works if the media files are named in the same convention as Tube Archivist does, particularly the YouTube ID needs to be at the same index in the filename, alternatively see above for *Manual Media Files Import*. -- The task will stop, when adding a video fails, for example if the video is no longer available on YouTube. -- This will also check all of your thumbnails and download any that are missing. - -!!! note "BE AWARE" - There is no undo. diff --git a/mkdocs/docs/settings/actions.md b/mkdocs/docs/settings/actions.md new file mode 100644 index 0000000..665e22c --- /dev/null +++ b/mkdocs/docs/settings/actions.md @@ -0,0 +1,78 @@ +--- +description: Administration tasks for the application. +--- + +# Actions Page +Accessible at `/settings/actions/` of your **Tube Archivist**, this page allows admins to perform actions related to the database and other functions. + +## Delete download queue +The button **Delete all queued** will delete all pending videos from the download queue. The button **Delete all ignored** will delete all videos you have previously ignored. + +## Manual Media Files Import +!!! note + This is inherently error prone, as there are many variables, some outside of the control of this project. Read this carefully and use at your own risk. + +Add the files you'd like to import to the */cache/import* folder. Only add files, don't add subdirectories. All files you are adding, need to have the same *base name* as the media file. Then start the process from the settings page *Manual Media Files Import*. + +Valid media extensions are *.mp4*, *.mkv* or *.webm*. If you have other file extensions or incompatible codecs, convert them first to mp4. **Tube Archivist** can identify the videos with one of the following methods. + +### Method 1: +Add a matching *.info.json* file with the media file. Both files need to have the same base name, for example: + +- For the media file: `.mp4` +- For the JSON file: `.info.json` + +The import process then looks for the 'id' key within the JSON file to identify the video. + +### Method 2: +Detect the YouTube ID from filename, this accepts the default yt-dlp naming convention for file names like: + +- `[].mp4` +- The YouTube ID in square brackets at the end of the filename is the crucial part. + +### Offline import: +If the video you are trying to import is not available on YouTube any more, **Tube Archivist** can import the required metadata: + +- The file `.info.json` is required to extract the required information. +- Add the thumbnail as `.`, where valid file extensions are *.jpg*, *.png* or *.webp*. If there is no thumbnail file, **Tube Archivist** will try to extract the embedded cover from the media file or will fallback to a default thumbnail. +- Add subtitles as `..vtt` where *lang* is the two letter ISO country code. This will archive all subtitle files you add to the import folder, independent from your configurations. Subtitles can be archived and used in the player, but they can't be indexed or made searchable due to the fact, that they have a very different structure than the subtitles as **Tube Archivist** needs them. +- For videos, where the whole channel is not available any more, you can add the `.info.json` file as generated by *youtube-dl/yt-dlp* to get the full metadata. Alternatively **Tube Archivist** will extract as much info as possible from the video info.json file. + +### Some notes: + +- This will **consume** the files you put into the import folder: Files will get converted to mp4 if needed (this might take a long time...) and moved to the archive, *.json* files will get deleted upon completion to avoid having duplicates on the next run. +- For best file transcoding quality, convert your media files with desired settings first before importing. +- Maybe start with a subset of your files to import to make sure everything goes well... +- A notification box will show with progress, follow the docker logs to monitor for errors. + +## Embed thumbnails into media file +This will write or overwrite all thumbnails in the media file using the downloaded thumbnail. This is only necessary if you didn't download the files with the option *Embed Thumbnail* enabled or you want to make sure all media files get the newest thumbnail. + +## ZIP file index backup +This will backup your metadata into a zip file. The file will get stored at *cache/backup* and will contain the necessary files to restore the Elasticsearch index formatted **nd-json** files. For data consistency, make sure there aren't any other tasks running that will change the index during the backup process. This is very slow, particularly for large archives. + +!!! note "BE AWARE" + This will **not** backup any media files, just the metadata from the Elasticsearch. + +## Restore From Backup +The restore functionality will expect the same zip file in *cache/backup* as created from the **Backup database** function. This will recreate the index from the zip archive file. There will be a list of all available backup to choose from. The *source* tag can have these different values: + +- **manual**: For backups manually created from here on the settings page. +- **auto**: For backups automatically created via a sceduled task. +- **update**: For backups created after a Tube Archivist update due to changes in the index. +- **False**: Undefined. + +!!! note "BE AWARE" + This will **replace** your current index with the one from the backup file. This won't restore any media files. + +## Rescan Filesystem +This function will go through all your media files and looks at the whole index to try to find any issues: + +- Should the filename not match with the indexed media url, this will rename the video files correctly and update the index with the new link. +- When you delete media files from the filesystem outside of the Tube Archivist interface, this will delete leftover metadata from the index. +- When you have media files that are not indexed yet, this will grab the metadata from YouTube like it was a newly downloaded video. This can be useful when restoring from an older backup file with missing metadata but already downloaded mediafiles. NOTE: This only works if the media files are named in the same convention as Tube Archivist does, particularly the YouTube ID needs to be at the same index in the filename, alternatively see above for *Manual Media Files Import*. +- The task will stop, when adding a video fails, for example if the video is no longer available on YouTube. +- This will also check all of your thumbnails and download any that are missing. + +!!! note "BE AWARE" + There is no undo. diff --git a/mkdocs/docs/settings/application.md b/mkdocs/docs/settings/application.md new file mode 100644 index 0000000..6d2abda --- /dev/null +++ b/mkdocs/docs/settings/application.md @@ -0,0 +1,86 @@ +--- +description: Configure this application. +--- + +# Application Settings Page +Accessible at `/settings/application/` of your **Tube Archivist**, this page holds all of the general application configuration (minus configuration of the [scheduler](scheduling.md)). + +Click on **Update Application Configurations** at the bottom of the page to apply your configurations. + +## Subscriptions +Settings related to the channel management. Disable shorts or streams by setting their page size to 0 (zero). + +- **Channel Page Size**: Defines how many pages will get analyzed by **Tube Archivist** each time you click on *Rescan Subscriptions*. The default page size used by yt-dlp is **50**, that's also the recommended value to set here. Any value higher will slow down the rescan process, for example if you set the value to 51, that means yt-dlp will have to go through 2 pages of results instead of 1 and by that doubling the time that process takes. +- **Live Page Size**: Same as above, but for channel live streams. +- **Shorts page Size**: Same as above, but for shorts videos. +- **Auto Start**: This will prioritize and automatically start downloading videos from your subscriptions over regular video added to the download queue. + +## Downloads +Settings related to the download process. + +- **Download Speed Limit**: Set your download speed limit in KB/s. This will pass the option `--limit-rate` to yt-dlp. +- **Throttled Rate Limit**: Restart download if the download speed drops below this value in KB/s. This will pass the option `--throttled-rate` to yt-dlp. Using this option might have a negative effect if you have an unstable or slow internet connection. +- **Sleep Interval**: Time in seconds to sleep between requests to YouTube. It's a good idea to set this to **3** seconds. Might be necessary to avoid throttling. +- **Auto Delete Watched Videos**: Automatically delete videos marked as watched after selected days. If activated, checks your videos after download task is finished. + +## Download Format +Additional settings passed to yt-dlp. + +- **Format**: This controls which streams get downloaded and is equivalent to passing `--format` to yt-dlp. Use one of the recommended one or look at the documentation of [yt-dlp](https://github.com/yt-dlp/yt-dlp#format-selection). Please note: The option `--merge-output-format mp4` is automatically passed to yt-dlp to guarantee browser compatibility. Similar to that, `--check-formats` is passed as well to check that the selected formats are actually downloadable. +- **Format Sort**: This allows you to change how yt-dlp sorts formats by passing `--format-sort` to yt-dlp. Refere to the [documentation](https://github.com/yt-dlp/yt-dlp#sorting-formats), what you can pass here. Be aware, that some codecs might not be compatible with your browser of choice. +- **Extractor Language**: Some channels provide tranlated video titles and descriptions. Add the two letter ISO language code, to set your prefered default language. This will only have an effect, if the uploader adds translations. Not all language codes are supported, see the [documentation](https://github.com/yt-dlp/yt-dlp#youtube) (the `lang` section) for more details. +- **Embed Metadata**: This saves the available tags directly into the media file by passing `--embed-metadata` to yt-dlp. +- **Embed Thumbnail**: This will save the thumbnail into the media file by passing `--embed-thumbnail` to yt-dlp. + +## Subtitles + +- **Download Setting**: Select the subtitle language you like to download. Add a comma separated list for multiple languages. For Chinese you must specify `zh-Hans` or `zh-Hant`, specifying "zh" is invalid, otherwise the subtitle won't download successfully. +- **Source Settings**: User created subtitles are provided from the uploader and are usually the video script. Auto generated is from YouTube, quality varies, particularly for auto translated tracks. +- **Index Settings**: Enabling subtitle indexing will add the lines to Elasticsearch and will make subtitles searchable. This will increase the index size and is not recommended on low-end hardware. + +## Comments + +- **Download and index comments**: Set your configuration for downloading and indexing comments. This takes the same values as documented in the `max_comments` section for the youtube extractor of [yt-dlp](https://github.com/yt-dlp/yt-dlp#youtube). Add without space between the four different fields: *max-comments,max-parents,max-replies,max-replies-per-thread*. Example: + - `all,100,all,30`: Get 100 max-parents and 30 max-replies-per-thread. + - `1000,all,all,50`: Get a total of 1000 comments over all, 50 replies per thread. +- **Comment sort method**: Change sort method between *top* or *new*. The default is *top*, as decided by YouTube. +- The [Refresh Metadata](scheduling.md#refresh-metadata) background task will get comments from your already archived videos, spreading the requests out over time. + +Archiving comments is slow as only very few comments get returned per request with yt-dlp. Choose your configuration above wisely. Tube Archivist will download comments after the download queue finishes, your videos will be already available while the comments are getting downloaded. + +## Cookie +Importing your YouTube Cookie into Tube Archivist allows yt-dlp to bypass age restrictions, gives access to private videos and your *watch later* or *liked videos*. + +### Security concerns +Cookies are used to store your session and contain your access token to your google account, this information can be used to take over your account. Treat that data with utmost care as you would any other password or credential. *Tube Archivist* stores your cookie in Redis and will automatically append it to yt-dlp for every request. + +### Auto import +Easiest way to import your cookie is to use the **Tube Archivist Companion** [browser extension](https://github.com/tubearchivist/browser-extension) for Firefox and Chrome. + +### Manual import +Alternatively you can also manually import your cookie into Tube Archivist. Export your cookie as a *Netscape* formatted text file, name it *cookies.google.txt* and put it into the *cache/import* folder. After that you can enable the option on the settings page and your cookie file will get imported. + +- There are various tools out there that allow you to export cookies from your browser. This project doesn't make any specific recommendations. +- Once imported, a **Validate Cookie File** button will show, where you can confirm if your cookie is working or not. + +### Use your cookie +Once imported, additionally to the advantages above, your [Watch Later](https://www.youtube.com/playlist?list=WL) and [Liked Videos](https://www.youtube.com/playlist?list=LL) become a regular playlist you can download and subscribe to as any other [playlist](../playlists.md). + +### Limitation +There is only one cookie per Tube Archivist instance, this will be shared between all users. + +## Integrations +All third party integrations of TubeArchivist will **always** be *opt in*. + +- **API**: Your access token for the Tube Archivist API. +- **returnyoutubedislike.com**: This will get return dislikes and average ratings for each video by integrating with the API from [returnyoutubedislike.com](https://www.returnyoutubedislike.com/). +- **SponsorBlock**: Using [SponsorBlock](https://sponsor.ajay.app/) to get and skip sponsored content. If a video doesn't have timestamps, or has unlocked timestamps, use the browser addon to contribute to this excellent project. Can also be activated and deactivated as a per [channel overwrite](../channels.md#about). + +## Snapshots +!!! note + This will make a snapshot of your metadata index only, no media files or additional configuration variables you have set on the settings page will be backed up. + +System snapshots will automatically make daily snapshots of the Elasticsearch index. The task will start at 12pm your local time. Snapshots are deduplicated, meaning that each snapshot will only have to backup changes since the last snapshot. Old snpshots will automatically get deleted after 30 days. + +- **Create snapshot now**: Will start the snapshot process now, outside of the regular daily schedule. +- **Restore**: Restore your index to that point in time. diff --git a/mkdocs/docs/settings/dashboard.md b/mkdocs/docs/settings/dashboard.md new file mode 100644 index 0000000..896160d --- /dev/null +++ b/mkdocs/docs/settings/dashboard.md @@ -0,0 +1,6 @@ +--- +description: Overview and statistics about the application. +--- + +# Dashboard +Accessible at `/settings/` of your **Tube Archivist**, this page shows the status and various statistics related to your library. diff --git a/mkdocs/docs/settings/scheduling.md b/mkdocs/docs/settings/scheduling.md new file mode 100644 index 0000000..b99e189 --- /dev/null +++ b/mkdocs/docs/settings/scheduling.md @@ -0,0 +1,60 @@ +--- +description: Configure the scheduler. +--- + +# Scheduling Settings Page +Accessible at `/settings/scheduling/` of your **Tube Archivist**, this page holds all the configuration for scheduled tasks. + +Click on **Update Scheduler Settings** at the bottom of the page to apply your configurations. + +## Configuring Schedules +Schedule settings expect a cron like format, where the first value is minute, second is hour and third is day of the week. Day 0 is Sunday, day 1 is Monday etc. + +Examples: + +- `0 15 *`: Run task every day at 15:00 in the afternoon. +- `30 8 */2`: Run task every second day of the week (Sun, Tue, Thu, Sat) at 08:30 in the morning. +- `0 */3,8-17 *`: Execute every hour divisible by 3, and every hour during office hours (8 in the morning - 5 in the afternoon). +- `0 8,16 *`: Execute every day at 8 in the morning and at 4 in the afternoon. +- `auto`: Sensible default. +- `0`: (zero), deactivate that task. + +!!! note "BE AWARE" + - Changes in the scheduler settings require a container restart to take effect. + - Cron format as *number*/*number* are none standard cron and are not supported by the scheduler, for example `0 0/12 *` is invalid, use `0 */12 *` instead. + - Avoid an unnecessary frequent schedule to not get blocked by YouTube. For that reason, the scheduler doesn't support schedules that trigger more than once per hour. + +## Notifications +Some of the tasks support sending notifications at task completion with a short summary message. Tasks can get started through the scheduler or manually from the interface. This uses the amazing [Apprise](https://github.com/caronc/apprise) framework, refer to the wiki about the [basics](https://github.com/caronc/apprise/wiki/URLBasics) how to build links and a list of [supported services](https://github.com/caronc/apprise/wiki#notification-services) for the details. + +Send yourself a test notification to verify your link works, e.g.: +```bash +docker exec -it tubearchivist apprise -b "Hello from TA" +``` + +Notes: + +- This will only send notifications when a task returns anything, e.g. if a [Rescan Subscriptions](#rescan-subscriptions) task doesn't find any new videos to add, no notification will get sent. +- Due to the fact that apprise is running inside a docker container, [desktop notifications](https://github.com/caronc/apprise/wiki#desktop-notification-services) will not work. +- Add one per line. + +## Rescan Subscriptions +That's the equivalent task as run from the downloads page looking through your channel and playlist and add missing videos to the download queue. + +Become a sponsor and join [members.tubearchivist.com](https://members.tubearchivist.com/) to get access to *real time* notifications for new videos uploaded by your favorite channels. + +## Start download +Start downloading all videos currently in the download queue. + +## Refresh Metadata +Rescan videos, channels and playlists on youtube and update metadata periodically. This will also refresh your subtitles and comments based on your current settings. If an item is no longer available on YouTube, this will deactivate it and exclude it from future refreshes. This task is meant to be run once per day, set your schedule accordingly. + +The field **Refresh older than x days** takes a number where TubeArchivist will consider an item as *outdated*. This value is used to calculate how many items need to be refreshed today based on the total indexed. This will spread out the requests to YouTube. Sensible value here is **90** days. + +Additionally to the outdated documents, this will also refresh very recently published videos. This is to keep metadata and statistics uptodate during the first few days when the video goes live. + +## Thumbnail check +This will check if all expected thumbnails are there and will delete any artwork without matching video. + +## ZIP file index backup +Create a zip file of the metadata and select **Max auto backups to keep** to automatically delete old backups created from this task. For data consistency, make sure there aren't any other tasks running that will change the index during the backup process. This is very slow, particularly for large archives. Use [snapshots](application.md#snapshots) instead. diff --git a/mkdocs/docs/settings/user.md b/mkdocs/docs/settings/user.md new file mode 100644 index 0000000..5309440 --- /dev/null +++ b/mkdocs/docs/settings/user.md @@ -0,0 +1,14 @@ +--- +description: Configure the user settings of the application. +--- + +# User Settings Page +Accessible at `/settings/user/` of your **Tube Archivist**, this page holds all the settings that control the look and feel of the application. + +Click on **Update User Configurations** at the bottom of the page to apply your configurations. + +## Color scheme +Switch between the easy on the eyes dark theme and the burning bright theme. + +## Archive View +- **Page Size**: Defines how many results get displayed on a given page. Same value goes for all archive views. diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index 635c33e..d7df6f8 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -11,18 +11,23 @@ nav: - 'Playlists Pages': 'playlists.md' - 'Search': 'search.md' - 'Users': 'users.md' - - 'Settings': 'settings.md' + - Settings: + - 'Dashboard': 'settings/dashboard.md' + - 'User': 'settings/user.md' + - 'Application': 'settings/application.md' + - 'Scheduling': 'settings/scheduling.md' + - 'Actions': 'settings/actions.md' - 'Advanced': 'advanced.md' - Installation: - - 'Docker-Compose (default)': 'installation/docker-compose.md' + - 'Docker-Compose (default)': 'installation/docker-compose.md' - 'Unraid': 'installation/unraid.md' - 'Synology': 'installation/synology.md' - 'Podman': 'installation/podman.md' - 'Truenas Scale': 'installation/truenas-scale.md' - 'Helm Charts': 'installation/helm-charts.md' - - Configuration: - - 'LDAP Authentication': 'configuration/ldap.md' - - 'Cast Support': 'configuration/cast.md' + - Configuration: + - 'LDAP Authentication': 'configuration/ldap.md' + - 'Cast Support': 'configuration/cast.md' - API: - 'Introduction': 'api/introduction.md' - 'Video': 'api/video.md' From 1b58713b8ed20b6e4f646a34d681653c2c183427 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 3 Sep 2023 12:33:32 +0700 Subject: [PATCH 36/44] clarify download stop --- mkdocs/docs/downloads.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/downloads.md b/mkdocs/docs/downloads.md index e4a120d..e2765d9 100644 --- a/mkdocs/docs/downloads.md +++ b/mkdocs/docs/downloads.md @@ -16,7 +16,7 @@ Then for every video found, **Tube Archivist** will skip the video if it has alr ## Download Queue The **Start Download** icon download icon will start the download process. This will prioritize videos added as *auto start* or as *download now*, starting from the top of the queue. Once the process started, a progress message will show with additional details and controls: -- The stop icon stop icon will gracefully stop the download process, once the current video has been finished successfully. +- The stop icon stop icon will gracefully stop the download process, once the current video has been finished successfully. This will also reset the auto start behavior to avoid confusion. - [Currenlty broken] The cancel icon close icon is equivalent to killing the process and will stop the download immediately. Any leftover files will get deleted, the canceled video will still be available in the download queue. After downloading, Tube Archivist tries to add new videos to already indexed playlists and if activated on the settings page, get comments for the new videos. From 48621173b87a0a89424cb42fc793a540e4cdeb07 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 3 Sep 2023 12:35:46 +0700 Subject: [PATCH 37/44] bump requirements --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 847dc7a..b6f9677 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cairosvg==2.7.1 mkdocs==1.5.2 -mkdocs-material==9.2.3 +mkdocs-material==9.2.7 pillow==10.0.0 From f4f603df98b0fa00a4d741108323ccd1750a351c Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 4 Sep 2023 08:26:17 +0700 Subject: [PATCH 38/44] add migration troubleshooting steps --- mkdocs/docs/advanced.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index 44f7cb8..2c30226 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -75,3 +75,41 @@ curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSW After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings/application.md#snapshots) set up. ES will not start, if the data is corrupted. So, stop all containers, delete everything *except* the `/snapshot` folder in the ES volume. After that, start everything back up. Tube Archivist will create a new blank index. All your snapshots should be available for restore on your settings page, you probably want to restore the most recent one. After restore, run a [filesystem rescan](settings/actions.md#rescan-filesystem) for good measures. + +## ES mapping migrations troubleshooting + +Tube Archivist will apply mapping changes at application startup. That usually is needed when changing how an existing field is indexed. That should be seamless and automatic, but can leave your index in a messed up state if that process gets interrupted for any reason. Common reasons could be that if you artificially limit the memory to the container, disabling the OS to dynamically manage that, or if you don't have enough available storage on the ES volume, or if you interrupt that because of your impatience (don't do that). + +In general the process is: + +- Compare existing mapping with predefined expected mapping +- If that is identical, there is nothing to do +- Else create a `_backup` of the existing index +- Delete the original index and create a new empty one with the new mapping in place +- Copy over the previously created `_backup` index to apply the new mappings +- Delete the now leftover `_backup` index. + +If you are not sure if anything is happening, you can monitor your index and `docs.count` value for each index, that should change over time during that process and you should get an indicator of progress happening: + +From within the ES container: + +```bash +curl -u elastic:$ELASTIC_PASSWORD "localhost:9200/_cat/indices?v&s=index" +``` + +If that process gets interrupted before deleting the `_backup` index and you try to run this again, you will see an error like `resource_already_exists_exception` for example `index [ta_comment_backup/...] already exists` indicating in this case that your migration previously failed for the `ta_comment` index. + +First make sure you have the original index still with the command above, after verifying that, stop the TA container then you can delete the `_backup` index e.g. in the case of `ta_comment_backup`. + +```bash +curl -XDELETE -u elastic:$ELASTIC_PASSWORD "localhost:9200/ta_comment_backup?pretty" +``` + +and you should get: +```json +{ + "acknowledged" : true +} +``` + +Then you can start everything again and the migration will run again. If your error persists, the ES and TA logs should give additional debug info. From f37129a7bc5f235630705d734669e0269ed165ae Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 4 Sep 2023 08:35:20 +0700 Subject: [PATCH 39/44] copy code, toggle big curl commands --- mkdocs/docs/advanced.md | 92 ++++++++++++++++++++--------------------- mkdocs/mkdocs.yml | 1 + 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index 2c30226..db0f1f2 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -12,64 +12,64 @@ A loose collection of advanced debug info, may or may not apply to you, only use ## Reactivate documents As part of the metadata refresh task, Tube Archivist will mark videos, channels and playlists as deactivated, if they are no longer available on YouTube. For some reasons, that might have deactivated something that shouldn't have, for example if a video got reinstated after a copyright strike on YT. You can reactivate all things in bulk, so the refresh task will check them again and deactivate the ones that are actually not available anymore. -Curl commands to run within the TA container. +Curl commands to run within the TA container to reactivate documents: -Reactivate all videos: +??? Videos -```bash -curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' -{ - "query": { - "term": { - "active": { - "value": false + ```bash + curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' + { + "query": { + "term": { + "active": { + "value": false + } } + }, + "script": { + "source": "ctx._source.active = true", + "lang": "painless" } - }, - "script": { - "source": "ctx._source.active = true", - "lang": "painless" - } -}' -``` + }' + ``` -Reactivate all channels: +??? Channels -```bash -curl -XPOST "$ES_URL/ta_channel/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' -{ - "query": { - "term": { - "channel_active": { - "value": false + ```bash + curl -XPOST "$ES_URL/ta_channel/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' + { + "query": { + "term": { + "channel_active": { + "value": false + } } + }, + "script": { + "source": "ctx._source.channel_active = true", + "lang": "painless" } - }, - "script": { - "source": "ctx._source.channel_active = true", - "lang": "painless" - } -}' -``` + }' + ``` -Reactivate all playlists: +??? Playlists -```bash -curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' -{ - "query": { - "term": { - "playlist_active": { - "value": false + ```bash + curl -XPOST "$ES_URL/ta_video/_update_by_query?pretty" -u elastic:$ELASTIC_PASSWORD -H "Content-Type: application/json" -d ' + { + "query": { + "term": { + "playlist_active": { + "value": false + } } + }, + "script": { + "source": "ctx._source.playlist_active = true", + "lang": "painless" } - }, - "script": { - "source": "ctx._source.playlist_active = true", - "lang": "painless" - } -}' -``` + }' + ``` ## Corrupted ES index reset After a hard reset of your server or any other hardware failure you might experience data corruption. ES can be particularly unhappy about that, especially if the reset happens during actively writing to disk. It's very likely that only your `/indices` folder got corrupted, as that is where the regular read/writes happen. Luckily you have your [snapshots](settings/application.md#snapshots) set up. diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index d7df6f8..7047860 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -59,6 +59,7 @@ theme: scheme: tubearchivist features: - navigation.footer + - content.code.copy extra_css: - stylesheets/style.css extra: From 4599cbee54595013bfd81878e23401e1cf370045 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 4 Sep 2023 17:47:24 +0700 Subject: [PATCH 40/44] add stats api docs --- mkdocs/docs/api/stats.md | 37 +++++++++++++++++++++++++++++++++++++ mkdocs/mkdocs.yml | 1 + 2 files changed, 38 insertions(+) create mode 100644 mkdocs/docs/api/stats.md diff --git a/mkdocs/docs/api/stats.md b/mkdocs/docs/api/stats.md new file mode 100644 index 0000000..9cc1f4a --- /dev/null +++ b/mkdocs/docs/api/stats.md @@ -0,0 +1,37 @@ +# Statistics API endpoints + +## Primary + +⚠️ **Experimental** + +**GET** `/api/stats/primary/` + +Get primary statistics for your videos, channels, playlists and download queue. + +## Watch Progress + +⚠️ **Experimental** + +**GET** `/api/stats/watch/` + +Get statistics over your watch progress. + +## Download History + +⚠️ **Experimental** + +**GET** `/api/stats/downloadhist/` + +Get statistics for last days download history. + +## Biggest Channels + +⚠️ **Experimental** + +**GET** `/api/stats/biggestchannels/` + +Get a list of biggest channels, specify *order* parameter. + +Parameter: + +- order: doc_count (default), duration, media_size diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index 7047860..95b594e 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -36,6 +36,7 @@ nav: - 'Download': 'api/download.md' - 'Snapshot': 'api/snapshot.md' - 'Task': 'api/task.md' + - 'Stats': 'api/stats.md' - 'Additional': 'api/additional.md' - Links: - 'Main site': https://www.tubearchivist.com From fb5b322aac5c80118adde06528681798b4dd863a Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 25 Sep 2023 12:13:49 +0700 Subject: [PATCH 41/44] bump libraries --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index b6f9677..2b0d323 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cairosvg==2.7.1 -mkdocs==1.5.2 -mkdocs-material==9.2.7 -pillow==10.0.0 +mkdocs==1.5.3 +mkdocs-material==9.4.1 +pillow==10.0.1 From 9884508ff286cf43f93fb3a9d68c5711ad6bdebf Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 25 Sep 2023 12:14:10 +0700 Subject: [PATCH 42/44] add manual yt-dlp update instructions --- mkdocs/docs/advanced.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mkdocs/docs/advanced.md b/mkdocs/docs/advanced.md index db0f1f2..648835c 100644 --- a/mkdocs/docs/advanced.md +++ b/mkdocs/docs/advanced.md @@ -113,3 +113,30 @@ and you should get: ``` Then you can start everything again and the migration will run again. If your error persists, the ES and TA logs should give additional debug info. + +## Manual yt-dlp update +This project strives for timely updates when yt-dlp makes a new release, but sometimes ideals meet reality. Also sometimes yt-dlp has a fix published, but not yet released. + +Doing this is **very likely** going to break things for you. You will want to try this out on a testing instance first. Regularly there have been subtle changes in the yt-dlp API, so only do this if you know how to debug this project by yourself, but obviously share your fixes so any problems can be dealt with before release. + +**Build your own image**: Update the version in `requirements.txt` and rebuild the image from `Dockerfile`. This will use your own image, even on container rebuild. + +**Update yt-dlp on its own**: You can also update the yt-dlp library alone in the container. + +- Restart your container for changes to take effect. +- These changes won't persist a container rebuild from image. + +Update to newest regular yt-dlp release: + +``` +pip install --upgrade yt-dlp +``` + +To update to nightly you'll have to specify the correct `--target` folder: +``` +pip install \ + --upgrade \ + --target=/root/.local/bin \ + https://github.com/yt-dlp/yt-dlp/archive/master.tar.gz +``` +This is obviously particularly likely to create problems. Also note that the `--version` command will only show the latest regular release, not a nightly mention. From b4f1425032ba6f2a34fd64c27f6e1f4b55cf4f8d Mon Sep 17 00:00:00 2001 From: Igor Rzegocki Date: Sat, 7 Oct 2023 04:57:21 +0200 Subject: [PATCH 43/44] documentation for support for auth forwarding proxy (#20) --- mkdocs/docs/configuration/forward-auth.md | 16 ++++++++++++++++ mkdocs/mkdocs.yml | 1 + 2 files changed, 17 insertions(+) create mode 100644 mkdocs/docs/configuration/forward-auth.md diff --git a/mkdocs/docs/configuration/forward-auth.md b/mkdocs/docs/configuration/forward-auth.md new file mode 100644 index 0000000..f9ca9b9 --- /dev/null +++ b/mkdocs/docs/configuration/forward-auth.md @@ -0,0 +1,16 @@ +You can enable support for authentication proxies such as Authelia. + +This effectively disables credentials-based authentication and instead authenticates users if a specific request header contains a known username. +You must make sure that your proxy (nginx, Traefik, Caddy, ...) forwards this header from your auth proxy to tubearchivist. +Check the documentation of your auth proxy and your reverse proxy on how to correctly set this up. + +Note that this automatically creates new users in the database if they do not already exist. + +- `TA_ENABLE_AUTH_PROXY` (ex: `true`) - Set to anything besides empty string to use forward proxy authentication. +- `TA_AUTH_PROXY_USERNAME_HEADER` - The name of the request header that the auth proxy passes to the proxied application (tubearchivist in this case), so that the application can identify the user. + Check the documentation of your auth proxy to get this information. + Note that the request headers are rewritten in tubearchivist: all HTTP headers are prefixed with `HTTP_`, all letters are in uppercase, and dashes are replaced with underscores. + For example, for Authelia, which passes the `Remote-User` HTTP header, the `TA_AUTH_PROXY_USERNAME_HEADER` needs to be configured as `HTTP_REMOTE_USER`. +- `TA_AUTH_PROXY_LOGOUT_URL` - The URL that tubearchivist should redirect to after a logout. + By default, the logout redirects to the login URL, which means the user will be automatically authenticated again. + Instead, you might want to configure the logout URL of the auth proxy here. diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml index 95b594e..b14c88c 100644 --- a/mkdocs/mkdocs.yml +++ b/mkdocs/mkdocs.yml @@ -27,6 +27,7 @@ nav: - 'Helm Charts': 'installation/helm-charts.md' - Configuration: - 'LDAP Authentication': 'configuration/ldap.md' + - 'Forward Authentication': 'configuration/forward-auth.md' - 'Cast Support': 'configuration/cast.md' - API: - 'Introduction': 'api/introduction.md' From 67a0557205af0ef4537e93a68ac6ec965f32f8f2 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 7 Oct 2023 10:00:18 +0700 Subject: [PATCH 44/44] update docs for v0.4.2 --- mkdocs/docs/channels.md | 2 +- mkdocs/docs/installation/docker-compose.md | 2 ++ mkdocs/docs/playlists.md | 2 +- mkdocs/docs/search.md | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mkdocs/docs/channels.md b/mkdocs/docs/channels.md index 6bf50b1..a5026f2 100644 --- a/mkdocs/docs/channels.md +++ b/mkdocs/docs/channels.md @@ -25,7 +25,7 @@ Each channel gets a set of channel detail pages. - If you are subscribed to the channel, an *Unsubscribe* button will show, else the *Subscribe* button will show. - You'll see some statistics of the channel, like how many videos you have, total playback and total size. That aggregation is based your filter, e.g. if you toggle *Hide watched*, the aggregation will be over your unwatched videos only. -- The **Mark as Watched** button will mark all videos of this channel as watched. +- The **Mark as Watched** and **Mark as Unwatched** buttos will mark all videos of this channel as watched/unwatched. ### Videos Accessible at `/channel//`, this page shows all the videos you have downloaded from this channel. diff --git a/mkdocs/docs/installation/docker-compose.md b/mkdocs/docs/installation/docker-compose.md index d5187b2..33f4c48 100644 --- a/mkdocs/docs/installation/docker-compose.md +++ b/mkdocs/docs/installation/docker-compose.md @@ -21,6 +21,8 @@ The main Python application that displays and serves your video collection, buil - Set the environment variable `TA_HOST` to match with the system running Tube Archivist. This can be a domain like *example.com*, a subdomain like *ta.example.com* or an IP address like *192.168.1.20*. If you are running Tube Archivist behind a SSL reverse proxy, specify the protocoll. You can add multiple hostnames separated with a space. Any wrong configurations here will result in a `Bad Request (400)` response. - Change the environment variables `TA_USERNAME` and `TA_PASSWORD` to create the initial credentials. - `ELASTIC_PASSWORD` is for the password for Elasticsearch. The environment variable `ELASTIC_USER` is optional, should you want to change the username from the default *elastic*. + - Optionally set `ES_SNAPSHOT_DIR` to change the folder where ES is storing it's snapshots. When changing that, make sure you have persistence. That is an absolute path from inside the ES container. + - Set `ES_DISABLE_VERIFY_SSL`, boolean value, to disable SSL verification for connections to ES, e.g. for self signed certificates. - For the scheduler to know what time it is, set your timezone with the `TZ` environment variable, defaults to *UTC*. - Set the environment variable `ENABLE_CAST=True` to send videos to your cast device, [read more](../configuration/cast.md). diff --git a/mkdocs/docs/playlists.md b/mkdocs/docs/playlists.md index c0844d0..346a7aa 100644 --- a/mkdocs/docs/playlists.md +++ b/mkdocs/docs/playlists.md @@ -26,7 +26,7 @@ You can search your indexed playlists by clicking on the search icon

    Ic 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