From 70ff463cc62c5ad06aa6a22e741138cd7a0ecb1a Mon Sep 17 00:00:00 2001 From: "Émilien (perso)" <4016501+unixfox@users.noreply.github.com> Date: Thu, 13 Mar 2025 16:44:00 +0100 Subject: Add invidious companion support (#4985) * add support for invidious companion * redirect latest_version and dash manifest to invidious companion * fix Shadowing outer local variable `response` * fixing condition for Content-Security-Policy * throw error if inv_sig_helper and invidious_companion used same time * Use sample instead of Random.rand Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com> * Remove debug puts functions Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com> * modify the description for config.example.yaml about invidious companion * move config checks for invidious companion * separate invidious_companion logic + better config.yaml config * fixing "end" misplacement * fix linting + use .empty? * crystal handle decompression already by itself * fix download function when invidious companion used * fix linting * invidious companion always used so always add CSP and redirect latest_version * apply all the suggestions + rework invidious_companion parameter * format watch.cr * fix ameba Redundant use of `Object#to_s` in interpolation * add ability for invidious companion to check request from invidious * Better document private_url and public_url * Better doc for invidious_companion_key * !empty? to present? * skip proxy for invidious companion * fixing format * missing , * add companion pooling http * fix: don't use http proxy when sending requests to companion * fix: logic where we want to have the invidious logic if companion is not used * chore: remove baseurl usage from invidious companion * chore: change from inv-sig-helper to companion for required playback * fix: use puts + add warning for inv-sig-helper deprecated --------- Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com> --- config/config.example.yml | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'config') diff --git a/config/config.example.yml b/config/config.example.yml index b04e0a30..8484c6be 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -54,6 +54,53 @@ db: ## #signature_server: +## +## Invidious companion is an external program +## for loading the video streams from YouTube servers. +## +## When this setting is commented out, Invidious companion is not used. +## Otherwise, Invidious will proxy the requests to Invidious companion. +## +## Note: multiple URL can be configured. In this case, invidious will +## randomly pick one every time video data needs to be retrieved. This +## URL is then kept in the video metadata cache to allow video playback +## to work. Once said cache has expired, requesting that video's data +## again will cause a new companion URL to be picked. +## +## The parameter private_url needs to be configured for the internal +## communication between the companion and Invidious. +## And public_url is the public URL from which companion is listening +## to the requests from the user(s). +## +## If you are using a reverse proxy then you will probably need to +## configure the public_url to be the same as the domain used for Invidious. +## Also apply when used from an external IP address (without a domain). +## Examples: https://MYINVIDIOUSDOMAIN or http://192.168.1.100:8282 +## +## Both parameter can have identical URL when Invidious is hosted in +## an internal network or at home or locally (localhost). +## +## Accepted values: "http(s)://:" +## Default: +## +#invidious_companion: +# - private_url: "http://localhost:8282" +# public_url: "http://localhost:8282" + +## +## API key for Invidious companion, used for securing the communication +## between Invidious and Invidious companion. +## The size of the key needs to be more or equal to 16. +## +## Note: This parameter is mandatory when Invidious companion is enabled +## and should be a random string. +## Such random string can be generated on linux with the following +## command: `pwgen 16 1` +## +## Accepted values: a string +## Default: +## +#invidious_companion_key: "CHANGE_ME!!" ######################################### # -- cgit v1.2.3