diff --git a/README.md b/README.md index 1b80457..b22a505 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,8 @@ Once your YouTube video collection grows, it becomes hard to search and find a specific video. That's where Tube Archivist comes in: By indexing your video collection with metadata from YouTube, you can organize, search and enjoy your archived YouTube videos without hassle offline through a convenient web interface. ## Connect -- [Discord](https://discord.gg/AFwz8nE7BK): Connect with us on our brand new Discord server. -- [r/TubeArchivist](https://www.reddit.com/r/TubeArchivist/): Join our brand new Subreddit. +- [Discord](https://discord.gg/AFwz8nE7BK): Connect with us on our Discord server. +- [r/TubeArchivist](https://www.reddit.com/r/TubeArchivist/): Join our Subreddit. ## Installing and updating Take a look at the example `docker-compose.yml` file provided. Use the *latest* or the named semantic version tag. The *unstable* tag is for intermediate testing and as the name implies, is **unstable** and not be used on your main installation but in a [testing environment](CONTRIBUTING.md). @@ -76,7 +76,9 @@ Should that not be an option, the Tube Archivist container takes these two addit Changing any of these two environment variables will change the files *nginx.conf* and *uwsgi.ini* at startup using `sed` in your container. ### Elasticsearch -**Note**: Newest Tube Archivist depends on Elasticsearch version 7.17 to provide an automatic updatepath. +**Note**: Newest Tube Archivist depends on Elasticsearch version 7.17 to provide an automatic updatepath in the future. + +Use `bbilly1/tubearchivist-es` to automatically get the recommended version, or use the official image with the version tag in the docker-compose file. Stores video meta data and makes everything searchable. Also keeps track of the download queue. - Needs to be accessible over the default port `9200` @@ -98,7 +100,7 @@ For some architectures it might be required to run Redis JSON on a nonstandard p ### Updating Tube Archivist You will see the current version number of **Tube Archivist** in the footer of the interface so you can compare it with the latest release to make sure you are running the *latest and greatest*. * There can be breaking changes between updates, particularly as the application grows, new environment variables or settings might be required for you to set in the your docker-compose file. *Always* check the **release notes**: Any breaking changes will be marked there. -* All testing and development is done with the Elasticsearch version number as mentioned in the provided *docker-compose.yml* file. This will be updated when a new release of Elasticsearch is available. Running an older version of Elasticsearch is most likely not going to result in any issues, but it's still recommended to run the same version as mentioned. +* All testing and development is done with the Elasticsearch version number as mentioned in the provided *docker-compose.yml* file. This will be updated when a new release of Elasticsearch is available. Running an older version of Elasticsearch is most likely not going to result in any issues, but it's still recommended to run the same version as mentioned. Use `bbilly1/tubearchivist-es` to automatically get the recommended version. ### Alternative installation instructions: - **arm64**: The Tube Archivist container is multi arch, so is Elasticsearch. RedisJSON doesn't offer arm builds, you can use `bbilly1/rejson`, an unofficial rebuild for arm64. diff --git a/deploy.sh b/deploy.sh index 0818e7a..38f7403 100755 --- a/deploy.sh +++ b/deploy.sh @@ -103,8 +103,9 @@ function validate { # update latest tag compatible es for set and forget function sync_latest_es { - printf "\nsync new es version:\n" - read -r VERSION + VERSION=$(grep "bbilly1/tubearchivist-es" docker-compose.yml | awk '{print $NF}') + printf "\nsync new ES version %s\nContinue?\n" "$VERSION" + read -rn 1 if [[ $(systemctl is-active docker) != 'active' ]]; then echo "starting docker" diff --git a/docker-compose.yml b/docker-compose.yml index a3ac505..89257f1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,19 +11,19 @@ services: - media:/youtube - cache:/cache environment: - - ES_URL=http://archivist-es:9200 - - REDIS_HOST=archivist-redis + - ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port + - REDIS_HOST=archivist-redis # don't add protocol - HOST_UID=1000 - HOST_GID=1000 - - TA_USERNAME=tubearchivist - - TA_PASSWORD=verysecret - - ELASTIC_PASSWORD=verysecret - - TZ=America/New_York + - TA_USERNAME=tubearchivist # your initial TA credentials + - TA_PASSWORD=verysecret # your initial TA credentials + - ELASTIC_PASSWORD=verysecret # set password for Elasticsearch + - TZ=America/New_York # set your time zone depends_on: - archivist-es - archivist-redis archivist-redis: - image: redislabs/rejson:latest # For arm64 just update this line with bbilly1/rejson:latest + image: redislabs/rejson:latest # for arm64 use bbilly1/rejson container_name: archivist-redis restart: always expose: @@ -33,12 +33,12 @@ services: depends_on: - archivist-es archivist-es: - image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1 + image: bbilly1/tubearchivist-es # only for amd64, or use official es 7.17.2 container_name: archivist-es restart: always environment: - "xpack.security.enabled=true" - - "ELASTIC_PASSWORD=verysecret" + - "ELASTIC_PASSWORD=verysecret" # matching Elasticsearch password - "discovery.type=single-node" - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: @@ -46,7 +46,7 @@ services: soft: -1 hard: -1 volumes: - - es:/usr/share/elasticsearch/data + - es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme expose: - "9200" diff --git a/docs/Channels.md b/docs/Channels.md index b82c660..e6f7654 100644 --- a/docs/Channels.md +++ b/docs/Channels.md @@ -28,4 +28,5 @@ Each channel will get a dedicated channel detail page accessible at `/channel/= 10000: + video_daily = 9999 + total_channels = self._get_total_hits("ta_channel") channel_daily = ceil(total_channels / self.interval * self.MULTIPLY) total_playlists = self._get_total_hits("ta_playlist") diff --git a/tubearchivist/home/src/index/video.py b/tubearchivist/home/src/index/video.py index a58a0cb..b8adb9a 100644 --- a/tubearchivist/home/src/index/video.py +++ b/tubearchivist/home/src/index/video.py @@ -417,16 +417,15 @@ class YoutubeVideo(YouTubeItem, YoutubeSubtitle): def _check_get_sb(self): """check if need to run sponsor block""" - integrate = False - if self.config["downloads"]["integrate_sponsorblock"]: - integrate = True + integrate = self.config["downloads"]["integrate_sponsorblock"] if self.video_overwrites: single_overwrite = self.video_overwrites.get(self.youtube_id) if not single_overwrite: return integrate - integrate = single_overwrite.get("integrate_sponsorblock", False) + if "integrate_sponsorblock" in single_overwrite: + return single_overwrite.get("integrate_sponsorblock") return integrate diff --git a/tubearchivist/home/templates/home/channel_id.html b/tubearchivist/home/templates/home/channel_id.html index a30b4f5..8240132 100644 --- a/tubearchivist/home/templates/home/channel_id.html +++ b/tubearchivist/home/templates/home/channel_id.html @@ -93,6 +93,8 @@

Enable SponsorBlock: {% if channel_info.channel_overwrites.integrate_sponsorblock %} {{ channel_info.channel_overwrites.integrate_sponsorblock }} + {% elif channel_info.channel_overwrites.integrate_sponsorblock == False %} + Disabled {% else %} False {% endif %}