From 2f90d058038e94111220e4847e08f13866d137e0 Mon Sep 17 00:00:00 2001 From: Benjamin Loison <12752145+Benjamin-Loison@users.noreply.github.com> Date: Fri, 23 Sep 2022 00:24:45 +0200 Subject: [PATCH 001/156] Correct two typos in `docs/{instances.md, installation.md}` (#283) * Correct a typo in `docs/instances.md` * Correct a typo in `docs/installation.md` --- docs/installation.md | 2 +- docs/instances.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index cffb34f..751e5f9 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -7,7 +7,7 @@ Note: Any [PaaS](https://en.wikipedia.org/wiki/Platform_as_a_service) or [SaaS]( ## Hardware requirements -Running Invidious requires at least 512MB of free RAM (so ~2G installed on the system), as long as the is restarted regularly, as recommended in the post-install configuration. Public instances should ideally have at least 4GB of RAM, 2vCPU, a 200 mbps link and 20TB of traffic (no data cap/unlimited traffic is preferred). +Running Invidious requires at least 512MB of free RAM (so ~2G installed on the system), as long as it is restarted regularly, as recommended in the post-install configuration. Public instances should ideally have at least 4GB of RAM, 2vCPU, a 200 mbps link and 20TB of traffic (no data cap/unlimited traffic is preferred). Compiling Invidious requires at least 2.5GB of free RAM (We recommend to have at least 4GB installed). If you have less (e.g on a cheap VPS) you can setup a SWAP file or partition, so the combined amount is >= 4GB. diff --git a/docs/instances.md b/docs/instances.md index ee09d8d..39e4a81 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -84,7 +84,7 @@ 9. Instances MUST NOT use any type of analytics. 10. Any system whose goal is to modify the content served to the user (i.e web server HTML rewrite) is considered the same as modifying the source code. 11. Instances running a modified source code: - - MUST respect the AGPL by publishing their source code and stating their changes **before** they are be added to the list + - MUST respect the AGPL by publishing their source code and stating their changes **before** they are added to the list - MUST publish any later modification in a timely manner - MUST contain a link to both the modified and original source code of Invidious in the footer. 12. Instances MUST NOT serve ads (sponsorship links in the banner are considered ads) NOR promote products. From c428486202105b29ffcb6150813f798305e1be70 Mon Sep 17 00:00:00 2001 From: Artemis <51862164+artemislena@users.noreply.github.com> Date: Fri, 23 Sep 2022 07:04:42 +0200 Subject: [PATCH 002/156] Add yt.artemislena.eu onion instance (#280) --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 39e4a81..7dd5a08 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -71,6 +71,8 @@ * [am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion](http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion) 🇺🇸 (Onion of invidious.slipfox.xyz) +* [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) + ## Rules to have your instance in this list: 1. Instances MUST have been up for at least a month before it can be added to this list. From 75193eaa940118d70d972b034dd86bbb952977c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 26 Sep 2022 20:38:28 +0000 Subject: [PATCH 003/156] remove invidious.weblibre.org closes https://github.com/iv-org/documentation/issues/284 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 7dd5a08..f55dd0a 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -26,8 +26,6 @@ * [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 -* [invidious.weblibre.org](https://invidious.weblibre.org) 🇨🇱 - * [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 From 944e0f3cb279947b9d3627e314716d08167ab70e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 26 Sep 2022 20:42:05 +0000 Subject: [PATCH 004/156] update onion url for invidious.esmailelbob.xyz closes https://github.com/iv-org/documentation/issues/282 --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index f55dd0a..2fe2e37 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -63,7 +63,7 @@ * [euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion](http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion/) 🇩🇪 (Onion of invidious.sethforprivacy.com) -* [invidious.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion](http://invidious.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion) 🇨🇦 (Onion of invidious.esmailelbob.xyz) +* [invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion](http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion) 🇨🇦 (Onion of invidious.esmailelbob.xyz) * [inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) 🇨🇦 (Onion of inv.vern.cc) From ddaf83d7336f4a45db837eb463e7f6265561310c Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Mon, 3 Oct 2022 15:50:49 +0200 Subject: [PATCH 005/156] Add the missing steps to copy and configure config.yml for manual installations (#289) --- docs/installation.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/installation.md b/docs/installation.md index 751e5f9..97559b4 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -167,6 +167,8 @@ su - invidious cd invidious shards install --production crystal build src/invidious.cr --release +cp config/config.example.yml config/config.yml +# Configure config/config.yml how you want exit ``` @@ -217,6 +219,8 @@ git clone https://github.com/iv-org/invidious cd invidious shards install --production crystal build src/invidious.cr --release +cp config/config.example.yml config/config.yml +# Configure config/config.yml how you want ``` Note: If the command `crystal build` didn't work properly, you can build Invidious without lsquic may solve compatibilities issues: From 932a20d28163330c55b7ca210446cf5137433c2e Mon Sep 17 00:00:00 2001 From: Arya K <73596856+gi-yt@users.noreply.github.com> Date: Tue, 4 Oct 2022 18:06:18 +0530 Subject: [PATCH 006/156] Add an I2P section to the instance list and add ~vern's invidious eepsite to it (#290) * Add I2P sec to instancelist and add ~vern to it * make it I2P Eepsites instead of I2P Eepsite Services Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 2fe2e37..7ac2f14 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -71,6 +71,10 @@ * [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) +### I2P Eepsites: + +* [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇨🇦 (Eepsite of inv.vern.cc) + ## Rules to have your instance in this list: 1. Instances MUST have been up for at least a month before it can be added to this list. From 399097c3c34e959c7becb271c9c40d16178544c5 Mon Sep 17 00:00:00 2001 From: Arya K <73596856+gi-yt@users.noreply.github.com> Date: Wed, 12 Oct 2022 13:02:26 +0530 Subject: [PATCH 007/156] Add ~vern source code changes link (#291) --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 7ac2f14..0a03903 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -38,7 +38,7 @@ * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious -* [inv.vern.cc](https://inv.vern.cc) 🇨🇦 +* [inv.vern.cc](https://inv.vern.cc) 🇨🇦 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 From 394ab7f19c725b9e67d734834589e211a4333896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 14 Oct 2022 10:59:49 +0200 Subject: [PATCH 008/156] Adding new instances Closes #277 Closes #270 --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 0a03903..dce181b 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -48,6 +48,10 @@ * [invidio.xamh.de](https://invidio.xamh.de) 🇩🇪 +* [invidious.dhusch.de](https://invidious.dhusch.de) 🇩🇪 + +* [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From ac6f26960e90330eec7d34cb61a4189c42bb81ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 17 Oct 2022 14:01:25 +0200 Subject: [PATCH 009/156] Add invidious.baczek.me and invidious.weblibre.org --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index dce181b..15c7c4d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,6 +52,10 @@ * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 +* [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 + +* [invidious.weblibre.org](https://invidious.weblibre.org) 🇨🇱 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 135c587e295533977967214e91fc2ecb11f07837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 18 Oct 2022 08:26:19 +0200 Subject: [PATCH 010/156] Add inv.odyssey346.dev onion fixes #271 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 15c7c4d..80f3b4d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -79,6 +79,8 @@ * [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) +* [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) + ### I2P Eepsites: * [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇨🇦 (Eepsite of inv.vern.cc) From 4fc4173430d3e843c5307505233828e6c25f91f6 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Wed, 2 Nov 2022 09:36:33 +0000 Subject: [PATCH 011/156] Install steps: Prefer `make` over crystal commands (#302) --- docs/installation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 97559b4..770f1d2 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -165,8 +165,7 @@ exit ```bash su - invidious cd invidious -shards install --production -crystal build src/invidious.cr --release +make cp config/config.example.yml config/config.yml # Configure config/config.yml how you want exit From e985e5983163d49aa66e70e9b517f5154dfb6606 Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Sun, 6 Nov 2022 04:32:07 -0800 Subject: [PATCH 012/156] "Comments" added to URL-Parameters.md (#299) Add URL Parameter for disabling comments. --- docs/url-parameters.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/url-parameters.md b/docs/url-parameters.md index 4301573..0144d78 100644 --- a/docs/url-parameters.md +++ b/docs/url-parameters.md @@ -52,8 +52,10 @@ _This list is incomplete. You can help by expanding it._ | `quality=dash` | [DASH](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) | | `quality=hd720` | 720p | | `quality=medium` | 480p | -| _Related Videos_ | Show "Related videos" tab on the right-hand side | -| `related_videos=false` | Disabled | +| _Related Videos_ | Show "Related videos" tab on the right-hand side | +| `related_videos=false` | Disabled | +| _Comments_ | Show comments below the video| +| `comments=false` | Disabled | | _Speed_ | Default player speed, can be any positive number | | `speed=0.5` | Play at 0.5x speed | | `speed=2` | Play at 2x speed | @@ -91,4 +93,4 @@ _This list is incomplete. You can help by expanding it._ | `region=DE` | Load videos that are trending in Germany | | **Player Style** | | | `player_style=invidious` | Invidious, the default | -| `player_style=youtube` | YouTube, using a centered play button and always visible video control bar | \ No newline at end of file +| `player_style=youtube` | YouTube, using a centered play button and always visible video control bar | From fc15ea07deaf3980251a13af64d26f8f10f55340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 25 Nov 2022 15:34:01 +0100 Subject: [PATCH 013/156] Remove invidious.kavin.rocks due to bad uptime Less than 57% of uptime per month --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 80f3b4d..3ab9ec6 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -12,8 +12,6 @@ * [yewtu.be](https://yewtu.be) 🇳🇱 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d)](https://uptime.invidious.io/784257752) - Source code/changes: https://github.com/unixfox/invidious-custom -* [invidious.kavin.rocks](https://invidious.kavin.rocks) 🇮🇳 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71)](https://status.kavin.rocks/786132664) (uses Cloudflare) - * [vid.puffyan.us](https://vid.puffyan.us) 🇺🇸 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3?style=plastic)](https://stats.uptimerobot.com/n7A08HGVl6/786947233) * [invidious.namazso.eu](https://invidious.namazso.eu) 🇩🇪 From df838b8b2ddd24cbc875668143f51fc941724155 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Fri, 25 Nov 2022 14:41:00 +0000 Subject: [PATCH 014/156] Config: point to config/config.example.yml (#304) No need for duplicate (and/or obselete) documentation! --- docs/configuration.md | 72 +------------------------------------------ 1 file changed, 1 insertion(+), 71 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index e6544fe..e932c66 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,73 +1,3 @@ # Configuration -### What can be configured and what are these configuration options? - -The configuration file is located at [invidious/config/config.yml](https://github.com/iv-org/invidious/blob/master/config/config.example.yml). - -- `channel_threads` (default `1`) Number of threads to use for crawling videos from channels - -- `feed_threads` (default `1`) Number of threads to use for refreshing subscription feeds - -``` -db: - user: kemal # your database user - password: kemal # your database password - host: localhost # database host - port: 5432 # postgres port -``` - -- `full_refresh` (default `false`) When crawling channel videos, threads should refresh *all* videos uploaded by a channel - -- `https_only` (default `false`) Used to tell Invidious it is accessed via https, set to `true` if you have for example a reverse proxy with a ssl certificate - -- `hmac_key` (default `nil`) Signing key for CSRF tokens (when `nil` is randomly generated on startup, can be any random string) - -- `domain` (default `nil`) Domain to use for providing `self` links in RSS feeds, issuing cookies, etc. - -- `use_pubsub_feeds` (default `false`) Use server-side notifications provided by [YouTube](https://developers.google.com/youtube/v3/guides/push_notifications). Requires `domain` and `hmac_key` to be set - -- `default_home` (default `"Popular"`) Default home page **Moved into `default_user_preferences`** - -- `feed_menu` (default `["Popular", "Trending", "Subscriptions"]`) Order of tabs on feed menu **Moved into `default_user_preferences`** - -- `captcha_enabled` (default `true`) Determine if CAPTCHA should be required for registration - -- `login_enabled` (default `true`) Whether users should be able to login - -- `registration_enabled` (default `true`) Whether new users should be able to register - -- `statistics_enabled` (default `false`) Whether statistics should be available from `/api/v1/stats` - -- `admins` (default `[]`) List of user IDs that have access to administrator preferences - -- `external_port` (default `nil`) Invidious should supply links to a different port (if running behind a proxy, for example). PubSub notifications (if enabled) will also be sent to this port - -- `default_user_preferences` (default [`ConfigPreferences`](https://github.com/iv-org/invidious/blob/master/src/invidious/helpers/helpers.cr#L127)) Default preferences to use for new and unregistered users, see [#415](https://github.com/iv-org/invidious/issues/415) - -- `dmca_content` (default `[]`) For compliance with DMCA requests, disables download widget for list of video IDs - -- `check_tables` (default `false`) Check table integrity, automatically try to add any missing columns, create columns, etc. - -- `cache_annotations` (default `false`) Cache annotations requested from IA, will not cache empty annotations or annotations that only contain cards - -- `banner` (default `nil`) Optional banner to be displayed along top of page for announcements, etc. - -- `hsts` (default `true`) For HTTP Strict Transport Security - -- `disable_proxy` (default `false`) Disable proxy option serverwide (options: 'dash', 'livestreams', 'downloads', 'local') - -- `force_resolve` (default `nil`) Force IPv4 or IPv6 connection to Google (options: 'ipv4', 'ipv6') see [#811](https://github.com/iv-org/invidious/issues/811) - -- `pool_size` (default `100`) Pool size for HTTP connections for youtube.com and ytimg.com (each domain has a separate pool of `pool_size`) - -- `admin_email` (default `omarroth@protonmail.com`) Email provided to users for bug reports - -- `port` (default `3000`) Default port for HTTP server - -- `host_binding` (default `0.0.0.0`) Default host for HTTP server - -- `cookies` (default `nil`) Cookies to be used when connecting to YouTube - -- `captcha_key` (default `nil`) [Anti-Captcha](https://anti-captcha.com/) API key for solving YouTube CAPTCHAs, see [#886](https://github.com/iv-org/invidious/issues/886). - -- `popular_enabled` (default `false`) Whether to display popular videos of the instance. +An comprehensive list of all the available config options, with detailed explaination and default values is available under [`config/config.example.yml`](https://github.com/iv-org/invidious/blob/master/config/config.example.yml) in the main invidious repository. From 51728d7a5886af6ab55c4d3901081b0cf14485db Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Fri, 25 Nov 2022 14:48:31 +0000 Subject: [PATCH 015/156] Install: replace legacy SQL files with --migrate (#306) --- docs/installation.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 770f1d2..5bd51a0 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -148,15 +148,6 @@ systemctl enable --now postgresql sudo -i -u postgres psql -c "CREATE USER kemal WITH PASSWORD 'kemal';" # Change 'kemal' here to a stronger password, and update `password` in config/config.yml createdb -O kemal invidious -psql invidious kemal < /home/invidious/invidious/config/sql/channels.sql -psql invidious kemal < /home/invidious/invidious/config/sql/videos.sql -psql invidious kemal < /home/invidious/invidious/config/sql/channel_videos.sql -psql invidious kemal < /home/invidious/invidious/config/sql/users.sql -psql invidious kemal < /home/invidious/invidious/config/sql/session_ids.sql -psql invidious kemal < /home/invidious/invidious/config/sql/nonces.sql -psql invidious kemal < /home/invidious/invidious/config/sql/annotations.sql -psql invidious kemal < /home/invidious/invidious/config/sql/playlists.sql -psql invidious kemal < /home/invidious/invidious/config/sql/playlist_videos.sql exit ``` @@ -166,8 +157,13 @@ exit su - invidious cd invidious make + +# Configure config/config.yml as you like cp config/config.example.yml config/config.yml -# Configure config/config.yml how you want + +# Deploy the database +./invidious --migrate + exit ``` From 0cab19d4f78910ca4e5f1d87417670aed8a95d97 Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Fri, 25 Nov 2022 11:34:55 -0800 Subject: [PATCH 016/156] Create Redirector_Setup (#298) * Create Redirector_Setup Guidelines on setting up Redirector to act as a YouTube-Invidious extension. * Update Redirector_Setup I have formally updated the list with a more comprehensive list of rules, including rules that address embeds and multiple domains at once. If anyone would like to try and simplify this list further, they are free to. Otherwise, I would consider this complete and ready for use. * Update Redirector_Setup * Rename Redirector_Setup to redirector_setup * Rename redirector_setup to redirector_setup.md * Enhancements and link to Redirector * Small enhancement Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/redirector_setup.md | 105 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 docs/redirector_setup.md diff --git a/docs/redirector_setup.md b/docs/redirector_setup.md new file mode 100644 index 0000000..fac551c --- /dev/null +++ b/docs/redirector_setup.md @@ -0,0 +1,105 @@ +# What is Redirector? + +Redirector is a Browser extension for Firefox and Chromium that can manually be configured to redirect links, such as YouTube to Invidious or [Twitter to Nitter](https://github.com/zedeus/nitter/wiki/Extensions#redirector) + +Get Redirector: [Firefox](https://addons.mozilla.org/en-US/firefox/addon/redirector/) — [Chromium-based](https://chrome.google.com/webstore/detail/redirector/ocgpenflpmgnfapjedencafcfakcekcd) — [GitHub](https://github.com/einaregilsson/Redirector) + +# How to use it for Invidious Redirects? + +For basic redirects, you will need the following rules set up. + +# Rule 1 + +Redirects Youtube Videos to Invidious +Redirect: https://*.youtube.com/watch?*v=* +to: https://[Invidious Domain Here]/watch?$2v=$3 +Hint: Redirects individual videos to their Invidious equivelant +Example: https://www.youtube.com/watch?v=Lz13cxZNTCo → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo +Applies to: Main window (address bar) + +# Rule 2 (Note, Rule 2 is for redirecting the youtu.be domain, typically accociated with embeds) + +Redirect: https://youtu.be/* +to: https://[Invidious Domain Here]/watch?v=$1 +Example: https://youtu.be/Ae5yV4p7uh8?t=35 → https://[Invidious Domain Here]/watch?v=Ae5yV4p7uh8?t=35 + +# Rule 3 (Note, Rule 3 is for those who use DDG bangs or search extensions to search YouTube and would like those properly redirected to Invidious) + +Redirect YouTube Search to Invidious +Redirect: https://www.youtube.com/results?search_query=*&page +to: https://[Invidious Domain Here]/search?q=$1 +Example: https://www.youtube.com/results?search_query=Smash+Bros+Trailer&page → https://[Invidious Domain Here]/search?q=Smash+Bros+Trailer +Applies to: Main window (address bar) + + +# Rule 4 + +Redirects Youtube to Invidous +Redirect: https://*.youtube.com/* +to: https://[Invidious Domain Here]/$2 +Example: https://www.youtube.com/channel/UCOkL7q2SeGZeZuj22njMYEA → https://[Invidious Domain Here]/channel/UCOkL7q2SeGZeZuj22njMYEA +Applies to: Main window (address bar) + + +If you would like to use URL Parameters in your redirects (see https://github.com/cloudrac3r/invidious-documentation/blob/master/List-of-URL-parameters.md), you will need to manually add them to Rule 1, (https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] in place of https://[Invidious Domain Here]/watch?v=$1. + +For clarity, an example of a URL parameter would be &related_videos=false&comments=false to ensure that neither related videos nor comments are displayed on a video page, so https://[Invidious Domain Here]/watch?v=$1&related_videos=false&comments=false would be the destination of redirects. + +Should you choose to use URL Parameters, I would reccomend adding the following rule to both ensure all invidious videos load with your preference, and to ensure that unnecesary parameters are not added when already applied. + +# Rule 5 + +Redirects Invidious Videos with URL Parameters +Redirect: https://[Invidious Domain Here]/watch?v=* +to: https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] +excluding: https://[Invidious Domain Here]/watch?v=*[URL Parameters here] +Hint: Update this to correlate with the YouTube Video Redirect +Example: https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo[URL Parameters here] +Applies to: Main window (address bar) + +It is important that you add the exception so as not to create infinite repeats of the same URL Parameters when opening multiple Invidious Videos in a single session. When creating or editing rules in Redirector you must access "Advanced Options" in order to set exceptions. + +For redirecting embeds, you'll need the following two rules. + +# Rule 6 + +Redirects Embedded Youtube Videos to Invidious +Redirect: https://www.youtube.com/embed/* +to: https://[Invidious Domain Here]/embed/$1 +Hint: Redirects individual videos to their Invidious equivelant +Example: https://www.youtube.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo +Applies to: Main window (address bar), IFrames + +# Rule 7 + +Redirects Embedded Youtube Videos to Invidious +Redirect: https://www.youtube-nocookie.com/embed/* +to: https://[Invidious Domain Here]/embed/$1 +Hint: Redirects individual videos to their Invidious equivelant +Example: https://www.youtube-nocookie.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo +Applies to: Main window (address bar), IFrames + +(Note, it is imparative that you check it applies to both the Main Window and IFrames, otherwise the rule won't applied to Embeds). + + +Finally, if you like to subscribe to channels using RSS feeds, you made add the following two rules to redirect Invidious RSS feeds to their YouTube equivelants. This way you'll still have access to your feeds should you need to migrate to another instance. + +# Rule 8 + +Redirect Invidious Feeds to YouTube Feeds +Redirect: https://[Invidious Domain Here]/feed/channel/* +to: https://www.youtube.com/feeds/videos.xml?channel_id=$1 +Hint: And now you can subscribe in peace. +Example: https://[Invidious Domain Here]/feed/channel/UCOkL7q2SeGZeZuj22njMYEA → https://www.youtube.com/feeds/videos.xml?channel_id=UCOkL7q2SeGZeZuj22njMYEA +Applies to: Main window (address bar) + +#Rule 9 + +Redirect Playlist RSS from Invidious to YouTube +Redirect: https://[Invidious Domain Here]/feed/playlist/* +to: https://www.youtube.com/feeds/videos.xml?playlist_id=$1 +Example: https://[Invidious Domain Here]/feed/playlist/PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj → https://www.youtube.com/feeds/videos.xml?playlist_id=PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj +Applies to: Main window (address bar) + +All of these rules are made with Wildcard Processing. + From ecab14aa98a4ae8af397364053c0e0da6dd879fb Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Fri, 25 Nov 2022 20:36:45 +0100 Subject: [PATCH 017/156] Rename redirector_setup.md to redirector-setup.md --- docs/{redirector_setup.md => redirector-setup.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{redirector_setup.md => redirector-setup.md} (100%) diff --git a/docs/redirector_setup.md b/docs/redirector-setup.md similarity index 100% rename from docs/redirector_setup.md rename to docs/redirector-setup.md From a042ce4951707637a55172bd577984ffb9566ce0 Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Fri, 25 Nov 2022 11:37:23 -0800 Subject: [PATCH 018/156] Redirector added to Extensions list (#300) * Redirector added to Extensions list Redirector was added to the list of extensions, with instructions to read Redirector_Setup for more information. * Redirector_Setup renamed to redirector_setup.md * Link to the setup page Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/applications.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/applications.md b/docs/applications.md index 2e941de..cc10fbf 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -9,6 +9,7 @@ - [Invidious Copy URL](https://github.com/recette-lemon/invidious-copy-url): Adds context menu options on Invidious to copy shortened YouTube URL at current time or not (Requires using developer mode in Chrome or a developer version of Firefox). - [View on Invidious](https://omar.yt/722e5c15832840fe1ae8830b7c590254b9e0a45c/invidious-bookmarklet.html): View page on Invidious (bookmarklet). - [Inviduration](https://addons.mozilla.org/addon/inviduration): Firefox extension that shows total duration of playlists on Invidious. [Source](https://github.com/rsapkf/inviduration) / [Firefox](https://addons.mozilla.org/addon/inviduration) +- [Redirector](https://github.com/einaregilsson/Redirector): Extension for Firefox and Chromium that can manually be configured to process Inidious Redirects. For details, see the[setup page](./redirector-setup.md) to use it with Invidious. ### Userscripts for Invidious. - [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect): Redirects YouTube URLs to Invidio.us. From 9473361326a006f6e5e2b397cafd6b4a04f43b73 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Fri, 25 Nov 2022 20:38:08 +0100 Subject: [PATCH 019/156] typo --- docs/applications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/applications.md b/docs/applications.md index cc10fbf..b84ffd1 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -9,7 +9,7 @@ - [Invidious Copy URL](https://github.com/recette-lemon/invidious-copy-url): Adds context menu options on Invidious to copy shortened YouTube URL at current time or not (Requires using developer mode in Chrome or a developer version of Firefox). - [View on Invidious](https://omar.yt/722e5c15832840fe1ae8830b7c590254b9e0a45c/invidious-bookmarklet.html): View page on Invidious (bookmarklet). - [Inviduration](https://addons.mozilla.org/addon/inviduration): Firefox extension that shows total duration of playlists on Invidious. [Source](https://github.com/rsapkf/inviduration) / [Firefox](https://addons.mozilla.org/addon/inviduration) -- [Redirector](https://github.com/einaregilsson/Redirector): Extension for Firefox and Chromium that can manually be configured to process Inidious Redirects. For details, see the[setup page](./redirector-setup.md) to use it with Invidious. +- [Redirector](https://github.com/einaregilsson/Redirector): Extension for Firefox and Chromium that can manually be configured to process Inidious Redirects. For details, see the [setup page](./redirector-setup.md) to use it with Invidious. ### Userscripts for Invidious. - [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect): Redirects YouTube URLs to Invidio.us. From 7e5fce94d2057d72ba5cfd7728847036523c026c Mon Sep 17 00:00:00 2001 From: Arya K <73596856+gi-yt@users.noreply.github.com> Date: Sat, 26 Nov 2022 21:44:27 +0530 Subject: [PATCH 020/156] Update ~vern invidious location (#311) --- docs/instances.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 3ab9ec6..caea507 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -36,7 +36,7 @@ * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious -* [inv.vern.cc](https://inv.vern.cc) 🇨🇦 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious +* [inv.vern.cc](https://inv.vern.cc) 🇺🇸 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 @@ -71,7 +71,7 @@ * [invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion](http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion) 🇨🇦 (Onion of invidious.esmailelbob.xyz) -* [inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) 🇨🇦 (Onion of inv.vern.cc) +* [inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) 🇺🇸 (Onion of inv.vern.cc) * [am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion](http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion) 🇺🇸 (Onion of invidious.slipfox.xyz) @@ -81,7 +81,7 @@ ### I2P Eepsites: -* [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇨🇦 (Eepsite of inv.vern.cc) +* [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇺🇸 (Eepsite of inv.vern.cc) ## Rules to have your instance in this list: From 7fd4b15814524e4204959fcfbaf1d9faed6e4bfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20B=C4=85czek?= Date: Sun, 27 Nov 2022 20:09:49 +0100 Subject: [PATCH 021/156] Add README instructions for serving the docs locally (#287) * Add README instructions for serving the docs locally * Rename readme.md to README.md * Add a title Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..fcd9f73 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# The Invidious documentation + +# Running the documentation locally for development purposes + +## Local `mkdocs-material` installation + +```bash +# You might want to create a virtualenv first +pip install mkdocs-material +mkdocs-material serve +``` + +## With docker + +```bash +docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material:latest +``` From e015deb4a254095e481f923c9ae1ff0242d2a15b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 28 Nov 2022 15:37:56 +0100 Subject: [PATCH 022/156] Remove down instance --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index caea507..f52ea9e 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -40,8 +40,6 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [inv.privacy.com.de](https://inv.privacy.com.de) 🇩🇪 - * [invidious.rhyshl.live](https://invidious.rhyshl.live) 🇬🇧 (Uses Cloudflare) * [invidio.xamh.de](https://invidio.xamh.de) 🇩🇪 From d65b5da324077a3a4f9a09e9bfba769108f0de91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 28 Nov 2022 15:39:31 +0100 Subject: [PATCH 023/156] Remove invidious.projectsegfau.lt often down + bad uptime --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index f52ea9e..586487d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -26,7 +26,7 @@ * [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 -* [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 +* [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 From 13025de7e0648ec07a8743fa7e601ad5e53f5b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 28 Nov 2022 18:28:54 +0000 Subject: [PATCH 024/156] Add invidious.privacydev.net and invidious.silur.me Closes #288 Closes #292 --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 586487d..e760e17 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,6 +52,10 @@ * [invidious.weblibre.org](https://invidious.weblibre.org) 🇨🇱 +* [invidious.privacydev.net](https://invidious.privacydev.net) 🇺🇸 + +* [invidious.silur.me](https://invidious.silur.me) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From e87b99b1a58c988e6366bd4a099e7f15a0d6e28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 29 Nov 2022 13:51:45 +0100 Subject: [PATCH 025/156] Removing invidious.silur.me out of date --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index e760e17..de754fd 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,8 +54,6 @@ * [invidious.privacydev.net](https://invidious.privacydev.net) 🇺🇸 -* [invidious.silur.me](https://invidious.silur.me) 🇩🇪 - ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From c64f56eadadd4423b68cf19734e5cb75ffb968d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 29 Nov 2022 13:53:36 +0100 Subject: [PATCH 026/156] Remove invidious.esmailelbob.xyz out of date by 2 months --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index de754fd..4052115 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,8 +24,6 @@ * [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 -* [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 - * [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 From 5cd02f14150682497bcd43f94de2c662cc72306c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 29 Nov 2022 13:55:40 +0100 Subject: [PATCH 027/156] Removing youtube.076.ne.jp out of date --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 4052115..28559ee 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -18,8 +18,6 @@ * [inv.riverside.rocks](https://inv.riverside.rocks) 🇺🇸 -* [youtube.076.ne.jp](https://youtube.076.ne.jp) 🇯🇵 - Source code/changes: https://git.076.ne.jp/TechnicalSuwako/invidious-mod - * [yt.artemislena.eu](https://yt.artemislena.eu) 🇩🇪 * [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 From 2bf9e2bfa46a8b21e76c38742fb397155960ca84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 29 Nov 2022 13:46:21 +0000 Subject: [PATCH 028/156] Revert "Remove invidious.esmailelbob.xyz out of date" This reverts commit c64f56eadadd4423b68cf19734e5cb75ffb968d3. --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 28559ee..93991b4 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -22,6 +22,8 @@ * [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 +* [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 + * [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 From 4e3d6f998d593abe2b3dcc1d0340fe51ca69d4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Tue, 29 Nov 2022 17:06:30 +0000 Subject: [PATCH 029/156] Add yt.funami.tech Closes #281 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 93991b4..6c9d23c 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,6 +52,8 @@ * [invidious.privacydev.net](https://invidious.privacydev.net) 🇺🇸 +* [yt.funami.tech](https://yt.funami.tech) 🇰🇷 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 5a9c586563784563103d709b0bddd3324944b5b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Wed, 30 Nov 2022 13:35:34 +0100 Subject: [PATCH 030/156] Add invidious.drivet.xyz Closes https://github.com/iv-org/documentation/issues/227 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 6c9d23c..6892d40 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,6 +54,8 @@ * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 +* [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 4be6ec0000e971ab4c56d11f83bf6060b0487498 Mon Sep 17 00:00:00 2001 From: PrivacyDevel <105459436+PrivacyDevel@users.noreply.github.com> Date: Mon, 5 Dec 2022 07:16:32 +0000 Subject: [PATCH 031/156] Add onion instance of invidious.privacydev.net (#315) --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 6892d40..2a25a2f 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -81,6 +81,8 @@ * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) +* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇺🇸 (Onion of invidious.privacydev.net) + ### I2P Eepsites: * [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇺🇸 (Eepsite of inv.vern.cc) From 9afd26803ee899fba1a8d03d2c81e3925e6b2b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 5 Dec 2022 09:56:30 +0100 Subject: [PATCH 032/156] Remove invidious.rhyshl.live not up to date https://github.com/iv-org/documentation/issues/261 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 2a25a2f..df91d08 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -38,8 +38,6 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [invidious.rhyshl.live](https://invidious.rhyshl.live) 🇬🇧 (Uses Cloudflare) - * [invidio.xamh.de](https://invidio.xamh.de) 🇩🇪 * [invidious.dhusch.de](https://invidious.dhusch.de) 🇩🇪 From 235dcfa283beca15f458b6acc74df2ebc3925487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20B=C4=85czek?= Date: Thu, 8 Dec 2022 12:52:18 +0100 Subject: [PATCH 033/156] Unify log rotation settings for both docker and manual install (#317) --- docs/installation.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/installation.md b/docs/installation.md index 5bd51a0..73a3414 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -68,6 +68,10 @@ services: interval: 30s timeout: 5s retries: 2 + logging: + options: + max-size: "1G" + max-file: "4" depends_on: - invidious-db From 4818e5e8f30eee9e1fce1465a10fc000d6679dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Thu, 15 Dec 2022 14:42:35 +0100 Subject: [PATCH 034/156] Add notice about invidious.drivet.xyz using cloudflare --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index df91d08..f5068f8 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,7 +52,7 @@ * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 -* [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 +* [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 (Uses cloudflare) ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From b819b5979b23786eafed234e4d2d698150abe7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Thu, 29 Dec 2022 21:30:15 +0000 Subject: [PATCH 035/156] add vid.priv.au closes #301 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index f5068f8..15a8cd0 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,6 +54,8 @@ * [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 (Uses cloudflare) +* [vid.priv.au](https://vid.priv.au) 🇸🇬 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From d3c955e833fca8c9b0dfc788eab56dcc56040683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Thu, 29 Dec 2022 21:44:06 +0000 Subject: [PATCH 036/156] add new instances closes #310 closes #305 closes #288 --- docs/instances.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 15a8cd0..24204ef 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -56,6 +56,13 @@ * [vid.priv.au](https://vid.priv.au) 🇸🇬 +* [invidious.marcopisco.com](https://invidious.marcopisco.com) 🇵🇹 (Uses cloudflare) + +* [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 + +* [invidious.silur.me](https://invidious.silur.me) 🇩🇪 + + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From db5234272a02fbd07beb6111ee26cf1ec1cfa1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Thu, 29 Dec 2022 21:52:39 +0000 Subject: [PATCH 037/156] add instance iv.melmac.space closes #312 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 24204ef..63e6b98 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -62,6 +62,8 @@ * [invidious.silur.me](https://invidious.silur.me) 🇩🇪 +* [iv.melmac.space](https://iv.melmac.space) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From e63db48c855eb134d00e0cec3b9787c0134de535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 10:54:09 +0100 Subject: [PATCH 038/156] Added back invidious.kavin.rocks --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 63e6b98..df3812c 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -12,6 +12,8 @@ * [yewtu.be](https://yewtu.be) 🇳🇱 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d)](https://uptime.invidious.io/784257752) - Source code/changes: https://github.com/unixfox/invidious-custom +* [invidious.kavin.rocks](https://invidious.kavin.rocks) 🇮🇳 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71)](https://status.kavin.rocks/786132664) (uses Cloudflare) + * [vid.puffyan.us](https://vid.puffyan.us) 🇺🇸 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3?style=plastic)](https://stats.uptimerobot.com/n7A08HGVl6/786947233) * [invidious.namazso.eu](https://invidious.namazso.eu) 🇩🇪 From aee6d06eb827db59ce2045bcd8d196724b1b2841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 18:11:37 +0000 Subject: [PATCH 039/156] Add requirement about hmac_key --- docs/installation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation.md b/docs/installation.md index 73a3414..4b7b0e2 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -239,6 +239,8 @@ Crystal, the programming language used by Invidious, [doesn't support Windows ye Detailed configuration available in the [configuration guide](./configuration.md). +You must set a random generated value for the parameter `hmac_key:`! On Linux you can generate it using the command `pwgen 20 1`. + Because of various issues Invidious **must** be restarted often, at least once a day, ideally every hour. If you use a reverse proxy, you **must** configure invidious to properly serve request through it: From 79cddbd021b839558d760ca0078ec36e0658173a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 18:25:49 +0000 Subject: [PATCH 040/156] Remove invidious.marcopisco.com bad uptime --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index df3812c..b400567 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -58,8 +58,6 @@ * [vid.priv.au](https://vid.priv.au) 🇸🇬 -* [invidious.marcopisco.com](https://invidious.marcopisco.com) 🇵🇹 (Uses cloudflare) - * [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 * [invidious.silur.me](https://invidious.silur.me) 🇩🇪 From b0ffea99b585973768f79e99e41a4a84c7ce5c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 18:27:58 +0000 Subject: [PATCH 041/156] Remove invidious.sethforprivacy.com bad uptime --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index b400567..022586d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -30,8 +30,6 @@ * [y.com.sb](https://y.com.sb) 🇩🇪 -* [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇩🇪 - * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious From 54356768d0f3eb008819ed6701c822949842de78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 18:43:08 +0000 Subject: [PATCH 042/156] Add two new public instances Closes #308 Closes #314 --- docs/instances.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 022586d..aab03c9 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -62,6 +62,9 @@ * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 +* [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 + +* [invidious.epicsite.xyz](https://invidious.epicsite.xyz) 🇬🇧 ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From b3f3775de81849c7699492b5bb3c1b4a950fa2a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Fri, 6 Jan 2023 19:00:50 +0000 Subject: [PATCH 043/156] Add back invidious.sethforprivacy.com --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index aab03c9..b057b9d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -66,6 +66,8 @@ * [invidious.epicsite.xyz](https://invidious.epicsite.xyz) 🇬🇧 +* [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 048abd7ec6f981cc17a7321eb4c4b3eab968270f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Mon, 9 Jan 2023 15:39:24 +0100 Subject: [PATCH 044/156] Update the URL for invidio.xamh.de to watch.thekitty.zone See https://github.com/iv-org/documentation/issues/267#issuecomment-1375715590 --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index b057b9d..833854f 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -38,7 +38,7 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [invidio.xamh.de](https://invidio.xamh.de) 🇩🇪 +* [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 * [invidious.dhusch.de](https://invidious.dhusch.de) 🇩🇪 From 4a66173585e623336d20724c84969b5534e53a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos?= Date: Wed, 11 Jan 2023 16:18:28 +0100 Subject: [PATCH 045/156] Add yt.oelrichsgarcia.de Closes #313 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 833854f..f5047d6 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -68,6 +68,8 @@ * [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 +* [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From dca939835c8a5909b450440be29006360d682eae Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Sat, 14 Jan 2023 11:01:24 +0000 Subject: [PATCH 046/156] Update channels api docs (#326) * Add a page specifying common object types * Add a page for the /api/v1/channels endpoint * Remove obselete definitions from api.md * Add/update links in index.md and mkdocs.yml * Impove MkDocs config to support code highlight & copy button * Use native JS types for better syntax highlighting --- docs/api.md | 197 ---------------------- docs/{ => api}/authenticated-endpoints.md | 0 docs/api/channels_endpoint.md | 124 ++++++++++++++ docs/api/common_types.md | 114 +++++++++++++ docs/index.md | 4 +- mkdocs.yml | 10 +- 6 files changed, 250 insertions(+), 199 deletions(-) rename docs/{ => api}/authenticated-endpoints.md (100%) create mode 100644 docs/api/channels_endpoint.md create mode 100644 docs/api/common_types.md diff --git a/docs/api.md b/docs/api.md index 7099696..d0406bb 100644 --- a/docs/api.md +++ b/docs/api.md @@ -321,203 +321,6 @@ region: ISO 3166 country code (default: "US") ] ``` -##### GET `/api/v1/channels/:ucid` - -> Schema: - -```javascript -{ - "author": String, - "authorId": String, - "authorUrl": String, - "authorBanners": [ - { - "url": String, - "width": Int32, - "height": Int32 - } - ], - "authorThumbnails": [ - { - "url": String, - "width": Int32, - "height": Int32 - } - ], - - "subCount": Int32, - "totalViews": Int64, - "joined": Int64, - - "paid": Bool, - "autoGenerated": Bool, - "isFamilyFriendly": Bool, - "description": String, - "descriptionHtml": String, - "allowedRegions": Array(String), - - "latestVideos": [ - { - "title": String, - "videoId": String, - "author": String, - "authorId": String, - "authorUrl": String, - - "videoThumbnails": [ - { - "quality": String, - "url": String, - "width": Int32, - "height": Int32 - } - ], - "description": String, - "descriptionHtml": String, - "viewCount": Int64, - "published": Int64, - "publishedText": String, - "lengthSeconds": Int32, - "paid": Bool, - "premium": Bool - } - ], - "relatedChannels": [ - { - "author": String, - "authorId": String, - "authorUrl": String, - "authorThumbnails": [ - { - "url": String, - "width": Int32, - "height": Int32 - } - ] - } - ] -} -``` - -Parameters: - -``` -sort_by: "newest", "oldest", "popular" (default: newest) -``` - -Note that a channel's username (if it doesn't include spaces) is also valid in place of `ucid`, e.g. `/api/v1/channels/BlenderFoundation`. - -##### GET `/api/v1/channels/:ucid/videos`, `/api/v1/channels/videos/:ucid` - -> Schema: - -```javascript -[ - { - title: String, - videoId: String, - author: String, - authorId: String, - authorUrl: String, - - videoThumbnails: [ - { - quality: String, - url: String, - width: Int32, - height: Int32 - } - ], - description: String, - descriptionHtml: String, - - viewCount: Int64, - published: Int64, - publishedText: String, - lengthSeconds: Int32 - paid: Bool, - premium: Bool - } -] -``` - -Parameters: - -``` -page: Int32 -sort_by: "newest", "oldest", "popular" (default: newest) -``` - -##### GET `/api/v1/channels/:ucid/latest`, `/api/v1/channels/latest/:ucid` - -```javascript -[ - { - title: String, - videoId: String, - authorId: String, - authorUrl: String, - - videoThumbnails: [ - { - quality: String, - url: String, - width: Int32, - height: Int32 - } - ], - description: String, - descriptionHtml: String, - - viewCount: Int64, - published: Int64, - publishedText: String, - lengthSeconds: Int32 - paid: Bool, - premium: Bool - } -] -``` - -##### GET `/api/v1/channels/playlists/:ucid`, `/api/v1/channels/:ucid/playlists` - -```javascript -{ - "playlists": [ - { - "title": String, - "playlistId": String, - "author": String, - "authorId": String, - "authorUrl": String, - "videoCount": Int32, - "videos": [ - { - "title": String, - "videoId": String, - "lengthSeconds": Int32, - "videoThumbnails": [ - { - "quality": String, - "url": String, - "width": Int32, - "height": Int32 - } - ] - } - ] - ], - "continuation": String? -} -``` - -Parameters: - -``` -continuation: String -sort_by: "oldest", "newest", "last" -``` - ##### GET `/api/v1/channels/comments/:ucid`, `/api/v1/channels/:ucid/comments` diff --git a/docs/authenticated-endpoints.md b/docs/api/authenticated-endpoints.md similarity index 100% rename from docs/authenticated-endpoints.md rename to docs/api/authenticated-endpoints.md diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md new file mode 100644 index 0000000..df977c1 --- /dev/null +++ b/docs/api/channels_endpoint.md @@ -0,0 +1,124 @@ +# Channels endpoint + +Please refer to the [Common object types](./common_types.md) page for more +details on the various JSON objects used below. + + +##### GET `/api/v1/channels/:id` + +> Response: + +```javascript +{ + "author": String, + "authorId": String, + "authorUrl": String, + "authorBanners": [ + // One or more ImageObject + ], + "authorThumbnails": [ + // One or more ImageObject + ], + + "subCount": Number, // Integer + "totalViews": Number, // Integer + "joined": Number, // Unix timestamp + + "autoGenerated": Boolean, + "isFamilyFriendly": Boolean, + + "description": String, + "descriptionHtml": String, + "allowedRegions": [String], + + "latestVideos": [ + // One or more VideoObject + ], + "relatedChannels": [ + // One or more ChannelObject + ] +} +``` + + +##### GET `/api/v1/channels/:id/channels` + +> URL parameters: + +* `continuation`: A continuation token to get the next chunk of items. The token is provided each time this API is requested. + +> Response: + +```javascript +{ + "relatedChannels": [ + // One or more ChannelObject + ], + "continuation": String +} +``` + + +##### GET `/api/v1/channels/:id/latest` + +This is the same as requesting `/api/v1/channels/:id/videos` without URL parameters. + + +##### GET `/api/v1/channels/:id/playlists` + +> URL parameters: + +* `continuation`: A continuation token to get the next chunk of items. The token is provided each time this API is requested. +* `sort_by`: Sort order filter. Accepted values: `oldest`, `newest`, `last`. Defaults to `last`. + +> Response: + +```javascript +{ + "playlists": [ + // One or more PlaylistOject + ], + "continuation": continuation +} +``` + + +##### GET `/api/v1/channels/:id/shorts` + +> URL parameters: + +* `continuation`: A continuation token to get the next chunk of items. The token is provided each time this API is requested. + +> Response: + +See: GET `/api/v1/channels/:id/videos` + + +##### GET `/api/v1/channels/:id/streams` + +> URL parameters: + +* `continuation`: A continuation token to get the next chunk of items. The token is provided each time this API is requested. + +> Response: + +See: GET `/api/v1/channels/:id/videos` + + +##### GET `/api/v1/channels/:id/videos` + +> URL parameters: + +* `continuation`: A continuation token to get the next chunk of items. The token is provided each time this API is requested. +* `sort_by`: Sort order filter. Accepted values: `newest`, `popular` or `oldest` (Broken as of 10/2022). Default to `newest`. + +> Response: + +```javascript +{ + "videos": [ + // One or more VideoObject + ], + "continuation": String +} +``` diff --git a/docs/api/common_types.md b/docs/api/common_types.md new file mode 100644 index 0000000..e2458ec --- /dev/null +++ b/docs/api/common_types.md @@ -0,0 +1,114 @@ +# Object types used across the API + + +### ImageObject + +```javascript +{ + "url": String, + "width": Number, // Integer + "height": Number // Integer +} +``` + + +### ThumbnailObject + +```javascript +{ + "quality": String, + "url": String, + "width": Number, // Integer + "height": Number // Integer +} +``` + + +### VideoObject + +```javascript +{ + "type": "video", // Constant + + "title": String, + "videoId": String, + + "author": String, + "authorId": String, + "authorUrl": String, + + "videoThumbnails": [ + // One or more ThumbnailObject + ], + + "description": String, + "descriptionHtml": String, + + "viewCount": Number, // Integer + "lengthSeconds": Number, // Integer + + "published": Number, // Unix timestamp + "publishedText": String, + + // Only available on premiered videos + "premiereTimestamp": Number, // Unix timestamp + + "liveNow": Boolean, + "premium": Boolean, + "isUpcoming": Boolean +} +``` + + +### ChannelObject + +```javascript +{ + "type": "channel", // Constant + + "author": String, + "authorId": String, + "authorUrl": String, + "authorVerified": Boolean, + "authorThumbnails": [ + // One or more ThumbnailObject + ], + + "autoGenerated": Boolean, + "subCount": Number, // Integer + "videoCount": Number, // Integer + + "description": String, + "descriptionHtml": String, +} +``` + + +### PlaylistOject + +```javascript +{ + "type": "playlist", // Constant + + "title": String, + "playlistId": String, + "playlistThumbnail": String, + + "author": String, + "authorId": String, + "authorUrl": String, + "authorVerified": Boolean, + + "videoCount": Number, // Integer + "videos": [ + { + "title": String, + "videoId": String, + "lengthSeconds": Number, // Integer + "videoThumbnails": [ + // One or more ThumbnailObject + ] + } + ] +} +``` diff --git a/docs/index.md b/docs/index.md index db5560b..eba1d3c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,4 +22,6 @@ ## For Developers - [API](./api.md) -- [Authenticated Endpoints](./authenticated-endpoints.md) + * [Common object types used across the API](./api/common_types.md) + * ["Channels" endpoint](./api/channels_endpoint.md) + * [Authenticated Endpoints](./api/authenticated-endpoints.md) diff --git a/mkdocs.yml b/mkdocs.yml index 6bd7587..90a93f5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -31,7 +31,9 @@ nav: - 'takedown.md' - 'For Developers': - 'api.md' - - 'authenticated-endpoints.md' + - 'api/common_types.md' + - 'api/channels_endpoint.md' + - 'api/authenticated-endpoints.md' theme: name: material @@ -44,6 +46,7 @@ theme: - navigation.tracking # https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-tracking - navigation.expand # https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-expansion - navigation.top # https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#back-to-top-button + - content.code.copy # https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-copy-button extra: social: @@ -52,3 +55,8 @@ extra: markdown_extensions: - pymdownx.magiclink + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences From 0c97b2e7bbd7e796870be9d71c8b6d733d000144 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Sun, 5 Feb 2023 08:01:30 -0500 Subject: [PATCH 047/156] Update search api docs (#338) --- docs/api.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/api.md b/docs/api.md index d0406bb..12f3beb 100644 --- a/docs/api.md +++ b/docs/api.md @@ -550,9 +550,11 @@ q: String type: "playlist", title: String, playlistId: String, + playlistThumbnail: String, author: String, authorId: String, authorUrl: String, + authorVerified: Boolean, videoCount: Int32, videos: [ @@ -584,6 +586,7 @@ q: String height: Int32 } ], + autoGenerated: Bool subCount: Int32, videoCount: Int32, description: String, @@ -599,9 +602,9 @@ q: String page: Int32 sort_by: "relevance", "rating", "upload_date", "view_count" date: "hour", "today", "week", "month", "year" -duration: "short", "long" -type: "video", "playlist", "channel", "all", (default: video) -features: "hd", "subtitles", "creative_commons", "3d", "live", "purchased", "4k", "360", "location", "hdr" (comma separated: e.g. "&features=hd,subtitles,3d,live") +duration: "short", "long", "medium" +type: "video", "playlist", "channel", "movie", "show", "all", (default: all) +features: "hd", "subtitles", "creative_commons", "3d", "live", "purchased", "4k", "360", "location", "hdr", "vr180" (comma separated: e.g. "&features=hd,subtitles,3d,live") region: ISO 3166 country code (default: "US") ``` From a1711ac3495fa09c8e5d86d8403fe603d26fc403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Thu, 9 Feb 2023 16:30:35 +0100 Subject: [PATCH 048/156] Remove vid.priv.au until owner find a new host --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index f5047d6..a09c692 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,8 +54,6 @@ * [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 (Uses cloudflare) -* [vid.priv.au](https://vid.priv.au) 🇸🇬 - * [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 * [invidious.silur.me](https://invidious.silur.me) 🇩🇪 From b1c4057ad41199563e6c8890cdfe81354aa9b32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Thu, 9 Feb 2023 16:33:11 +0100 Subject: [PATCH 049/156] remove invidious.drivet.xyz bad uptime --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index a09c692..19bf348 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,8 +52,6 @@ * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 -* [invidious.drivet.xyz](https://invidious.drivet.xyz) 🇵🇱 (Uses cloudflare) - * [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 * [invidious.silur.me](https://invidious.silur.me) 🇩🇪 From e4fafd653722b484715cd8b1430f9b4051c9c454 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Thu, 9 Feb 2023 21:24:24 +0100 Subject: [PATCH 050/156] Remove myself from the assignees (#343) --- .github/ISSUE_TEMPLATE/new_instance.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/new_instance.yaml b/.github/ISSUE_TEMPLATE/new_instance.yaml index c0fa887..374c14c 100644 --- a/.github/ISSUE_TEMPLATE/new_instance.yaml +++ b/.github/ISSUE_TEMPLATE/new_instance.yaml @@ -4,7 +4,6 @@ title: "[New instance] " assignees: - unixfox - samantazfox - - thefrenchghosty body: - type: input From e057224be76656af92425f382f0c95d2ff50e8bc Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Fri, 10 Feb 2023 22:49:20 +0000 Subject: [PATCH 051/156] Api docs update (#344) * API: Add "authorVerified" to VideoObject and /channel/id endpoint * API: Add "tabs" field to main channel endpoint --- docs/api/channels_endpoint.md | 5 ++++- docs/api/common_types.md | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md index df977c1..e90ce4d 100644 --- a/docs/api/channels_endpoint.md +++ b/docs/api/channels_endpoint.md @@ -13,6 +13,7 @@ details on the various JSON objects used below. "author": String, "authorId": String, "authorUrl": String, + "authorVerified": Boolean, "authorBanners": [ // One or more ImageObject ], @@ -29,7 +30,9 @@ details on the various JSON objects used below. "description": String, "descriptionHtml": String, - "allowedRegions": [String], + "allowedRegions": String[], + + "tabs": String[], "latestVideos": [ // One or more VideoObject diff --git a/docs/api/common_types.md b/docs/api/common_types.md index e2458ec..9a896f0 100644 --- a/docs/api/common_types.md +++ b/docs/api/common_types.md @@ -36,6 +36,7 @@ "author": String, "authorId": String, "authorUrl": String, + "authorVerified": Boolean, "videoThumbnails": [ // One or more ThumbnailObject From 9776fb40a4f171371652c455c4b706b4560756ab Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Fri, 10 Feb 2023 23:54:30 +0100 Subject: [PATCH 052/156] Minor indentation fix --- docs/api/channels_endpoint.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md index e90ce4d..4868f61 100644 --- a/docs/api/channels_endpoint.md +++ b/docs/api/channels_endpoint.md @@ -25,11 +25,11 @@ details on the various JSON objects used below. "totalViews": Number, // Integer "joined": Number, // Unix timestamp - "autoGenerated": Boolean, - "isFamilyFriendly": Boolean, + "autoGenerated": Boolean, + "isFamilyFriendly": Boolean, - "description": String, - "descriptionHtml": String, + "description": String, + "descriptionHtml": String, "allowedRegions": String[], "tabs": String[], From 0df9f25a889d0f6ce672e15cf8245c059c1db0e0 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Sat, 11 Feb 2023 19:21:24 +0100 Subject: [PATCH 053/156] API: Add "isPinned" to comments endpoint (follow-up to #344) --- docs/api.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index 12f3beb..9681c69 100644 --- a/docs/api.md +++ b/docs/api.md @@ -187,7 +187,10 @@ Returns annotation XML from YouTube's `/annotations_invideo` endpoint. Alternati ], "authorId": String, "authorUrl": String, - "isEdited": Bool, + + "isEdited": Boolean, + "isPinned": Boolean, + "content": String, "contentHtml": String, "published": Int64, From 658df467b8a5f1bbadb8dcb2a5be48789115e895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 12 Feb 2023 16:58:20 +0000 Subject: [PATCH 054/156] remove invidious.dhusch.de due to takedown see https://github.com/iv-org/documentation/issues/346 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 19bf348..3389f6c 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -40,8 +40,6 @@ * [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 -* [invidious.dhusch.de](https://invidious.dhusch.de) 🇩🇪 - * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 From 0a749b1684a17d3a9d5ce20b24507c88ff95549c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Fri, 17 Feb 2023 08:05:49 +0000 Subject: [PATCH 055/156] add invidious.lunar.icu closes #321 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 3389f6c..1987206 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -64,6 +64,8 @@ * [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) +* [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From b8fb87a1469a41f4b226b68a874512e3393b5a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Fri, 17 Feb 2023 11:01:59 +0000 Subject: [PATCH 056/156] Add comment about matrix room --- .github/ISSUE_TEMPLATE/new_instance.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/new_instance.yaml b/.github/ISSUE_TEMPLATE/new_instance.yaml index 374c14c..f51f5eb 100644 --- a/.github/ISSUE_TEMPLATE/new_instance.yaml +++ b/.github/ISSUE_TEMPLATE/new_instance.yaml @@ -6,6 +6,13 @@ assignees: - samantazfox body: + - type: markdown + attributes: + value: | + Please consider joining our Matrix room for public instance maintainers by joining our Matrix room: https://matrix.to/#/#invidious:matrix.org + then pinging @unixfox, @TheFrenchGhosty and @SamantazFox for asking to be invited to the Matrix room. + We discuss troubles managing a public instance, sharing some advices and more. + - type: input id: url attributes: From 9323bee1dac649995b6684ead90d633a66dcb947 Mon Sep 17 00:00:00 2001 From: Brahim Hadriche Date: Fri, 17 Feb 2023 12:07:49 -0500 Subject: [PATCH 057/156] Add Playlet to the list applications (#347) --- docs/applications.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/applications.md b/docs/applications.md index b84ffd1..2cd0305 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -24,6 +24,7 @@ - [FreshRSS Extension](https://github.com/tmiland/freshrss-invidious): A FreshRSS extension to directly embed videos from Invidious channel feeds. - [Kodi add-on](https://github.com/TheAssassin/kodi-invidious-plugin): Watch YouTube videos in the Kodi media center, using the Invidious API. Privacy-friendly alternative to the YouTube API add-on. - [Another Kodi add-on](https://github.com/lekma/plugin.video.invidious): Seems to have been more recently updated than the above. +- [Playlet](https://github.com/iBicha/playlet): A Roku TV Youtube app that uses Invidious as a backend. [Roku Store](https://my.roku.com/account/add?channel=PLAYLET) ### Utilities for Invidious - [Invidious-Updater (And Installer)](https://github.com/tmiland/Invidious-Updater): Automatic install and update script for Invidious. From fa8610156a8c06e73ba2190e8d8aa7e2ff0ec1b3 Mon Sep 17 00:00:00 2001 From: Emilien Devos Date: Fri, 17 Feb 2023 22:48:04 +0100 Subject: [PATCH 058/156] add tutorial on how to hide public instance --- docs/hide-instance-behind-proxy-server.md | 233 ++++++++++++++++++++++ mkdocs.yml | 2 + 2 files changed, 235 insertions(+) create mode 100644 docs/hide-instance-behind-proxy-server.md diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md new file mode 100644 index 0000000..9eb2e9f --- /dev/null +++ b/docs/hide-instance-behind-proxy-server.md @@ -0,0 +1,233 @@ +# Hide Invidious instance behind proxy server (for escaping DMCA requests) + +## Synopsis + +This tutorial will explain how to hide your Invidious (public) instance behind another server, useful for escaping the DMCA requests. + +This proxy server will only redirect the [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) connections, allowing you to keep everything from your existing infrastructure. + +??? note "It's possible to do it by forwarding the HTTP connections directly but..." + + By forwarding the actual HTTP protocol this is more compute intensive and won't be covered in this tutorial. + + You need to proxy the HTTP protocol normally like you would already do with your current web server for invidious. But in this case from the proxy server to your existing infrastructure. Then also setup the certificates for HTTPS. + + Then you optionally preserve the IP address of your clients using for example on NGINX set_real_ip_from and real_ip_header. + +## Requirements +- Your main web server should support the proxy protocol, it's possible to do it without it (later on in the tutorial). Non-exhaustive list of web servers that support it: + + * NGINX (recommended web server for this tutorial) + * Traefik + * Apache ([doesn't come in the official version](https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-in-apache-web-server)) + * Caddy ([need to build with a custom module](https://github.com/mastercactapus/caddy2-proxyprotocol)) + +- You will have to spend a bit more money per month for renting this new proxy server. + +## Instructions + +### 1) Renting your proxy server + +There are a lot of providers that don't care about DMCA requests, you can find them by doing a search on your favorite search engine. +Here are some lists compiled from lowendtalk users: + +- https://lowendtalk.com/discussion/182615/are-there-any-active-dmca-free-vps-offers-from-top-providers ([webarchive link](https://web.archive.org/web/20221206182503/https://lowendtalk.com/discussion/182615/are-there-any-active-dmca-free-vps-offers-from-top-providers)) +- https://lowendtalk.com/discussion/181443/options-for-dmca-free-vps ([webarchive link](https://web.archive.org/web/20221007000624/https://lowendtalk.com/discussion/181443/options-for-dmca-free-vps)) +- https://lowendtalk.com/discussion/179472/what-are-my-options-for-a-dmca-free-vps ([webarchive link](https://web.archive.org/web/20230217184607/https://lowendtalk.com/discussion/179472/what-are-my-options-for-a-dmca-free-vps)) + +I've personally chosen [BuyVM](https://buyvm.net) as it is close to my existing infrastructure and it is cheap, but please try to at least find another one, it's much better for the diversity, it's just a notice about which provider I did choose. + +Here are the recommended requirements for this proxy server: + +- At least 256MB of RAM in total if you are running Debian or 512MB with Ubuntu. +- The **outgoing** bandwidth limit/quota should be the same as the **outgoing** bandwidth consumption of your existing server that run Invidious. + Later in the tutorial I'll explain you how to reduce the bandwidth consumption on the proxy server but this won't drastically reduce it by a lot. + TLDR. If you have "unlimited" bandwidth limit it's much better. +- 1 CPU core. + +??? note "You can monitor the bandwidth usage of your servers using vnStat." + + Documentation: https://wiki.archlinux.org/title/vnStat + Column `rx`: receive or incoming bandwidth + Column `tx`: Transfer or outgoing bandwidth + + 1. Install vnStat from your package manager, example on debian/ubuntu: `apt install vnstat` + 2. Start vnStat: `systemctl enable --now vnstat` + 3. In a few hours execute the command `vnstat` + +If you run into performance issue on the proxy server, feel free to switch to a new provider. + +And if you need help in choosing the ideal server, please seek for help on our [Matrix room](https://matrix.to/#/#invidious:matrix.org) or [IRC channel](https://web.libera.chat/?channel=#invidious). + +### 2) Listen to new ports on your web server of your existing infrastructure + +**On the web server of your existing infrastructure/server** that currently host your Invidious, listen on another port with the proxy protocol enabled for the HTTPS/TLS port. + +In this tutorial I'll use the port 8443, but you can choose any port you would want. +You don't need to setup a new port for the HTTP (cleartext) port as the proxy protocol is only for preserving the IP address of the clients that will connect your web server and nowadays all the requests are permanently redirected to HTTPS. + +??? note "If you don't want to preserve the IP address of the users of your instance." + + Meaning keeping your instance truly 100% anonymous, then you don't need to enable the proxy protocol on another port, you can keep your current configuration without touching anything and jump to the 3rd step. + + But preserving the IP address is in my opinion essential for blocking bots, bad actors. + +#### NGINX + +In the NGINX configuration file for Invidious, just after the line `listen 443 ssl` add this line: +``` +listen 8443 ssl proxy_protocol; +set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; +real_ip_header proxy_protocol; +``` + +Very simple example of a final result: +``` +http { + server { + listen 443 ssl; + listen 8443 ssl proxy_protocol; + set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; + real_ip_header proxy_protocol; + } +} +``` + +Note: You don't necessarily need to add `http2` parameter to this line if you are going to follow the 4th step. + +#### Traefik + +CLI parameters, adapt to your platform (docker compose, kubernetes or local traefik): +``` +--entryPoints.websecure.address=:8443 +--entryPoints.websecure.proxyProtocol.trustedIPs=PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32 +``` + +Please see the documentation: https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol + +For people on Kubernetes, this may help you: https://github.com/traefik/traefik-helm-chart/issues/404 + +#### Caddy + +(Not tested) On caddy it is not possible to listen on a port that support proxy protocol and another port without the proxy protocol, thus you won't be able to follow the step 4. +Or you can follow the step 4 but you need to not use the proxy protocol (not touching your configuration), thus losing the ability to preserve the IP address of the clients. + +1. Compile caddy with this module: https://github.com/mastercactapus/caddy2-proxyprotocol +2. Enable the proxy protocol like so: https://github.com/mastercactapus/caddy2-proxyprotocol#caddyfile + +#### Apache + +Apache is not the ideal web server for using proxy protocol because it's still in alpha stage and you need to compile apache using an external module like explained here: https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-in-apache-web-server + +Either you do that or you don't preserve the IP address of the clients by not touching your configuration but I can't help you more. + +#### Other web servers + +I won't cover all the possible web servers, look at the documentation of your web server and make it listen on port 8443 (or another port) with the proxy protocol enabled on it. Also try to find a way to preserve the IP address if needed. + +You can also not touch anything about your web server configuration and follow the note in the 3rd step. + +### 3) Install HAProxy on the proxy server + +**On the proxy server that you just rented.** + +1. Install haproxy from your package manager, on debian/ubuntu: `apt install haproxy`. +2. Edit the file `/etc/haproxy/haproxy.cfg` and replace it with this configuration: + + ``` + global + log /dev/null local0 info alert + log /dev/null local1 notice alert + chroot /var/lib/haproxy + stats socket /run/haproxy/admin.sock mode 660 level admin + stats timeout 30s + user haproxy + group haproxy + daemon + + defaults + log global + mode http + + frontend https + bind :::443 v4v6 + mode tcp + use_backend https + + backend https + balance roundrobin + mode tcp + server server1 PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER:8443 check send-proxy + + frontend http + bind :::80 v4v6 + mode tcp + use_backend http + + backend http + balance roundrobin + mode tcp + server server1 PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER:80 check + ``` + + **If you didn't enable the proxy protocol on your server** then remove `send-proxy` for the backend `https` and replace the port `8443` with `443`. + + In case you have more servers, add the other servers after the two lines `server server1` with their corresponding IP addresses. + + For caddy if you have enabled the proxy protocol you need to also add `send-proxy` for the backend `http`. + +4. Restart HAProxy using `systemctl restart haproxy`. + +5. Test if your setup is working by either temporarily update your local Hosts file to the IP address of your proxy server. + Or you can use curl for that: + ``` + curl https://yourdomain.com/ --resolve yourdomain.com:443:PUBLIC_IPV4_ADDRESS_OF_PROXY_SERVER + ``` + +6. If everything works well, you can now update the DNS entries of the domain for your Invidious instance to the IPv4 (and IPv6) address of your proxy server. + +### 4) Optionally reduce the traffic going through the proxy server + +There is a technique in the HTTP protocol that allow to redirect a client (e.g. a browser) to another server, it's the Alt-Svc header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc. + +Unfortunately it only works for Firefox browsers as Chrome doesn't support the ability to use a different domain on HTTP2 with Alt-Svc but it does support it for HTTP3 which you can later on enable too with Alt-Svc. + +*I'll use the terminology `original server(s)` for the server(s) of your existing infrastructure, not the proxy server.* + +#### Requirement +You need to have HTTP2 enabled on your web server, on NGINX it's as simple as adding `http2` in the `listen ssl` line. +You can check that in your config or here: https://tools.keycdn.com/http2-test + +#### Instructions + +1. Go to your instance and press F12 for the dev tools, then go to the "Network" tab and click on the latest request. + Then check in `Remote Address` (Chrome) or `Address` (Firefox you need to click on `>`) if you see the IP address of your proxy server. +2. Add a new DNS record for the IPv4 (and IPv6) of your original server(s) to a subdomain, like `original.yourdomain.com`. +3. In your existing web server add this new HTTP header: + ``` + alt-svc: h2="original.yourdomain.com:443"; ma=86400 + ``` + Here is how to do it for: + - NGINX: `add_header alt-svc 'h2="original.yourdomain.com:443"; ma=86400';` + - Traefik (or [read the doc](https://doc.traefik.io/traefik/middlewares/http/headers/)): `traefik.http.middlewares.altsvc.headers.customresponseheaders.alt-svc=h2="original.yourdomain.com:443"; ma=86400` + - Caddy: `header alt-svc h2="original.yourdomain.com:443"; ma=86400` + - Apache: `Header set alt-svc 'h2="original.yourdomain.com:443"; ma=86400'` +4. Restart your web server +5. Go to your instance and press F12 for the dev tools, then go to the "Network" tab and click on the latest request. + Then check in `Remote Address` (Chrome) or `Address` (Firefox you need to click on `>`) if you see the IP address of your original server(s). + You may need to refresh the page. + + +#### Bonus point if you have HTTP3 on your web server + +Different web servers that support HTTP3: + +- Traefik, you can enable HTTP3: https://doc.traefik.io/traefik/routing/entrypoints/#http3 +- NGINX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ +- Caddy, it's already enabled by default + +1. Edit the previously added HTTP header by adapting it like this: + ``` + alt-svc: h3="original.yourdomain.com:443"; ma=86400, h2="original.yourdomain.com:443"; ma=86400 + ``` +2. Restart your web server. Check in the dev tools if you still see the IP address of your original server(s) and the HTTP3 protocol should be also displayed. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 90a93f5..e0d6e67 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -29,6 +29,7 @@ nav: - 'captcha-bug.md' - 'anti-captcha.md' - 'takedown.md' + - 'hide-instance-behind-proxy-server.md' - 'For Developers': - 'api.md' - 'api/common_types.md' @@ -60,3 +61,4 @@ markdown_extensions: - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences + - pymdownx.details # https://facelessuser.github.io/pymdown-extensions/extensions/details/ \ No newline at end of file From c0957fabd499493e865ba7f44fe3065ca5b08b0e Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Fri, 17 Feb 2023 23:08:24 +0100 Subject: [PATCH 059/156] Various fixes and enhancements --- docs/hide-instance-behind-proxy-server.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index 9eb2e9f..1d7de6b 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -1,5 +1,7 @@ # Hide Invidious instance behind proxy server (for escaping DMCA requests) +This tutorial has been writen by [unixfox](https://github.com/unixfox), owner of [yewtu.be](https://yewtu.be/) + ## Synopsis This tutorial will explain how to hide your Invidious (public) instance behind another server, useful for escaping the DMCA requests. @@ -12,12 +14,13 @@ This proxy server will only redirect the [TCP](https://en.wikipedia.org/wiki/Tra You need to proxy the HTTP protocol normally like you would already do with your current web server for invidious. But in this case from the proxy server to your existing infrastructure. Then also setup the certificates for HTTPS. - Then you optionally preserve the IP address of your clients using for example on NGINX set_real_ip_from and real_ip_header. + Then you optionally preserve the IP address of your clients using for example on NginX set_real_ip_from and real_ip_header. ## Requirements + - Your main web server should support the proxy protocol, it's possible to do it without it (later on in the tutorial). Non-exhaustive list of web servers that support it: - * NGINX (recommended web server for this tutorial) + * NginX (recommended web server for this tutorial) * Traefik * Apache ([doesn't come in the official version](https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-in-apache-web-server)) * Caddy ([need to build with a custom module](https://github.com/mastercactapus/caddy2-proxyprotocol)) @@ -35,14 +38,14 @@ Here are some lists compiled from lowendtalk users: - https://lowendtalk.com/discussion/181443/options-for-dmca-free-vps ([webarchive link](https://web.archive.org/web/20221007000624/https://lowendtalk.com/discussion/181443/options-for-dmca-free-vps)) - https://lowendtalk.com/discussion/179472/what-are-my-options-for-a-dmca-free-vps ([webarchive link](https://web.archive.org/web/20230217184607/https://lowendtalk.com/discussion/179472/what-are-my-options-for-a-dmca-free-vps)) -I've personally chosen [BuyVM](https://buyvm.net) as it is close to my existing infrastructure and it is cheap, but please try to at least find another one, it's much better for the diversity, it's just a notice about which provider I did choose. +I personally chose [BuyVM](https://buyvm.net) as it's close to my existing infrastructure and it's cheap, but please try to at least find another one, it's much better to avoid the centralisation. Here are the recommended requirements for this proxy server: - At least 256MB of RAM in total if you are running Debian or 512MB with Ubuntu. - The **outgoing** bandwidth limit/quota should be the same as the **outgoing** bandwidth consumption of your existing server that run Invidious. Later in the tutorial I'll explain you how to reduce the bandwidth consumption on the proxy server but this won't drastically reduce it by a lot. - TLDR. If you have "unlimited" bandwidth limit it's much better. + TL;DR: If you have "unlimited" bandwidth limit it's much better. - 1 CPU core. ??? note "You can monitor the bandwidth usage of your servers using vnStat." @@ -72,9 +75,9 @@ You don't need to setup a new port for the HTTP (cleartext) port as the proxy pr But preserving the IP address is in my opinion essential for blocking bots, bad actors. -#### NGINX +#### NginX -In the NGINX configuration file for Invidious, just after the line `listen 443 ssl` add this line: +In the NginX configuration file for Invidious, just after the line `listen 443 ssl` add this line: ``` listen 8443 ssl proxy_protocol; set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; @@ -195,7 +198,7 @@ Unfortunately it only works for Firefox browsers as Chrome doesn't support the a *I'll use the terminology `original server(s)` for the server(s) of your existing infrastructure, not the proxy server.* #### Requirement -You need to have HTTP2 enabled on your web server, on NGINX it's as simple as adding `http2` in the `listen ssl` line. +You need to have HTTP2 enabled on your web server, on NginX it's as simple as adding `http2` in the `listen ssl` line. You can check that in your config or here: https://tools.keycdn.com/http2-test #### Instructions @@ -208,7 +211,7 @@ You can check that in your config or here: https://tools.keycdn.com/http2-test alt-svc: h2="original.yourdomain.com:443"; ma=86400 ``` Here is how to do it for: - - NGINX: `add_header alt-svc 'h2="original.yourdomain.com:443"; ma=86400';` + - NginX: `add_header alt-svc 'h2="original.yourdomain.com:443"; ma=86400';` - Traefik (or [read the doc](https://doc.traefik.io/traefik/middlewares/http/headers/)): `traefik.http.middlewares.altsvc.headers.customresponseheaders.alt-svc=h2="original.yourdomain.com:443"; ma=86400` - Caddy: `header alt-svc h2="original.yourdomain.com:443"; ma=86400` - Apache: `Header set alt-svc 'h2="original.yourdomain.com:443"; ma=86400'` @@ -223,7 +226,7 @@ You can check that in your config or here: https://tools.keycdn.com/http2-test Different web servers that support HTTP3: - Traefik, you can enable HTTP3: https://doc.traefik.io/traefik/routing/entrypoints/#http3 -- NGINX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ +- NginX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ - Caddy, it's already enabled by default 1. Edit the previously added HTTP header by adapting it like this: From c7e49db0f50334283691da7a73c5a3006b5f6431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 19 Feb 2023 16:24:43 +0100 Subject: [PATCH 060/156] Remove slipfox instance until it is up again --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 1987206..d51dfe9 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -36,8 +36,6 @@ * [inv.vern.cc](https://inv.vern.cc) 🇺🇸 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious -* [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 - * [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 From 6ee6aad9cd294c66db2abb48dead684cb6fb5802 Mon Sep 17 00:00:00 2001 From: namazso Date: Sun, 19 Feb 2023 20:42:13 +0100 Subject: [PATCH 061/156] Remove invidious.namazso.eu (#354) --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index d51dfe9..91ded1d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -16,8 +16,6 @@ * [vid.puffyan.us](https://vid.puffyan.us) 🇺🇸 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3?style=plastic)](https://stats.uptimerobot.com/n7A08HGVl6/786947233) -* [invidious.namazso.eu](https://invidious.namazso.eu) 🇩🇪 - * [inv.riverside.rocks](https://inv.riverside.rocks) 🇺🇸 * [yt.artemislena.eu](https://yt.artemislena.eu) 🇩🇪 From 626fee1c64027d517d6ce93a05d11be53997ab72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Mon, 20 Feb 2023 11:31:41 +0000 Subject: [PATCH 062/156] Better wording + info about http2 --- docs/hide-instance-behind-proxy-server.md | 26 ++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index 1d7de6b..f310dd8 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -14,13 +14,13 @@ This proxy server will only redirect the [TCP](https://en.wikipedia.org/wiki/Tra You need to proxy the HTTP protocol normally like you would already do with your current web server for invidious. But in this case from the proxy server to your existing infrastructure. Then also setup the certificates for HTTPS. - Then you optionally preserve the IP address of your clients using for example on NginX set_real_ip_from and real_ip_header. + Then you optionally preserve the IP address of your clients using for example on NGINX set_real_ip_from and real_ip_header. ## Requirements - Your main web server should support the proxy protocol, it's possible to do it without it (later on in the tutorial). Non-exhaustive list of web servers that support it: - * NginX (recommended web server for this tutorial) + * NGINX (recommended web server for this tutorial) * Traefik * Apache ([doesn't come in the official version](https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-in-apache-web-server)) * Caddy ([need to build with a custom module](https://github.com/mastercactapus/caddy2-proxyprotocol)) @@ -75,11 +75,11 @@ You don't need to setup a new port for the HTTP (cleartext) port as the proxy pr But preserving the IP address is in my opinion essential for blocking bots, bad actors. -#### NginX +#### NGINX -In the NginX configuration file for Invidious, just after the line `listen 443 ssl` add this line: +In the NGINX configuration file for Invidious, just after the line `listen 443 ssl http2` add this line: ``` -listen 8443 ssl proxy_protocol; +listen 8443 ssl http2 proxy_protocol; set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; real_ip_header proxy_protocol; ``` @@ -88,15 +88,17 @@ Very simple example of a final result: ``` http { server { - listen 443 ssl; - listen 8443 ssl proxy_protocol; + listen 443 ssl http2; + listen 8443 ssl http2 proxy_protocol; set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; real_ip_header proxy_protocol; } } ``` -Note: You don't necessarily need to add `http2` parameter to this line if you are going to follow the 4th step. +Note: You may not have `http2` parameter for the `listen 443 ssl` line, if you don't have it enabled, it's hugely recommended to enable it for better performance and user experience. + +**If you are going to follow the [4th step](#4-optionally-reduce-the-traffic-going-through-the-proxy-server), please remove `http2` parameter from the line `listen 8443 ssl http2 proxy_protocol`, it may clash with the technique.** #### Traefik @@ -198,7 +200,7 @@ Unfortunately it only works for Firefox browsers as Chrome doesn't support the a *I'll use the terminology `original server(s)` for the server(s) of your existing infrastructure, not the proxy server.* #### Requirement -You need to have HTTP2 enabled on your web server, on NginX it's as simple as adding `http2` in the `listen ssl` line. +You need to have HTTP2 enabled on your web server, on NGINX it's as simple as adding `http2` in the `listen ssl` line. You can check that in your config or here: https://tools.keycdn.com/http2-test #### Instructions @@ -211,7 +213,7 @@ You can check that in your config or here: https://tools.keycdn.com/http2-test alt-svc: h2="original.yourdomain.com:443"; ma=86400 ``` Here is how to do it for: - - NginX: `add_header alt-svc 'h2="original.yourdomain.com:443"; ma=86400';` + - NGINX: `add_header alt-svc 'h2="original.yourdomain.com:443"; ma=86400';` - Traefik (or [read the doc](https://doc.traefik.io/traefik/middlewares/http/headers/)): `traefik.http.middlewares.altsvc.headers.customresponseheaders.alt-svc=h2="original.yourdomain.com:443"; ma=86400` - Caddy: `header alt-svc h2="original.yourdomain.com:443"; ma=86400` - Apache: `Header set alt-svc 'h2="original.yourdomain.com:443"; ma=86400'` @@ -226,11 +228,11 @@ You can check that in your config or here: https://tools.keycdn.com/http2-test Different web servers that support HTTP3: - Traefik, you can enable HTTP3: https://doc.traefik.io/traefik/routing/entrypoints/#http3 -- NginX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ +- NGINX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ - Caddy, it's already enabled by default 1. Edit the previously added HTTP header by adapting it like this: ``` alt-svc: h3="original.yourdomain.com:443"; ma=86400, h2="original.yourdomain.com:443"; ma=86400 ``` -2. Restart your web server. Check in the dev tools if you still see the IP address of your original server(s) and the HTTP3 protocol should be also displayed. \ No newline at end of file +2. Restart your web server. Check in the dev tools if you still see the IP address of your original server(s) and the HTTP3 protocol should be also displayed. From 4fba63ee1a32d594d3a549cb29c1f5dc9cca5016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Mon, 20 Feb 2023 12:53:09 +0000 Subject: [PATCH 063/156] add warning in this tutorial --- docs/hide-instance-behind-proxy-server.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index f310dd8..40e29de 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -16,6 +16,12 @@ This proxy server will only redirect the [TCP](https://en.wikipedia.org/wiki/Tra Then you optionally preserve the IP address of your clients using for example on NGINX set_real_ip_from and real_ip_header. +## Warning + +Adding an extra layer like a proxy server **will** add more latency, thus increase the response time from your final server to your browser. That's why for the part where you are going to rent a proxy server, you should choose a server close to your existing server(s). + +It should be noted, in the 4th step of the instructions, you will be able to remove this latency for a major part of the users of your instance (around 90% - people using modern browsers). The rest will experience this *added* latency which won't result in a decrease of the user experience if you choose your server wisely. + ## Requirements - Your main web server should support the proxy protocol, it's possible to do it without it (later on in the tutorial). Non-exhaustive list of web servers that support it: @@ -47,6 +53,7 @@ Here are the recommended requirements for this proxy server: Later in the tutorial I'll explain you how to reduce the bandwidth consumption on the proxy server but this won't drastically reduce it by a lot. TL;DR: If you have "unlimited" bandwidth limit it's much better. - 1 CPU core. +- The proxy server should be close to your existing server(s), for minimal latency overhead. ??? note "You can monitor the bandwidth usage of your servers using vnStat." From ac052dc67290c199f7909fb0948b5d841851e8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Wed, 22 Feb 2023 11:44:28 +0100 Subject: [PATCH 064/156] Add notice about UDP 443 for http3 --- docs/hide-instance-behind-proxy-server.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index 40e29de..5a0c865 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -238,8 +238,9 @@ Different web servers that support HTTP3: - NGINX, there is a tutorial here: https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ - Caddy, it's already enabled by default -1. Edit the previously added HTTP header by adapting it like this: +1. Whitelist the port UDP 443 in your firewall. +2. Edit the previously added HTTP header by adapting it like this: ``` alt-svc: h3="original.yourdomain.com:443"; ma=86400, h2="original.yourdomain.com:443"; ma=86400 ``` -2. Restart your web server. Check in the dev tools if you still see the IP address of your original server(s) and the HTTP3 protocol should be also displayed. +3. Restart your web server. Check in the dev tools if you still see the IP address of your original server(s) and the HTTP3 protocol should be also displayed. From 60781b36b645461b77787e18ca52c039d2ced2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Wed, 22 Feb 2023 13:39:43 +0100 Subject: [PATCH 065/156] removing invidious.silur.me outdated + broken --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 91ded1d..8bcd641 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -48,8 +48,6 @@ * [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 -* [invidious.silur.me](https://invidious.silur.me) 🇩🇪 - * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 * [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 From 3e4585a4be734b3a1b59698af9a8cae0e68e4bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Mon, 27 Feb 2023 20:00:19 +0100 Subject: [PATCH 066/156] Add notice about the tutorial (#353) --- docs/takedown.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/takedown.md b/docs/takedown.md index 924ad07..8f2e067 100644 --- a/docs/takedown.md +++ b/docs/takedown.md @@ -6,6 +6,8 @@ Do note that most requests are invalid and technically illegal since they aren't To counter them "easily", we decided to provide templates depending on where your instance is located. +Or if you want to hide your instance from takedown requests, you can also follow this tutorial: https://docs.invidious.io/hide-instance-behind-proxy-server/. + ## Template - United States ``` From c04bfffdda73337da682e05e2e01008ca8159cf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Wed, 1 Mar 2023 08:22:24 +0000 Subject: [PATCH 067/156] Add back invidious.slipfox.xyz --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 8bcd641..45a1586 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -34,6 +34,8 @@ * [inv.vern.cc](https://inv.vern.cc) 🇺🇸 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious +* [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 + * [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 From bd2bb6c65201c6acf2ddfbfcb5b5da8385fdcdda Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Sun, 5 Mar 2023 00:30:53 -0800 Subject: [PATCH 068/156] Add Tampermonkey Scripts. (#361) Added the following Tampermonkey Scripts: Simple Sponsor Skipper, Privacy Redirector. --- docs/applications.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/applications.md b/docs/applications.md index 2cd0305..5276d96 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -17,6 +17,8 @@ - [No-Youtube](https://github.com/mperez01/no-youtube): Userscript to replace youtube links to invidio.us. - [Invidious Audio Mode](https://greasyfork.org/en/scripts/397700-invidious-audio-mode): Adds a headphone icon next to all video links. Handy for those that just want to stream audio and not video. - [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player): Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel. +- [Privacy Redirector] (https://github.com/dybdeskarphet/privacy-redirector): Userscript to automatically redirect to different private frontents, including Invidious. Can be configured to redirect to specific instances of the user's choice. +- [Simple Sponsor Skipper] (https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper): Userscript based on Sponsorblock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. ### Extensions that integrate Invidious into other programs and apps - [UntrackMe](https://f-droid.org/en/packages/app.fedilab.nitterizeme): Android app to rewrite YouTube links to Invidious. Can optionally play videos in the app as well. From 78ca0c94c000a997dc3ad9cad197a9e4121ae553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Sun, 5 Mar 2023 09:32:26 +0100 Subject: [PATCH 069/156] Add into about multiple accounts (#332) --- docs/export-youtube-subscriptions.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/export-youtube-subscriptions.md b/docs/export-youtube-subscriptions.md index dcf632c..5757feb 100644 --- a/docs/export-youtube-subscriptions.md +++ b/docs/export-youtube-subscriptions.md @@ -4,10 +4,11 @@ settings.** 1. Open [Google Takeout](https://takeout.google.com/takeout/custom/youtube). -2. Under `Create a new export` choose `YouTube and YouTube Music`. -3. Click on `All YouTube data included` and only tick `subscriptions` in the dialog that opens. -4. Click on `Next step`, make sure `Export once` is chosen and click on `Create export`. -5. Wait until the export creation is finished, then on the same page click on `Download` under +2. Check if you are on the right account, as you might be using a "brand" account on YouTube. +3. Under `Create a new export` choose `YouTube and YouTube Music`. +4. Click on `All YouTube data included` and only tick `subscriptions` in the dialog that opens. +5. Click on `Next step`, make sure `Export once` is chosen and click on `Create export`. +6. Wait until the export creation is finished, then on the same page click on `Download` under `Your latest export` that should now be visible. 6. Extract the downloaded archive and find the file `subscriptions.csv`. 7. While logged into your Invidious account go to Subscriptions -> Manage Subscriptions -> From b813a6264cd376eed08246d391f17bb2c89bbbae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 5 Mar 2023 09:39:32 +0100 Subject: [PATCH 070/156] Add mandatory unlimited traffic limit (#316) * Add mandatory unlimited traffic limit In order to not having a case like this again: https://github.com/Sommerwiesel/invidious/issues/6#issuecomment-1337036938 * Minimum not max --- .github/ISSUE_TEMPLATE/new_instance.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/new_instance.yaml b/.github/ISSUE_TEMPLATE/new_instance.yaml index f51f5eb..a5e0e5c 100644 --- a/.github/ISSUE_TEMPLATE/new_instance.yaml +++ b/.github/ISSUE_TEMPLATE/new_instance.yaml @@ -37,6 +37,8 @@ body: required: true - label: "Instance has an automatic hourly restart setup of Invidious" required: true + - label: "If dash, proxy + download is enabled (default settings), the instance has unlimited traffic/bandwidth or close to unlimited (100TB minimum)" + required: true - type: checkboxes From d29d5111b39e92046e818a76a24b9b2523d869dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20B=C4=85czek?= Date: Sun, 5 Mar 2023 09:42:47 +0100 Subject: [PATCH 071/156] Add Caddy web server reverse proxy documentation (#286) --- docs/caddy.md | 14 ++++++++++++++ docs/index.md | 1 + mkdocs.yml | 1 + 3 files changed, 16 insertions(+) create mode 100644 docs/caddy.md diff --git a/docs/caddy.md b/docs/caddy.md new file mode 100644 index 0000000..a082d7a --- /dev/null +++ b/docs/caddy.md @@ -0,0 +1,14 @@ +# Caddy reverse proxy + +This is a very basic config, assuming that you're using Caddy to manage SSL certificates for you. +Any log is disabled by default. Do not forget to replace `server_name` with your domain. + +``` +https:// { + reverse_proxy localhost:3000 + + log { + output discard + } +} +``` diff --git a/docs/index.md b/docs/index.md index eba1d3c..93c65d4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,6 +15,7 @@ - [Configuration](./configuration.md) - [Apache2 Virtual Host with Reverse Proxy](./apache2.md) - [Nginx Reverse Proxy Configuration](./nginx.md) +- [Caddy Reverse Proxy Configuration](./caddy.md) - [Database Information and Maintenance](./db-maintenance.md) - [Issues with CAPTCHA](./captcha-bug.md) - [How to setup Anti-Captcha](./anti-captcha.md) diff --git a/mkdocs.yml b/mkdocs.yml index e0d6e67..f552c99 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -25,6 +25,7 @@ nav: - 'configuration.md' - 'apache2.md' - 'nginx.md' + - 'caddy.md' - 'db-maintenance.md' - 'captcha-bug.md' - 'anti-captcha.md' From eb26b84773b702545c23127836b1b2305ab591f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 5 Mar 2023 23:27:32 +0100 Subject: [PATCH 072/156] Remove instance epicsite.xyz See https://github.com/iv-org/documentation/issues/308#issuecomment-1454668074 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 45a1586..fa257bb 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,8 +54,6 @@ * [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 -* [invidious.epicsite.xyz](https://invidious.epicsite.xyz) 🇬🇧 - * [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 * [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) From 6df025e0b3d02b4958538d9f953090afdc0212ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Tue, 14 Mar 2023 10:11:07 +0100 Subject: [PATCH 073/156] Add back invidious.projectsegfau.lt --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index fa257bb..fb0e2b3 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,7 +24,7 @@ * [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 -* [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 +* [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 From 0b809dac792b92d956e5168facf0d3502d2923d0 Mon Sep 17 00:00:00 2001 From: Jason Thatcher Date: Thu, 16 Mar 2023 06:00:21 +1000 Subject: [PATCH 074/156] Installation: Remove outdated warning about `$POSTGRES_USER` (#364) The statements are no longer true since the database migrations now reference `current_user` instead of `kemal`. --- docs/installation.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 4b7b0e2..a15b10b 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -95,8 +95,6 @@ volumes: Note: This compose is made for a true "production" setup, where Invidious is behind a reverse proxy. If you prefer to directly access Invidious, replace `127.0.0.1:3000:3000` with `3000:3000` under the `ports:` section. -**The environment variable `POSTGRES_USER` cannot be changed. The SQL config files that run the initial database migrations are hard-coded with the username `kemal`.** - ### Docker-compose method (development) From 410f7d16038ca729b8f44e3810fc9c4da60cf804 Mon Sep 17 00:00:00 2001 From: PrivacyDevel <105459436+PrivacyDevel@users.noreply.github.com> Date: Sat, 18 Mar 2023 09:30:57 +0000 Subject: [PATCH 075/156] Updated location of invidious.privacydev.net (#365) --- docs/instances.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index fb0e2b3..58d65a5 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -44,7 +44,7 @@ * [invidious.weblibre.org](https://invidious.weblibre.org) 🇨🇱 -* [invidious.privacydev.net](https://invidious.privacydev.net) 🇺🇸 +* [invidious.privacydev.net](https://invidious.privacydev.net) 🇳🇱 * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 @@ -85,7 +85,7 @@ * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) -* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇺🇸 (Onion of invidious.privacydev.net) +* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇳🇱 (Onion of invidious.privacydev.net) ### I2P Eepsites: From fc62ef976376918c3e3539860c41e0eece163ee5 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Sun, 19 Mar 2023 09:33:34 -0400 Subject: [PATCH 076/156] add documentation for channel community endpoint (#333) Co-authored-by: Samantaz Fox --- docs/api/channels_endpoint.md | 78 +++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md index 4868f61..642577e 100644 --- a/docs/api/channels_endpoint.md +++ b/docs/api/channels_endpoint.md @@ -125,3 +125,81 @@ See: GET `/api/v1/channels/:id/videos` "continuation": String } ``` + +##### GET `/api/v1/channels/:id/community` + +Please refer to the [Community Post Attachment types](#community-post-attachment-types) below for more details on the attachment JSON objects used below. + +> Url parameters + +* `continuation`: A continuation token to get the next chunk of items. + +> Response: + +```javascript +{ + "authorId": String, + "comments": { + "attachment": ImageAttachment | MultiImageAttachment | VideoAttachment | PollAttachment + "author": String, + "authorIsChannelOwner": Boolean + "authorId": String, + "authorThumbnails": ImageObject[], + "authorUrl": String, + "commentId": String, + "content": String, + "contentHtml": String, + "isEdited": Boolean, + "likeCount": Number, + "published": Number, + "publishedText": String, + "replyCount": Number + }[] +} +``` +###### Community Post Attachment Types +__VideoAttachment__ +See [VideoObject](./common_types.md#videoobject) common type + +__ImageAttachment__ + +```javascript +{ + "type": "image", + "imageThumbnails": ImageObject[] +} +``` + +__MultiImageAttachment__ + +```javascript +{ + "type": "multiImage", + "images": ImageObject[][] +} +``` + +__PollAttachment__ + +```javascript +{ + "type": "poll", + "totalVotes": Number, + "choices": { + "text": String, + "image?": ImageObject[] + }[] + +} +``` + +__Unknown__ + +This usually means that parsing support for the attachment type has not yet been implemented. + +```javascript +{ + "type": "unknown", + "error": String +} +``` From 98b4de3b05f1c231f46190311ca4b2ba75b09560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Mon, 20 Mar 2023 17:33:11 +0000 Subject: [PATCH 077/156] remove invidious.lidarshield.cloud from the list asked in #305 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 58d65a5..9c3a3a3 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -48,8 +48,6 @@ * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 -* [invidious.lidarshield.cloud](https://invidious.lidarshield.cloud) 🇲🇩 - * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 * [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 From ff064ebfea28b8ad059bf62c2b0d5df7a9d09cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Tue, 28 Mar 2023 09:07:57 +0200 Subject: [PATCH 078/156] Fix correct ip address in tutorial --- docs/hide-instance-behind-proxy-server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index 5a0c865..3108cfe 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -87,7 +87,7 @@ You don't need to setup a new port for the HTTP (cleartext) port as the proxy pr In the NGINX configuration file for Invidious, just after the line `listen 443 ssl http2` add this line: ``` listen 8443 ssl http2 proxy_protocol; -set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; +set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_PROXY_SERVER/32; real_ip_header proxy_protocol; ``` @@ -97,7 +97,7 @@ http { server { listen 443 ssl http2; listen 8443 ssl http2 proxy_protocol; - set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32; + set_real_ip_from PUBLIC_IPV4_ADDRESS_OF_PROXY_SERVER/32; real_ip_header proxy_protocol; } } @@ -112,7 +112,7 @@ Note: You may not have `http2` parameter for the `listen 443 ssl` line, if you d CLI parameters, adapt to your platform (docker compose, kubernetes or local traefik): ``` --entryPoints.websecure.address=:8443 ---entryPoints.websecure.proxyProtocol.trustedIPs=PUBLIC_IPV4_ADDRESS_OF_ORIGINAL_SERVER/32 +--entryPoints.websecure.proxyProtocol.trustedIPs=PUBLIC_IPV4_ADDRESS_OF_PROXY_SERVER/32 ``` Please see the documentation: https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol From f3ca638b50ffe7b01d14d1112fd7ec36dcdc6d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 2 Apr 2023 09:20:33 +0000 Subject: [PATCH 079/156] add back vid.priv.au and onions of projectsegfault --- docs/instances.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 9c3a3a3..f1256b0 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -48,6 +48,8 @@ * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 +* [vid.priv.au](https://vid.priv.au) 🇸🇬 + * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 * [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 @@ -69,7 +71,7 @@ * [osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion](http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion) 🇳🇱 (Onion of invidious.hub.ne.kr) -* [u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion](http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion) 🇺🇸 (Onion of inv.riverside.rocks) +* [u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion](http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion) 🇺🇸 (Onion of inv.riverside.rocks) * [euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion](http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion/) 🇩🇪 (Onion of invidious.sethforprivacy.com) @@ -85,6 +87,10 @@ * [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇳🇱 (Onion of invidious.privacydev.net) +* [http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion) 🇫🇷 (Onion of invidious.projectsegfau.lt) + +* [http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion) 🇱🇺 (Onion of inv.bp.projectsegfau.lt) + ### I2P Eepsites: * [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇺🇸 (Eepsite of inv.vern.cc) From 38173bdaa20ff6be77cbdc089e341dfd032d4437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 2 Apr 2023 09:30:53 +0000 Subject: [PATCH 080/156] add i2p site for projectsegfault --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index f1256b0..2176963 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -95,6 +95,10 @@ * [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇺🇸 (Eepsite of inv.vern.cc) +* [http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p](http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p) 🇫🇷 (Eepsite of invidious.projectsegfau.lt) + +* [http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p](http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p) 🇱🇺 (Eepsite of inv.bp.projectsegfau.lt) + ## Rules to have your instance in this list: 1. Instances MUST have been up for at least a month before it can be added to this list. From 6646e539f19edad7e229dbe76a860824afcb858f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 2 Apr 2023 09:32:59 +0000 Subject: [PATCH 081/156] remove instances with bad uptime --- docs/instances.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 2176963..9997209 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -34,16 +34,12 @@ * [inv.vern.cc](https://inv.vern.cc) 🇺🇸 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious -* [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 - * [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 -* [invidious.weblibre.org](https://invidious.weblibre.org) 🇨🇱 - * [invidious.privacydev.net](https://invidious.privacydev.net) 🇳🇱 * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 @@ -56,8 +52,6 @@ * [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 -* [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) - * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) ### Tor Onion Services: @@ -79,8 +73,6 @@ * [inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) 🇺🇸 (Onion of inv.vern.cc) -* [am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion](http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion) 🇺🇸 (Onion of invidious.slipfox.xyz) - * [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) From da5af47a873ad07048173cc2a9c78500e55f879d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Tue, 4 Apr 2023 13:08:31 +0000 Subject: [PATCH 082/156] add multiples instances closes #340 closes #330 closes #352 --- docs/instances.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 9997209..8f54869 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,6 +54,12 @@ * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) +* [invidious.vpsburti.com](https://invidious.vpsburti.com) 🇳🇱 + +* [invidious.0011.lt](https://invidious.0011.lt) 🇱🇹 + +* [inv.zzls.xyz](https://inv.zzls.xyz) 🇨🇱 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 59ed79b67de3daf3ccc020c8ee2fe650bdd5e9b6 Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Tue, 4 Apr 2023 07:54:48 -0700 Subject: [PATCH 083/156] Updated Redirector Setup for clarity and consistency. (#362) * Updated Redirector Setup for clarity and consistency. Updated with clearer language and more consistent formatting. * Correct a rule description --------- Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/redirector-setup.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/docs/redirector-setup.md b/docs/redirector-setup.md index fac551c..27f29a4 100644 --- a/docs/redirector-setup.md +++ b/docs/redirector-setup.md @@ -4,11 +4,13 @@ Redirector is a Browser extension for Firefox and Chromium that can manually be Get Redirector: [Firefox](https://addons.mozilla.org/en-US/firefox/addon/redirector/) — [Chromium-based](https://chrome.google.com/webstore/detail/redirector/ocgpenflpmgnfapjedencafcfakcekcd) — [GitHub](https://github.com/einaregilsson/Redirector) +All of these rules are made with Wildcard Processing. + # How to use it for Invidious Redirects? For basic redirects, you will need the following rules set up. -# Rule 1 +# Rule 1 (Redirect Video URLs) Redirects Youtube Videos to Invidious Redirect: https://*.youtube.com/watch?*v=* @@ -17,13 +19,13 @@ Hint: Redirects individual videos to their Invidious equivelant Example: https://www.youtube.com/watch?v=Lz13cxZNTCo → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo Applies to: Main window (address bar) -# Rule 2 (Note, Rule 2 is for redirecting the youtu.be domain, typically accociated with embeds) +# Rule 2 (Redirects the youtu.be domain, typically accociated with URLs generated by the "Share" button) Redirect: https://youtu.be/* to: https://[Invidious Domain Here]/watch?v=$1 Example: https://youtu.be/Ae5yV4p7uh8?t=35 → https://[Invidious Domain Here]/watch?v=Ae5yV4p7uh8?t=35 -# Rule 3 (Note, Rule 3 is for those who use DDG bangs or search extensions to search YouTube and would like those properly redirected to Invidious) +# Rule 3 (Redirects Search Results, useful for those who use DDG bangs or search extensions to search YouTube and would like those properly redirected to Invidious) Redirect YouTube Search to Invidious Redirect: https://www.youtube.com/results?search_query=*&page @@ -32,7 +34,7 @@ Example: https://www.youtube.com/results?search_query=Smash+Bros+Trailer&page Applies to: Main window (address bar) -# Rule 4 +# Rule 4 (Redirects the YouTube Domain itself, IE: channel pages and the homepage) Redirects Youtube to Invidous Redirect: https://*.youtube.com/* @@ -40,6 +42,7 @@ to: https://[Invidious Domain Here]/$2 Example: https://www.youtube.com/channel/UCOkL7q2SeGZeZuj22njMYEA → https://[Invidious Domain Here]/channel/UCOkL7q2SeGZeZuj22njMYEA Applies to: Main window (address bar) +# How to use it for Invidious URL Parameters? If you would like to use URL Parameters in your redirects (see https://github.com/cloudrac3r/invidious-documentation/blob/master/List-of-URL-parameters.md), you will need to manually add them to Rule 1, (https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] in place of https://[Invidious Domain Here]/watch?v=$1. @@ -47,7 +50,7 @@ For clarity, an example of a URL parameter would be &related_videos=false&commen Should you choose to use URL Parameters, I would reccomend adding the following rule to both ensure all invidious videos load with your preference, and to ensure that unnecesary parameters are not added when already applied. -# Rule 5 +# Rule 5 (Redirects Invidious Video URLs with parameters) Redirects Invidious Videos with URL Parameters Redirect: https://[Invidious Domain Here]/watch?v=* @@ -59,9 +62,11 @@ Applies to: Main window (address bar) It is important that you add the exception so as not to create infinite repeats of the same URL Parameters when opening multiple Invidious Videos in a single session. When creating or editing rules in Redirector you must access "Advanced Options" in order to set exceptions. -For redirecting embeds, you'll need the following two rules. +# How to use it for Redirecting Embeds? -# Rule 6 +For redirecting embeds, you'll need the following two rules. (Note, it is imparative that you check these two roles apply to both the Main Window and IFrames, otherwise the rule won't apply to Embeds). + +# Rule 6 (For redirecting standard embed links) Redirects Embedded Youtube Videos to Invidious Redirect: https://www.youtube.com/embed/* @@ -70,7 +75,7 @@ Hint: Redirects individual videos to their Invidious equivelant Example: https://www.youtube.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo Applies to: Main window (address bar), IFrames -# Rule 7 +# Rule 7 (For redirecting nocookie embeds) Redirects Embedded Youtube Videos to Invidious Redirect: https://www.youtube-nocookie.com/embed/* @@ -79,12 +84,13 @@ Hint: Redirects individual videos to their Invidious equivelant Example: https://www.youtube-nocookie.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo Applies to: Main window (address bar), IFrames -(Note, it is imparative that you check it applies to both the Main Window and IFrames, otherwise the rule won't applied to Embeds). -Finally, if you like to subscribe to channels using RSS feeds, you made add the following two rules to redirect Invidious RSS feeds to their YouTube equivelants. This way you'll still have access to your feeds should you need to migrate to another instance. +# How to use it to redirect Invidious Feeds to YouTube Feeds? -# Rule 8 +Finally, if you like to subscribe to channels using RSS feeds, the following two rules will redirect Invidious RSS feeds to their YouTube equivelants. This way you'll still have access to your feeds should you need to migrate to another instance. + +# Rule 8 (For redirecting channel feeds) Redirect Invidious Feeds to YouTube Feeds Redirect: https://[Invidious Domain Here]/feed/channel/* @@ -93,7 +99,7 @@ Hint: And now you can subscribe in peace. Example: https://[Invidious Domain Here]/feed/channel/UCOkL7q2SeGZeZuj22njMYEA → https://www.youtube.com/feeds/videos.xml?channel_id=UCOkL7q2SeGZeZuj22njMYEA Applies to: Main window (address bar) -#Rule 9 +# Rule 9 (For redirecting playlist feeds) Redirect Playlist RSS from Invidious to YouTube Redirect: https://[Invidious Domain Here]/feed/playlist/* @@ -101,5 +107,5 @@ to: https://www.youtube.com/feeds/videos.xml?playlist_id=$1 Example: https://[Invidious Domain Here]/feed/playlist/PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj → https://www.youtube.com/feeds/videos.xml?playlist_id=PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj Applies to: Main window (address bar) -All of these rules are made with Wildcard Processing. + From 618e0d5f48a8ef26059da4267dd3722bab63e658 Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Tue, 4 Apr 2023 08:00:44 -0700 Subject: [PATCH 084/156] Minor format change and addition of Userscripts (#363) * Minor format change, additon of Libredirect, and addition of Invidious URL Parameters Script. Fixed a minor formatting error from my previous pull requested, added the Firefox/Chromium extension Libredirect, and added my personal Invidious URL Parameter User script. * Removed Libredirect * Shorten Invidious URL Parameters Script link Previous link went to the readme file instead of the project page. * Added Missing Description Workaround Script Added Missing Description Workaround Script (see #3660) * Let's not recommend a "fix" userscript that will be useless when the issue fixed in Invidious --------- Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/applications.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/applications.md b/docs/applications.md index 5276d96..a3314c4 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -17,8 +17,9 @@ - [No-Youtube](https://github.com/mperez01/no-youtube): Userscript to replace youtube links to invidio.us. - [Invidious Audio Mode](https://greasyfork.org/en/scripts/397700-invidious-audio-mode): Adds a headphone icon next to all video links. Handy for those that just want to stream audio and not video. - [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player): Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel. -- [Privacy Redirector] (https://github.com/dybdeskarphet/privacy-redirector): Userscript to automatically redirect to different private frontents, including Invidious. Can be configured to redirect to specific instances of the user's choice. -- [Simple Sponsor Skipper] (https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper): Userscript based on Sponsorblock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. +- [Privacy Redirector](https://github.com/dybdeskarphet/privacy-redirector): Userscript to automatically redirect to different private frontents, including Invidious. Can be configured to redirect to specific instances of the user's choice. +- [Simple Sponsor Skipper](https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper): Userscript based on Sponsorblock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. +- [Invidious URL Parameters](https://github.com/MintMain21/Invidious-URL-Parameters-Userscript) Userscript for appending URL Parameters to video links for selected Invidious Instances. Works in tandum with Privacy Redirector and Simple Sponsor Skipper. See [here](https://docs.invidious.io/url-parameters/) for more information about URL Parameters. ### Extensions that integrate Invidious into other programs and apps - [UntrackMe](https://f-droid.org/en/packages/app.fedilab.nitterizeme): Android app to rewrite YouTube links to Invidious. Can optionally play videos in the app as well. From a847e516b2eff661eb53552536c7230c0e9b0e80 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Tue, 4 Apr 2023 17:04:58 +0200 Subject: [PATCH 085/156] Enhance the README --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fcd9f73..e2f6d9c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # The Invidious documentation -# Running the documentation locally for development purposes +## Running the documentation locally for development purposes -## Local `mkdocs-material` installation +Run those commands in the repository's folder. + +### Local `mkdocs-material` installation ```bash # You might want to create a virtualenv first @@ -10,7 +12,7 @@ pip install mkdocs-material mkdocs-material serve ``` -## With docker +### With docker ```bash docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material:latest From 038036722e377b75200210cb81efc8b341dbc84a Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Fri, 7 Apr 2023 14:27:37 -0700 Subject: [PATCH 086/156] Reformatting Changes to Redirector Documentation (#367) * Minor change to URL Parameter Documentation URL. * Reformated Redirection Rules in plaintext to avoid unintentional tranlation errors into Markdown. * I think I did the formatting right. Also... I added an additional rule for redirecting Invidious URLs that aren't video players, so that it's easier to enforce sitewide preferences like theme and language. --- docs/redirector-setup.md | 98 ++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 50 deletions(-) diff --git a/docs/redirector-setup.md b/docs/redirector-setup.md index 27f29a4..789753e 100644 --- a/docs/redirector-setup.md +++ b/docs/redirector-setup.md @@ -12,76 +12,77 @@ For basic redirects, you will need the following rules set up. # Rule 1 (Redirect Video URLs) -Redirects Youtube Videos to Invidious -Redirect: https://*.youtube.com/watch?*v=* -to: https://[Invidious Domain Here]/watch?$2v=$3 -Hint: Redirects individual videos to their Invidious equivelant -Example: https://www.youtube.com/watch?v=Lz13cxZNTCo → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo -Applies to: Main window (address bar) +Redirect ```https://*youtube.com/watch?*v=*``` + to: ```https://[Invidious Domain Here]/watch?$2v=$3``` + Example: ```https://www.youtube.com/watch?v=Lz13cxZNTCo``` → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo + Applies to: Main window (address bar) # Rule 2 (Redirects the youtu.be domain, typically accociated with URLs generated by the "Share" button) -Redirect: https://youtu.be/* -to: https://[Invidious Domain Here]/watch?v=$1 -Example: https://youtu.be/Ae5yV4p7uh8?t=35 → https://[Invidious Domain Here]/watch?v=Ae5yV4p7uh8?t=35 +Redirect: ```https://youtu.be/*``` +to: ```https://[Invidious Domain Here]/watch?v=$1``` +Example: ```https://youtu.be/Ae5yV4p7uh8?t=35``` → https://[Invidious Domain Here]/watch?v=Ae5yV4p7uh8?t=35 +Applies to: Main window (address bar) # Rule 3 (Redirects Search Results, useful for those who use DDG bangs or search extensions to search YouTube and would like those properly redirected to Invidious) -Redirect YouTube Search to Invidious -Redirect: https://www.youtube.com/results?search_query=*&page -to: https://[Invidious Domain Here]/search?q=$1 -Example: https://www.youtube.com/results?search_query=Smash+Bros+Trailer&page → https://[Invidious Domain Here]/search?q=Smash+Bros+Trailer +Redirect: ```https://www.youtube.com/results?search_query=*&page``` +to: ```https://[Invidious Domain Here]/search?q=$1``` +Example: ```https://www.youtube.com/results?search_query=Smash+Bros+Trailer&page``` → https://[Invidious Domain Here]/search?q=Smash+Bros+Trailer Applies to: Main window (address bar) # Rule 4 (Redirects the YouTube Domain itself, IE: channel pages and the homepage) -Redirects Youtube to Invidous -Redirect: https://*.youtube.com/* -to: https://[Invidious Domain Here]/$2 -Example: https://www.youtube.com/channel/UCOkL7q2SeGZeZuj22njMYEA → https://[Invidious Domain Here]/channel/UCOkL7q2SeGZeZuj22njMYEA +Redirect: ```https://*.youtube.com/*``` +to: ```https://[Invidious Domain Here]/$2``` +Example: ```https://www.youtube.com/channel/UCOkL7q2SeGZeZuj22njMYEA``` → https://[Invidious Domain Here]/channel/UCOkL7q2SeGZeZuj22njMYEA Applies to: Main window (address bar) # How to use it for Invidious URL Parameters? -If you would like to use URL Parameters in your redirects (see https://github.com/cloudrac3r/invidious-documentation/blob/master/List-of-URL-parameters.md), you will need to manually add them to Rule 1, (https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] in place of https://[Invidious Domain Here]/watch?v=$1. +If you would like to use URL Parameters in your redirects (see [here](https://github.com/cloudrac3r/invidious-documentation/blob/master/List-of-URL-parameters.md)), you will need to manually add them to the preceding rules (https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] in place of https://[Invidious Domain Here]/watch?v=$1). -For clarity, an example of a URL parameter would be &related_videos=false&comments=false to ensure that neither related videos nor comments are displayed on a video page, so https://[Invidious Domain Here]/watch?v=$1&related_videos=false&comments=false would be the destination of redirects. +For clarity, an example of a URL parameter would be &related_videos=false&comments=false to ensure that neither related videos nor comments are displayed on a video page, so ```https://[Invidious Domain Here]/watch?v=$1&related_videos=false&comments=false``` would be the destination of redirects. -Should you choose to use URL Parameters, I would reccomend adding the following rule to both ensure all invidious videos load with your preference, and to ensure that unnecesary parameters are not added when already applied. +For redirects with ? in the URL, the Parameter string will start with &, while redirects without ? in the URL should have a Parameter string begining with ?, so https://[Invidious Domain Here]/$2 becomes ```https://[Invidious Domain Here]/$2?related_videos=false&comments=false``` + +Should you choose to use URL Parameters, I would reccomend adding the following rules to both ensure all invidious videos load with your preference, and to ensure that unnecesary parameters are not added when already applied. # Rule 5 (Redirects Invidious Video URLs with parameters) -Redirects Invidious Videos with URL Parameters -Redirect: https://[Invidious Domain Here]/watch?v=* -to: https://[Invidious Domain Here]/watch?v=$1[URL Parameters here] -excluding: https://[Invidious Domain Here]/watch?v=*[URL Parameters here] -Hint: Update this to correlate with the YouTube Video Redirect -Example: https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo[URL Parameters here] +Redirect: ```https://[Invidious Domain Here]/watch?v=*``` +to: ```https://[Invidious Domain Here]/watch?v=$1[URL Parameters here]``` +excluding: ```https://[Invidious Domain Here]/watch?v=*[URL Parameters here]``` +Example: ```https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo``` → https://[Invidious Domain Here]/watch?v=Lz13cxZNTCo[URL Parameters here] Applies to: Main window (address bar) -It is important that you add the exception so as not to create infinite repeats of the same URL Parameters when opening multiple Invidious Videos in a single session. When creating or editing rules in Redirector you must access "Advanced Options" in order to set exceptions. +# Rule 6 (Redirects Invidious Domain URLs with parameters) + +Redirect: ```https://[Invidious Domain Here]/*``` +to: ```https://[Invidious Domain Here]/$1[URL Parameters here]``` +excluding: ```https://[Invidious Domain Here]/*[URL Parameters here]``` +Example: ```https://[Invidious Domain Here]/``` → https://[Invidious Domain Here]/[URL Parameters here] +Applies to: Main window (address bar) + +It is important that you add the exceptions so as not to create infinite repeats of the same URL Parameters when opening multiple Invidious Videos in a single session. When creating or editing rules in Redirector you must access "Advanced Options" in order to set exceptions. # How to use it for Redirecting Embeds? For redirecting embeds, you'll need the following two rules. (Note, it is imparative that you check these two roles apply to both the Main Window and IFrames, otherwise the rule won't apply to Embeds). -# Rule 6 (For redirecting standard embed links) +# Rule 7 (For redirecting standard embed links) -Redirects Embedded Youtube Videos to Invidious -Redirect: https://www.youtube.com/embed/* -to: https://[Invidious Domain Here]/embed/$1 -Hint: Redirects individual videos to their Invidious equivelant -Example: https://www.youtube.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo +Redirect: ```https://www.youtube.com/embed/*``` +to: ```https://[Invidious Domain Here]/embed/$1``` +Example: ```https://www.youtube.com/embed/Lz13cxZNTCo``` → https://[Invidious Domain Here]/embed/Lz13cxZNTCo Applies to: Main window (address bar), IFrames -# Rule 7 (For redirecting nocookie embeds) +# Rule 8 (For redirecting nocookie embeds) -Redirects Embedded Youtube Videos to Invidious -Redirect: https://www.youtube-nocookie.com/embed/* -to: https://[Invidious Domain Here]/embed/$1 -Hint: Redirects individual videos to their Invidious equivelant -Example: https://www.youtube-nocookie.com/embed/Lz13cxZNTCo → https://[Invidious Domain Here]/embed/Lz13cxZNTCo +Redirect: ```https://www.youtube-nocookie.com/embed/*``` +to: ```https://[Invidious Domain Here]/embed/$1``` +Example: ```https://www.youtube-nocookie.com/embed/Lz13cxZNTCo``` → https://[Invidious Domain Here]/embed/Lz13cxZNTCo Applies to: Main window (address bar), IFrames @@ -90,21 +91,18 @@ Applies to: Main window (address bar), IFrames Finally, if you like to subscribe to channels using RSS feeds, the following two rules will redirect Invidious RSS feeds to their YouTube equivelants. This way you'll still have access to your feeds should you need to migrate to another instance. -# Rule 8 (For redirecting channel feeds) +# Rule 9 (For redirecting channel feeds) -Redirect Invidious Feeds to YouTube Feeds -Redirect: https://[Invidious Domain Here]/feed/channel/* -to: https://www.youtube.com/feeds/videos.xml?channel_id=$1 -Hint: And now you can subscribe in peace. -Example: https://[Invidious Domain Here]/feed/channel/UCOkL7q2SeGZeZuj22njMYEA → https://www.youtube.com/feeds/videos.xml?channel_id=UCOkL7q2SeGZeZuj22njMYEA +Redirect: ```https://[Invidious Domain Here]/feed/channel/*``` +to: ```https://www.youtube.com/feeds/videos.xml?channel_id=$1``` +Example: ```https://[Invidious Domain Here]/feed/channel/UCOkL7q2SeGZeZuj22njMYEA``` → https://www.youtube.com/feeds/videos.xml?channel_id=UCOkL7q2SeGZeZuj22njMYEA Applies to: Main window (address bar) -# Rule 9 (For redirecting playlist feeds) +# Rule 10 (For redirecting playlist feeds) -Redirect Playlist RSS from Invidious to YouTube -Redirect: https://[Invidious Domain Here]/feed/playlist/* -to: https://www.youtube.com/feeds/videos.xml?playlist_id=$1 -Example: https://[Invidious Domain Here]/feed/playlist/PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj → https://www.youtube.com/feeds/videos.xml?playlist_id=PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj +Redirect: ```https://[Invidious Domain Here]/feed/playlist/*``` +to: ```https://www.youtube.com/feeds/videos.xml?playlist_id=$1``` +Example: ```https://[Invidious Domain Here]/feed/playlist/PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj``` → https://www.youtube.com/feeds/videos.xml?playlist_id=PLY_6uAtgkYXl1sPyzNa2UFQYgPj2qA-qj Applies to: Main window (address bar) From f44698624f6d6b23802f3e81d134260cd4a9a4d6 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Apr 2023 18:29:07 +0200 Subject: [PATCH 087/156] Remove the vern.cc instance --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 8f54869..a5d2583 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -32,8 +32,6 @@ * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious -* [inv.vern.cc](https://inv.vern.cc) 🇺🇸 - Source code/changes: https://git.vern.cc/vern/modifications/src/branch/master/invidious - * [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 From d9af00b09dd20fcd9ddcedc2d48d71dae2099af0 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Apr 2023 18:53:08 +0200 Subject: [PATCH 088/156] Remove the vern.cc Onion/Eepsite --- docs/instances.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index a5d2583..2e79f51 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -75,8 +75,6 @@ * [invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion](http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion) 🇨🇦 (Onion of invidious.esmailelbob.xyz) -* [inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) 🇺🇸 (Onion of inv.vern.cc) - * [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) @@ -89,8 +87,6 @@ ### I2P Eepsites: -* [inv.vern.i2p](http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p/) 🇺🇸 (Eepsite of inv.vern.cc) - * [http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p](http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p) 🇫🇷 (Eepsite of invidious.projectsegfau.lt) * [http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p](http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p) 🇱🇺 (Eepsite of inv.bp.projectsegfau.lt) From 15eef0af6f1b91631a1f46541089cd47e67919d2 Mon Sep 17 00:00:00 2001 From: Arya K Date: Fri, 14 Apr 2023 20:54:50 +0530 Subject: [PATCH 089/156] add instructions for resetting password (#374) --- docs/index.md | 1 + docs/reset-pass.md | 25 +++++++++++++++++++++++++ mkdocs.yml | 3 ++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 docs/reset-pass.md diff --git a/docs/index.md b/docs/index.md index 93c65d4..32a2c93 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,6 +19,7 @@ - [Database Information and Maintenance](./db-maintenance.md) - [Issues with CAPTCHA](./captcha-bug.md) - [How to setup Anti-Captcha](./anti-captcha.md) +- [How to reset a user's password](./reset-pass.md) ## For Developers diff --git a/docs/reset-pass.md b/docs/reset-pass.md new file mode 100644 index 0000000..541ee1b --- /dev/null +++ b/docs/reset-pass.md @@ -0,0 +1,25 @@ +# How to reset a user's password + +Resetting a user's invidious password needs you to edit the database. + +Firstly, generate a bcrypt-encrypted hash for the new password you want to set for the user. + +This can be done with the `bcrypt` python module, though there are other ways of doing the same. + +``` +python3 -c 'import bcrypt; print(bcrypt.hashpw(b"", bcrypt.gensalt(rounds=10)).decode("ascii"))' +``` + +To do so, first attach to the database: +``` +# su - postgres +$ psql +postgres=# \c invidious +``` + +Now, run the following SQL query: +``` +UPDATE users SET password = 'HASH' WHERE email = 'USERNAME'; +``` + +After that, the password should be reset. diff --git a/mkdocs.yml b/mkdocs.yml index f552c99..1f0c737 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -31,6 +31,7 @@ nav: - 'anti-captcha.md' - 'takedown.md' - 'hide-instance-behind-proxy-server.md' + - 'reset-pass.md' - 'For Developers': - 'api.md' - 'api/common_types.md' @@ -62,4 +63,4 @@ markdown_extensions: - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences - - pymdownx.details # https://facelessuser.github.io/pymdown-extensions/extensions/details/ \ No newline at end of file + - pymdownx.details # https://facelessuser.github.io/pymdown-extensions/extensions/details/ From fd63de460368a4bd1973b01b258aa097fae3bdb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Fri, 14 Apr 2023 15:48:46 +0000 Subject: [PATCH 090/156] Add note about database maintenance --- docs/db-maintenance.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/db-maintenance.md b/docs/db-maintenance.md index 5412980..5eb20c0 100644 --- a/docs/db-maintenance.md +++ b/docs/db-maintenance.md @@ -1,5 +1,11 @@ # Database Information and Maintenance +!!! Note + + You do not need to setup a cleanup cron anymore as there is now an automatic cleaning process in Invidious. + Since this pull request: [https://github.com/iv-org/invidious/pull/3294](https://github.com/iv-org/invidious/pull/3294). + But this page is left in case you need to manually cleanup the database. + Invidious needs one PostgreSQL database which has the following tables. - `annotations` Caches annotation data if `cache_annotations` is enabled in [`config.yml`](./configuration.md) From b99d3f7045212c79cc5754c842b6401271947b7e Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Sat, 22 Apr 2023 14:11:58 +0200 Subject: [PATCH 091/156] Remove the thekitty.zone instance --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 2e79f51..dbe2be1 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -32,8 +32,6 @@ * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious -* [watch.thekitty.zone](https://watch.thekitty.zone) 🇩🇪 - * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 From 20570431f3bbff00c681d0bb80828cc8afbcaa15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Tue, 25 Apr 2023 16:42:53 +0200 Subject: [PATCH 092/156] Add back invidious.slipfox.xyz See https://github.com/iv-org/documentation/issues/245#issuecomment-1509935370 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index dbe2be1..4e95aef 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -32,6 +32,8 @@ * [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious +* [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 + * [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 From aa9449f847789335afb8fe6d3233c212eac8fce0 Mon Sep 17 00:00:00 2001 From: PrivacyDevel <105459436+PrivacyDevel@users.noreply.github.com> Date: Wed, 26 Apr 2023 05:49:11 +0000 Subject: [PATCH 093/156] Updated location of PrivacyDev's instances (#379) --- docs/instances.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 4e95aef..b5cb1cb 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -38,7 +38,7 @@ * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 -* [invidious.privacydev.net](https://invidious.privacydev.net) 🇳🇱 +* [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 * [yt.funami.tech](https://yt.funami.tech) 🇰🇷 @@ -79,7 +79,7 @@ * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) -* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇳🇱 (Onion of invidious.privacydev.net) +* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇩🇪 (Onion of invidious.privacydev.net) * [http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion) 🇫🇷 (Onion of invidious.projectsegfau.lt) From a05664cd95bd995133291409f7936909bb43f64c Mon Sep 17 00:00:00 2001 From: Emilien Devos Date: Mon, 8 May 2023 13:08:04 +0200 Subject: [PATCH 094/156] add instance automatically to uptime robot --- .github/ISSUE_TEMPLATE/new_instance.yaml | 2 + .../workflows/add-instance-uptimerobot.yml | 112 ++++++++++++++++++ .github/workflows/remove-30days-label.yml | 23 ++++ 3 files changed, 137 insertions(+) create mode 100644 .github/workflows/add-instance-uptimerobot.yml create mode 100644 .github/workflows/remove-30days-label.yml diff --git a/.github/ISSUE_TEMPLATE/new_instance.yaml b/.github/ISSUE_TEMPLATE/new_instance.yaml index a5e0e5c..de1e042 100644 --- a/.github/ISSUE_TEMPLATE/new_instance.yaml +++ b/.github/ISSUE_TEMPLATE/new_instance.yaml @@ -4,6 +4,8 @@ title: "[New instance] " assignees: - unixfox - samantazfox +labels: + - instance-add body: - type: markdown diff --git a/.github/workflows/add-instance-uptimerobot.yml b/.github/workflows/add-instance-uptimerobot.yml new file mode 100644 index 0000000..38aef62 --- /dev/null +++ b/.github/workflows/add-instance-uptimerobot.yml @@ -0,0 +1,112 @@ +name: Add instance to uptimerobot + +on: + issues: + types: [opened, reopened] + +jobs: + + replycomment: + + runs-on: ubuntu-latest + permissions: write-all + steps: + - uses: actions/checkout@v3 + if: contains(github.event.issue.labels.*.name, 'instance-add') + - uses: actions/setup-node@v3 + if: contains(github.event.issue.labels.*.name, 'instance-add') + with: + node-version: 16 + - run: npm install request linkifyjs + if: contains(github.event.issue.labels.*.name, 'instance-add') + - uses: actions/github-script@v6 + if: contains(github.event.issue.labels.*.name, 'instance-add') + with: + script: | + var issueInfo = (await github.rest.issues.get({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + })).data; + var linkify = require("linkifyjs"); + var issueTitleParseUrl = linkify.find(issueInfo.title); + if (issueTitleParseUrl.length !== 0) { + if (issueInfo.title.includes(".onion")) { + var replyComment = + ['Hello! I\'ve detected that you are requesting to add an onion URL.', + 'Please create a pull request instead for adding your onion url as an alternative to your clearnet URL: https://github.com/iv-org/documentation/edit/master/docs/instances.md' + ].join('\n'); + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: replyComment + }); + await github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }); + } + else { + var instanceHostname = (new URL(issueTitleParseUrl[0].href)).hostname; + var request = require("request"); + var options = { method: 'POST', + url: 'https://api.uptimerobot.com/v2/newMonitor', + json:true, + headers: + { 'content-type': 'application/x-www-form-urlencoded', + 'cache-control': 'no-cache' }, + form: + { api_key: '${{ secrets.UPTIMEROBOT_API_KEY }}', + format: 'json', + type: '1', + url: 'https://' + instanceHostname, + friendly_name: instanceHostname } }; + + request(options, async function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + if (body.stat == "ok") { + var replyComment = + ['Hello! Your instance has been added to our monitoring system: https://stats.uptimerobot.com/89VnzSKAn/' + body.monitor.id, + 'You need to wait 30 days before we add your instance.', + '', + 'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!' + ].join('\n'); + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: replyComment + }) + await github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['wait-30-days'] + }) + } + }); + } + } + else { + var replyComment = + ['Domain not detected in the title, please edit the title by correcting it like this and reopen the issue:', + 'Issue title example: `[New instance] https://myinstance.com`' + ].join('\n'); + + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: replyComment + }) + await github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }) + } \ No newline at end of file diff --git a/.github/workflows/remove-30days-label.yml b/.github/workflows/remove-30days-label.yml new file mode 100644 index 0000000..6e235ad --- /dev/null +++ b/.github/workflows/remove-30days-label.yml @@ -0,0 +1,23 @@ +name: Remove instance label when closing + +on: + issues: + types: [closed] + +jobs: + + replycomment: + + runs-on: ubuntu-latest + permissions: write-all + steps: + - uses: actions/github-script@v6 + if: contains(github.event.issue.labels.*.name, 'wait-30-days') + with: + script: | + await github.rest.issues.removeLabel({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + name: 'wait-30-days' + }); \ No newline at end of file From 54650db2a660123404abfacddc1d1b5921903dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brock=20Vojkovi=C4=87?= Date: Tue, 9 May 2023 16:42:39 +0000 Subject: [PATCH 095/156] Add onion of vid.priv.au (#388) --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index b5cb1cb..6951aaf 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -85,6 +85,8 @@ * [http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion) 🇱🇺 (Onion of inv.bp.projectsegfau.lt) +* [invidiousge2cq2qegp4vdzsfu6mvpqdf6dtcyzmqbv7yx2spvkkajad.onion](http://invidiousge2cq2qegp4vdzsfu6mvpqdf6dtcyzmqbv7yx2spvkkajad.onion) 🇸🇬 (Onion of vid.priv.au) + ### I2P Eepsites: * [http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p](http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p) 🇫🇷 (Eepsite of invidious.projectsegfau.lt) From f9a8f6bea55706a0d420687aeae40278b7788d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 13 May 2023 14:27:53 +0000 Subject: [PATCH 096/156] Add new instances Closes #358 Closes #355 --- docs/instances.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 6951aaf..109a070 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -58,6 +58,12 @@ * [inv.zzls.xyz](https://inv.zzls.xyz) 🇨🇱 +* [yt.floss.media](https://yt.floss.media) 🇺🇸 + +* [invidious.nogafa.org](https://invidious.nogafa.org) 🇫🇷 + + + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 5e4eaa872b2bf994807950f310c92affcfb692be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 13 May 2023 20:51:12 +0000 Subject: [PATCH 097/156] Add inv.tux.pizza Closes #356 --- docs/instances.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/instances.md b/docs/instances.md index 109a070..7e5a735 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -62,6 +62,7 @@ * [invidious.nogafa.org](https://invidious.nogafa.org) 🇫🇷 +* [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 ### Tor Onion Services: From bfe4c4edfe8f5f57ba41a5bc1bb5258716c9aad7 Mon Sep 17 00:00:00 2001 From: pistasjis <57069715+pistasjis@users.noreply.github.com> Date: Sun, 14 May 2023 11:12:11 +0200 Subject: [PATCH 098/156] Rename inv.odyssey346.dev instance (#391) --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 7e5a735..dd14819 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -34,7 +34,7 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [inv.odyssey346.dev](https://inv.odyssey346.dev) 🇫🇷 +* [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 From ed63ab464d6701938db5202dae4ef558a3631e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Fri, 19 May 2023 22:13:26 +0000 Subject: [PATCH 099/156] Don't close the issue for a title issue --- .github/workflows/add-instance-uptimerobot.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/add-instance-uptimerobot.yml b/.github/workflows/add-instance-uptimerobot.yml index 38aef62..9ce59f7 100644 --- a/.github/workflows/add-instance-uptimerobot.yml +++ b/.github/workflows/add-instance-uptimerobot.yml @@ -93,7 +93,7 @@ jobs: } else { var replyComment = - ['Domain not detected in the title, please edit the title by correcting it like this and reopen the issue:', + ['Domain not detected in the title, please edit the title by correcting it like this:', 'Issue title example: `[New instance] https://myinstance.com`' ].join('\n'); @@ -103,10 +103,4 @@ jobs: repo: context.repo.repo, body: replyComment }) - await github.rest.issues.update({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - state: 'closed' - }) - } \ No newline at end of file + } From 168ed1b3ce3d6f36c077832dce72ef0b013bb076 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Sun, 21 May 2023 18:23:26 +0000 Subject: [PATCH 100/156] Remove esmailelbob.xyz for hateful TOS update (#396) --- docs/instances.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index dd14819..acd25e8 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -22,8 +22,6 @@ * [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 -* [invidious.esmailelbob.xyz](https://invidious.esmailelbob.xyz) 🇨🇦 - * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 @@ -80,8 +78,6 @@ * [euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion](http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion/) 🇩🇪 (Onion of invidious.sethforprivacy.com) -* [invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion](http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion) 🇨🇦 (Onion of invidious.esmailelbob.xyz) - * [ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion](http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion) 🇩🇪 (Onion of yt.artemislena.eu) * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) From 83446258add1f0ed6210d676e66bd8b5aa49e9de Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> Date: Sun, 21 May 2023 21:38:28 +0200 Subject: [PATCH 101/156] Add a new rule about access restriction (#397) * Add a new rule about access restriction * Use natural person everywhere * Those are examples not the only things --- docs/instances.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/instances.md b/docs/instances.md index acd25e8..bc12365 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -113,5 +113,6 @@ - MUST publish any later modification in a timely manner - MUST contain a link to both the modified and original source code of Invidious in the footer. 12. Instances MUST NOT serve ads (sponsorship links in the banner are considered ads) NOR promote products. +13. Instances MUST NOT restrict or disallow the access / usage to any [natural person](https://en.wikipedia.org/wiki/Natural_person) (eg. a country's IP range MUST NOT be blocked, access by a natural person MUST NOT be disallowed for arbirary reason) - this rule doesn't apply to [juridical persons](https://en.wikipedia.org/wiki/Juridical_person). **NOTE:** We reserve the right to decline any instance from being added to the list, and to remove or ban any instance that repeatedly breaks the aforementioned rules. From 01ec20f4d6ea4366a5cf192d4a1a0a71c2f6112b Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Sun, 21 May 2023 19:51:05 +0000 Subject: [PATCH 102/156] Reword note under instance rules (#398) * Reword note under instance rules * Formating consistency --------- Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index bc12365..f206ad3 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -115,4 +115,4 @@ 12. Instances MUST NOT serve ads (sponsorship links in the banner are considered ads) NOR promote products. 13. Instances MUST NOT restrict or disallow the access / usage to any [natural person](https://en.wikipedia.org/wiki/Natural_person) (eg. a country's IP range MUST NOT be blocked, access by a natural person MUST NOT be disallowed for arbirary reason) - this rule doesn't apply to [juridical persons](https://en.wikipedia.org/wiki/Juridical_person). -**NOTE:** We reserve the right to decline any instance from being added to the list, and to remove or ban any instance that repeatedly breaks the aforementioned rules. +**NOTE:** We reserve the right to decline any instance from being added to the list, and to remove / ban any instance breaking the aforementioned rules. From cf0b6310d32901542eace8ec2efa03cb63c2c480 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Sun, 21 May 2023 15:56:46 -0400 Subject: [PATCH 103/156] Add playlist attachment type (#378) * Add playlist attachment type * add viewCountText to video object --- docs/api/channels_endpoint.md | 5 ++++- docs/api/common_types.md | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md index 642577e..a1506d3 100644 --- a/docs/api/channels_endpoint.md +++ b/docs/api/channels_endpoint.md @@ -140,7 +140,7 @@ Please refer to the [Community Post Attachment types](#community-post-attachment { "authorId": String, "comments": { - "attachment": ImageAttachment | MultiImageAttachment | VideoAttachment | PollAttachment + "attachment": ImageAttachment | MultiImageAttachment | VideoAttachment | PollAttachment | PlaylistAttachment "author": String, "authorIsChannelOwner": Boolean "authorId": String, @@ -161,6 +161,9 @@ Please refer to the [Community Post Attachment types](#community-post-attachment __VideoAttachment__ See [VideoObject](./common_types.md#videoobject) common type +__PlaylistAttachment__ +See [PlaylistObject](./common_types.md#playlistobject) common type + __ImageAttachment__ ```javascript diff --git a/docs/api/common_types.md b/docs/api/common_types.md index 9a896f0..d0d344b 100644 --- a/docs/api/common_types.md +++ b/docs/api/common_types.md @@ -46,6 +46,7 @@ "descriptionHtml": String, "viewCount": Number, // Integer + "viewCountText": String, "lengthSeconds": Number, // Integer "published": Number, // Unix timestamp @@ -85,7 +86,7 @@ ``` -### PlaylistOject +### PlaylistObject ```javascript { From 44084b1281af0358945bb73060cfb51d6b3955cc Mon Sep 17 00:00:00 2001 From: MintMain21 <91362684+MintMain21@users.noreply.github.com> Date: Sun, 21 May 2023 14:17:29 -0700 Subject: [PATCH 104/156] =?UTF-8?q?Rearranged=20some=20userscripts,=20remo?= =?UTF-8?q?ved=20outdated=20"Audio=20Mode"=20userscript=E2=80=A6=20(#366)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/applications.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/applications.md b/docs/applications.md index a3314c4..2bdfe0f 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -12,14 +12,13 @@ - [Redirector](https://github.com/einaregilsson/Redirector): Extension for Firefox and Chromium that can manually be configured to process Inidious Redirects. For details, see the [setup page](./redirector-setup.md) to use it with Invidious. ### Userscripts for Invidious. -- [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect): Redirects YouTube URLs to Invidio.us. -- [YouTube to Invidious](https://greasyfork.org/en/scripts/375264-youtube-to-invidious): Scans current page for YouTube embeds and replace with Invidious. -- [No-Youtube](https://github.com/mperez01/no-youtube): Userscript to replace youtube links to invidio.us. -- [Invidious Audio Mode](https://greasyfork.org/en/scripts/397700-invidious-audio-mode): Adds a headphone icon next to all video links. Handy for those that just want to stream audio and not video. -- [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player): Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel. +- [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect): Redirects YouTube URLs to a deprecated instance, but can be edited to redirect to a different instance. +- [YouTube to Invidious](https://greasyfork.org/en/scripts/375264-youtube-to-invidious): Scans current page for YouTube embeds and replace with invidio.us. (Can be edited to use any preffered instance) +- [No-Youtube](https://github.com/mperez01/no-youtube): Userscript to replace youtube links to invidio.us. Can be edited to redirect to a preffered instance. +- [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player): Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel (redirects to invidio.us by default, can be edited). - [Privacy Redirector](https://github.com/dybdeskarphet/privacy-redirector): Userscript to automatically redirect to different private frontents, including Invidious. Can be configured to redirect to specific instances of the user's choice. - [Simple Sponsor Skipper](https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper): Userscript based on Sponsorblock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. -- [Invidious URL Parameters](https://github.com/MintMain21/Invidious-URL-Parameters-Userscript) Userscript for appending URL Parameters to video links for selected Invidious Instances. Works in tandum with Privacy Redirector and Simple Sponsor Skipper. See [here](https://docs.invidious.io/url-parameters/) for more information about URL Parameters. +- [Invidious Preferences Userscript](https://github.com/MintMain21/Invidious-Preferences-Userscript) Userscript for enforcing preferences accross multiple instances, through URL Parameters, and without using browser cookies. Works in tandum with Privacy Redirector and Simple Sponsor Skipper. See [here](https://docs.invidious.io/url-parameters/) for more information about URL Parameters. ### Extensions that integrate Invidious into other programs and apps - [UntrackMe](https://f-droid.org/en/packages/app.fedilab.nitterizeme): Android app to rewrite YouTube links to Invidious. Can optionally play videos in the app as well. From 93b86dedbaa528ef5ce5bae09cde3c364bf9435c Mon Sep 17 00:00:00 2001 From: CryptorClub Date: Fri, 26 May 2023 12:50:07 +0300 Subject: [PATCH 105/156] Update command for switching to invidious user (#399) --- docs/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index a15b10b..7d6ebdb 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -260,7 +260,7 @@ docker image prune -f #### Update a manual install ```bash -sudo - invidious +su - invidious cd invidious git pull shards install --production From cb011b7a78292a685c2bbe137b9c84468c0f8fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Fri, 26 May 2023 20:14:09 +0000 Subject: [PATCH 106/156] Use make for the manual update of invidious closes #400 --- docs/installation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 7d6ebdb..8d3f534 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -263,8 +263,7 @@ docker image prune -f su - invidious cd invidious git pull -shards install --production -crystal build src/invidious.cr --release +make exit systemctl restart invidious.service ``` From fac7b68fd5d9d0cc733d69a5cdfa6e5c83f3c6c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 27 May 2023 09:49:35 +0000 Subject: [PATCH 107/156] change flag for invidious.vpsburti.com --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index f206ad3..de2378c 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -50,7 +50,7 @@ * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) -* [invidious.vpsburti.com](https://invidious.vpsburti.com) 🇳🇱 +* [invidious.vpsburti.com](https://invidious.vpsburti.com) 🇫🇮 * [invidious.0011.lt](https://invidious.0011.lt) 🇱🇹 From b711a8f0aa60c737aa9dc51434b238b5ca0969c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 28 May 2023 10:01:00 +0000 Subject: [PATCH 108/156] remove invidious.vpsburti.com and invidious.nerdvpn.de remove instance due to bug https://github.com/iv-org/invidious/issues/3822 for now. --- docs/instances.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index de2378c..67a80d5 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -28,8 +28,6 @@ * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 -* [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious - * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 * [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 @@ -48,9 +46,7 @@ * [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 -* [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) - -* [invidious.vpsburti.com](https://invidious.vpsburti.com) 🇫🇮 +* [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) * [invidious.0011.lt](https://invidious.0011.lt) 🇱🇹 From a79db179cba0b9f882a588b67da7657c4bb21df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Thu, 1 Jun 2023 17:45:07 +0200 Subject: [PATCH 109/156] Add back invidious.nerdvpn.de --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 67a80d5..85c1457 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -28,6 +28,8 @@ * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 +* [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious + * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 * [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 From 2e65b1eb227c69d6e897d6cf7fb795e95f8c1147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 3 Jun 2023 13:17:38 +0000 Subject: [PATCH 110/156] Remove instances that can't apply the solution bypass the youtube error This error : The video returned by YouTube isn't the requested one. (WEB client) (VideoNotAvailableException) Solution: https://github.com/iv-org/invidious/issues/3822#issuecomment-1565401621 --- docs/instances.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 85c1457..c3e0068 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,12 +24,8 @@ * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 -* [y.com.sb](https://y.com.sb) 🇩🇪 - * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 -* [invidious.nerdvpn.de](https://invidious.nerdvpn.de) 🇩🇪 - Source code/changes: https://github.com/Sommerwiesel/invidious - * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 * [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 @@ -46,8 +42,6 @@ * [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 -* [invidious.sethforprivacy.com](https://invidious.sethforprivacy.com) 🇨🇦 - * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) * [invidious.0011.lt](https://invidious.0011.lt) 🇱🇹 @@ -56,8 +50,6 @@ * [yt.floss.media](https://yt.floss.media) 🇺🇸 -* [invidious.nogafa.org](https://invidious.nogafa.org) 🇫🇷 - * [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 From 88307f7b6ea8f23c444770a8a303c32853092416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 3 Jun 2023 13:37:28 +0000 Subject: [PATCH 111/156] Remove instances that can't apply the solution bypass the youtube error (x2) This error : The video returned by YouTube isn't the requested one. (WEB client) (VideoNotAvailableException) Solution: iv-org/invidious#3822 (comment) --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index c3e0068..27dbc6f 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -28,8 +28,6 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 - * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 * [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 From f7011d721697fec392d0ee11104aff60195badd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sat, 3 Jun 2023 17:17:45 +0000 Subject: [PATCH 112/156] Add more description about adding instance --- .github/workflows/add-instance-uptimerobot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add-instance-uptimerobot.yml b/.github/workflows/add-instance-uptimerobot.yml index 9ce59f7..586e1b1 100644 --- a/.github/workflows/add-instance-uptimerobot.yml +++ b/.github/workflows/add-instance-uptimerobot.yml @@ -71,7 +71,7 @@ jobs: if (body.stat == "ok") { var replyComment = ['Hello! Your instance has been added to our monitoring system: https://stats.uptimerobot.com/89VnzSKAn/' + body.monitor.id, - 'You need to wait 30 days before we add your instance.', + 'You need to wait 30 days before we add your instance, this is to evaluate that your instance will keep a good uptime for one month.', '', 'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!' ].join('\n'); From f519798f07dd1b7d6f8b3759139b879350cd15cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 4 Jun 2023 10:00:37 +0000 Subject: [PATCH 113/156] Add new instances Closes #380 Closes #375 Closes #376 --- docs/instances.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 27dbc6f..3097fb9 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -50,6 +50,11 @@ * [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 +* [not-ytb.blocus.ch](https://not-ytb.blocus.ch) 🇨🇦 + +* [invidious.protokolla.fi](https://invidious.protokolla.fi) 🇫🇮 + +* [onion.tube](https://onion.tube) 🇯🇵 (uses Cloudflare) ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 9882365323db298fef9d2858f9ac0e7520d70c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20Devos=20=28perso=29?= Date: Sun, 4 Jun 2023 12:26:06 +0000 Subject: [PATCH 114/156] Add back y.com.sb See https://github.com/iv-org/documentation/issues/222#issuecomment-1575547523 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 3097fb9..8e63bed 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,6 +24,8 @@ * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 +* [y.com.sb](https://y.com.sb) 🇩🇪 + * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 From 38f7b2c62217cb788516ea2828b780af25712fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sat, 10 Jun 2023 10:47:10 +0000 Subject: [PATCH 115/156] new source code link --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 8e63bed..ec57513 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -10,7 +10,7 @@ * [invidious.snopyta.org](https://invidious.snopyta.org) 🇫🇮 -* [yewtu.be](https://yewtu.be) 🇳🇱 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d)](https://uptime.invidious.io/784257752) - Source code/changes: https://github.com/unixfox/invidious-custom +* [yewtu.be](https://yewtu.be) 🇳🇱 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d)](https://uptime.invidious.io/784257752) - Source code/changes: https://github.com/yewtudotbe/invidious-custom * [invidious.kavin.rocks](https://invidious.kavin.rocks) 🇮🇳 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71)](https://status.kavin.rocks/786132664) (uses Cloudflare) From 99b41dba2216c7917cf98c062a24a955a33e1ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 13 Jun 2023 13:45:20 +0200 Subject: [PATCH 116/156] add inv.in.projectsegfau.lt close #368 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index ec57513..eb08461 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -58,6 +58,8 @@ * [onion.tube](https://onion.tube) 🇯🇵 (uses Cloudflare) +* [inv.in.projectsegfau.lt](https://inv.in.projectsegfau.lt) 🇮🇳 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From a555950b1d8e80ebcff645a16f013d5c811b7cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 13 Jun 2023 13:47:43 +0200 Subject: [PATCH 117/156] add inv.citw.lgbt close #387 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index eb08461..abec9a1 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -60,6 +60,8 @@ * [inv.in.projectsegfau.lt](https://inv.in.projectsegfau.lt) 🇮🇳 +* [inv.citw.lgbt](https://inv.citw.lgbt) 🇳🇱 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 23e7afef317b85eaa7a87e3bea20f14b0e2ef2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:03:13 +0200 Subject: [PATCH 118/156] add inv.makerlab.tech close #392 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index abec9a1..94e2a0d 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -62,6 +62,8 @@ * [inv.citw.lgbt](https://inv.citw.lgbt) 🇳🇱 +* [inv.makerlab.tech](https://inv.makerlab.tech) 🇪🇸 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From c3feaf53e89aed75bca63535b691dfe2ed04ca63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:08:15 +0200 Subject: [PATCH 119/156] Remove instances that are blocked by google Ping me to add back the instance --- docs/instances.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 94e2a0d..398d550 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -8,20 +8,12 @@ ## List of public Invidious Instances (sorted from oldest to newest): -* [invidious.snopyta.org](https://invidious.snopyta.org) 🇫🇮 - * [yewtu.be](https://yewtu.be) 🇳🇱 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m783898765-2a4efa67aa8d1c7be6b1dd9d)](https://uptime.invidious.io/784257752) - Source code/changes: https://github.com/yewtudotbe/invidious-custom -* [invidious.kavin.rocks](https://invidious.kavin.rocks) 🇮🇳 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786132664-f9fa738fba1c4dc2f7364f71)](https://status.kavin.rocks/786132664) (uses Cloudflare) - * [vid.puffyan.us](https://vid.puffyan.us) 🇺🇸 [![Uptime Robot status](https://img.shields.io/uptimerobot/status/m786947233-1131c3f67b9a20621b1926d3?style=plastic)](https://stats.uptimerobot.com/n7A08HGVl6/786947233) -* [inv.riverside.rocks](https://inv.riverside.rocks) 🇺🇸 - * [yt.artemislena.eu](https://yt.artemislena.eu) 🇩🇪 -* [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 - * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 @@ -34,8 +26,6 @@ * [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 -* [yt.funami.tech](https://yt.funami.tech) 🇰🇷 - * [vid.priv.au](https://vid.priv.au) 🇸🇬 * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 From 66371fff3e64f1aef81896f01b16cfeac5316ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 14 Jun 2023 14:55:20 +0000 Subject: [PATCH 120/156] add yt.oelrichsgarcia.de close #313 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 398d550..d6f1ae6 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -54,6 +54,8 @@ * [inv.makerlab.tech](https://inv.makerlab.tech) 🇪🇸 +* [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 91df87742747a2568cf7c66b1bc42d0f60c4678c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 28 Jun 2023 14:54:36 +0200 Subject: [PATCH 121/156] add back invidious.flokinet.to https://github.com/iv-org/documentation/issues/180#issuecomment-1609708043 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index d6f1ae6..2ef9413 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -14,6 +14,8 @@ * [yt.artemislena.eu](https://yt.artemislena.eu) 🇩🇪 +* [invidious.flokinet.to](https://invidious.flokinet.to) 🇷🇴 + * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 * [y.com.sb](https://y.com.sb) 🇩🇪 From 1788c0b58967ae117d82d21ce61aaff6c452cd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 28 Jun 2023 17:21:24 +0200 Subject: [PATCH 122/156] remove yt.floss.media often slow and now it doesn't respond anymore issue https://github.com/iv-org/documentation/issues/355 --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 2ef9413..a7cd1c4 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -40,8 +40,6 @@ * [inv.zzls.xyz](https://inv.zzls.xyz) 🇨🇱 -* [yt.floss.media](https://yt.floss.media) 🇺🇸 - * [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 * [not-ytb.blocus.ch](https://not-ytb.blocus.ch) 🇨🇦 From 014c1048f1b52a581047a6d582d245e7dbc6e8a2 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Mon, 3 Jul 2023 21:13:17 +0000 Subject: [PATCH 123/156] Install: Add 'hmac_key' to docker-compose (#415) --- docs/installation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/installation.md b/docs/installation.md index 8d3f534..13f53bf 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -63,6 +63,7 @@ services: # domain: # https_only: false # statistics_enabled: false + hmac_key: "CHANGE_ME!!" healthcheck: test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1 interval: 30s From ec6769c3dcfa760f0cb16f5c1084aef14b9a2be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:20:42 +0000 Subject: [PATCH 124/156] Add back inv.pistasjis.net https://github.com/iv-org/documentation/issues/270 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index a7cd1c4..44125d4 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,6 +24,8 @@ * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 +* [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 + * [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 * [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 From 24924fdcf5aa4ed765a6050b25b3f020bd59b6b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:24:54 +0000 Subject: [PATCH 125/156] remove instances that can't load videos ping me when you have solved the issue --- docs/instances.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 44125d4..82e8d06 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -18,16 +18,12 @@ * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 -* [y.com.sb](https://y.com.sb) 🇩🇪 - * [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 * [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 -* [invidious.baczek.me](https://invidious.baczek.me) 🇵🇱 - * [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 * [vid.priv.au](https://vid.priv.au) 🇸🇬 @@ -44,8 +40,6 @@ * [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 -* [not-ytb.blocus.ch](https://not-ytb.blocus.ch) 🇨🇦 - * [invidious.protokolla.fi](https://invidious.protokolla.fi) 🇫🇮 * [onion.tube](https://onion.tube) 🇯🇵 (uses Cloudflare) From c50cc9c5554273a04cfe378a9e251e77eb269890 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 14:58:31 +0200 Subject: [PATCH 126/156] Add redirector-setup.md to the 'nav' configuration --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 1f0c737..698aa4d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -20,6 +20,7 @@ nav: - 'umatrix.md' - 'known-exception.md' - 'faq.md' + - 'redirector-setup.md' - 'For Administrators': - 'installation.md' - 'configuration.md' From fd38eb83d3f1b4219246eb33362dfb78b3ee687d Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 15:08:59 +0200 Subject: [PATCH 127/156] Add a button to switch between light and dark theme --- mkdocs.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 698aa4d..ddf841b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,8 +42,23 @@ nav: theme: name: material font: false - palette: - primary: black + + palette: + # Light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: black + toggle: + icon: material/brightness-7 + name: Switch to dark mode + # Dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + toggle: + icon: material/brightness-4 + name: Switch to light mode + logo: images/invidious.png # https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#logo favicon: images/favicon.ico # https://squidfunk.github.io/mkdocs-material/setup/changing-the-logo-and-icons/#favicon features: From c3af90dd3b226eac9e47b0aea2da1d2277c47bab Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 15:16:10 +0200 Subject: [PATCH 128/156] Add a title to the redirector setup page --- docs/redirector-setup.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/redirector-setup.md b/docs/redirector-setup.md index 789753e..9bd71ff 100644 --- a/docs/redirector-setup.md +++ b/docs/redirector-setup.md @@ -1,3 +1,5 @@ +# Redirector Setup + # What is Redirector? Redirector is a Browser extension for Firefox and Chromium that can manually be configured to redirect links, such as YouTube to Invidious or [Twitter to Nitter](https://github.com/zedeus/nitter/wiki/Extensions#redirector) From 2330e177760f61041cb5f8c84644bf369cbdd56f Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 15:37:11 +0200 Subject: [PATCH 129/156] Rework the homepage and the nav completely --- docs/index.md | 23 ++++++++++++++++------- mkdocs.yml | 15 ++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/docs/index.md b/docs/index.md index 32a2c93..675781a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,29 +1,38 @@ ## General -- [Public Invidious Instances](./instances.md) +- [Invidious Instances](./instances.md) - [Applications](./applications.md) -- [Always proxy videos through server](./proxy-videos.md) +- [Export YouTube subscriptions](./export-youtube-subscriptions.md) +- [Frequently Asked Questions](./faq.md) + +## For Advanced Users + - [Preferences](./preferences.md) -- [Geoblocking, available quality and DASH](./geoblocking.md) - [Using search filters](./search-filters.md) - [List of URL parameters](./url-parameters.md) +- [Always proxy videos through server](./proxy-videos.md) +- [Geoblocking, available quality and DASH](./geoblocking.md) - [How to deal with uMatrix](./umatrix.md) +- [Redirector Setup](./redirector-setup.md) ## For Administrators - [Installation](./installation.md) - [Configuration](./configuration.md) -- [Apache2 Virtual Host with Reverse Proxy](./apache2.md) - [Nginx Reverse Proxy Configuration](./nginx.md) - [Caddy Reverse Proxy Configuration](./caddy.md) +- [Apache2 Virtual Host with Reverse Proxy](./apache2.md) - [Database Information and Maintenance](./db-maintenance.md) +- [Takedown Notices](./takedown.md) +- [Hide Invidious instance behind proxy server (for escaping DMCA requests)](./hide-instance-behind-proxy-server.md) - [Issues with CAPTCHA](./captcha-bug.md) - [How to setup Anti-Captcha](./anti-captcha.md) - [How to reset a user's password](./reset-pass.md) +- [Known Exception in log](./known-exception.md) ## For Developers - [API](./api.md) - * [Common object types used across the API](./api/common_types.md) - * ["Channels" endpoint](./api/channels_endpoint.md) - * [Authenticated Endpoints](./api/authenticated-endpoints.md) +- [Common object types used across the API](./api/common_types.md) +- ["Channels" endpoint](./api/channels_endpoint.md) +- [Authenticated Endpoints](./api/authenticated-endpoints.md) diff --git a/mkdocs.yml b/mkdocs.yml index ddf841b..35ca4f1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,29 +10,30 @@ nav: - Home: 'index.md' - 'General': - 'instances.md' - - 'export-youtube-subscriptions.md' - - 'preferences.md' - 'applications.md' + - 'export-youtube-subscriptions.md' + - 'faq.md' + - 'For Advanced Users': + - 'preferences.md' - 'search-filters.md' - 'url-parameters.md' - 'proxy-videos.md' - 'geoblocking.md' - 'umatrix.md' - - 'known-exception.md' - - 'faq.md' - 'redirector-setup.md' - 'For Administrators': - 'installation.md' - 'configuration.md' - - 'apache2.md' - 'nginx.md' - 'caddy.md' + - 'apache2.md' - 'db-maintenance.md' - - 'captcha-bug.md' - - 'anti-captcha.md' - 'takedown.md' - 'hide-instance-behind-proxy-server.md' + - 'captcha-bug.md' + - 'anti-captcha.md' - 'reset-pass.md' + - 'known-exception.md' - 'For Developers': - 'api.md' - 'api/common_types.md' From 00ac1d8e5be94aee11778e95a448f8ac76ecb7ce Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 15:48:38 +0200 Subject: [PATCH 130/156] Better and shorter names for a lot of pages --- docs/anti-captcha.md | 2 +- docs/apache2.md | 2 +- docs/api/authenticated-endpoints.md | 2 +- docs/api/channels_endpoint.md | 2 +- docs/api/common_types.md | 2 +- docs/caddy.md | 2 +- docs/captcha-bug.md | 2 +- docs/db-maintenance.md | 2 +- docs/geoblocking.md | 2 +- docs/hide-instance-behind-proxy-server.md | 2 +- docs/index.md | 36 +++++++++++------------ docs/nginx.md | 2 +- docs/proxy-videos.md | 2 +- docs/redirector-setup.md | 2 +- docs/{reset-pass.md => reset-password.md} | 2 +- docs/search-filters.md | 2 +- docs/takedown.md | 2 +- docs/umatrix.md | 2 +- docs/url-parameters.md | 2 +- mkdocs.yml | 2 +- 20 files changed, 37 insertions(+), 37 deletions(-) rename docs/{reset-pass.md => reset-password.md} (95%) diff --git a/docs/anti-captcha.md b/docs/anti-captcha.md index f60e58e..764c240 100644 --- a/docs/anti-captcha.md +++ b/docs/anti-captcha.md @@ -1,4 +1,4 @@ -# How to setup Anti-Captcha +# Anti-Captcha setup 1. [Register on anti-captcha.com](https://anti-captcha.com/clients/entrance/register) and finish the registration with the link provided in your mailbox. 2. Head over to the [Add fund](https://anti-captcha.com/clients/finance/refill) page and use whatever currency you prefer to use for adding $2 into your balance. diff --git a/docs/apache2.md b/docs/apache2.md index 473ebcb..911610d 100644 --- a/docs/apache2.md +++ b/docs/apache2.md @@ -1,4 +1,4 @@ -# Apache2 Reverse Proxy +# Apache2 reverse proxy setup - A very basic config, secured with Let's Encrypt. Any log is disabled by default. Do not forget to replace `ServerName` with your domain. diff --git a/docs/api/authenticated-endpoints.md b/docs/api/authenticated-endpoints.md index 6efc0b5..dab3b1f 100644 --- a/docs/api/authenticated-endpoints.md +++ b/docs/api/authenticated-endpoints.md @@ -1,4 +1,4 @@ -# Authenticated Endpoints +# API - Authenticated endpoints All endpoints under namespace `/api/v1/auth` require authentication. diff --git a/docs/api/channels_endpoint.md b/docs/api/channels_endpoint.md index a1506d3..2bd4b8d 100644 --- a/docs/api/channels_endpoint.md +++ b/docs/api/channels_endpoint.md @@ -1,4 +1,4 @@ -# Channels endpoint +# API - Channels endpoint Please refer to the [Common object types](./common_types.md) page for more details on the various JSON objects used below. diff --git a/docs/api/common_types.md b/docs/api/common_types.md index d0d344b..994b917 100644 --- a/docs/api/common_types.md +++ b/docs/api/common_types.md @@ -1,4 +1,4 @@ -# Object types used across the API +# API - Common object types ### ImageObject diff --git a/docs/caddy.md b/docs/caddy.md index a082d7a..c4ece41 100644 --- a/docs/caddy.md +++ b/docs/caddy.md @@ -1,4 +1,4 @@ -# Caddy reverse proxy +# Caddy reverse proxy setup This is a very basic config, assuming that you're using Caddy to manage SSL certificates for you. Any log is disabled by default. Do not forget to replace `server_name` with your domain. diff --git a/docs/captcha-bug.md b/docs/captcha-bug.md index f51b7fb..eb80fad 100644 --- a/docs/captcha-bug.md +++ b/docs/captcha-bug.md @@ -1,4 +1,4 @@ -# Issues with CAPTCHA on Debian and Ubuntu +# CAPTCHA bug on Debian and Ubuntu #### Warning: If you use ImageMagick on Ubuntu for other services like Mastodon this guide may break them, please use [this guide](https://linuxconfig.org/how-to-install-imagemagick-7-on-ubuntu-18-04-linux) instead. There is some issue on Debian 9 and Ubuntu 18.04 and later. It appears that the clock (the CAPTCHA) has no hands but you can see them outside the clock. You need to compile ImageMagick yourself with librsvg to solve this issue. diff --git a/docs/db-maintenance.md b/docs/db-maintenance.md index 5eb20c0..1fef950 100644 --- a/docs/db-maintenance.md +++ b/docs/db-maintenance.md @@ -1,4 +1,4 @@ -# Database Information and Maintenance +# Database maintenance !!! Note diff --git a/docs/geoblocking.md b/docs/geoblocking.md index e8f8011..ea9e4a6 100644 --- a/docs/geoblocking.md +++ b/docs/geoblocking.md @@ -1,4 +1,4 @@ -# Geoblocking, available video quality and DASH +# Videos geoblocking ## Geoblocking Sometimes you may notice that you cannot watch a video on Invidious. This is because YouTube is geoblocking, i.e. preventing access to videos based on your geographical location. diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index 3108cfe..f781890 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -1,4 +1,4 @@ -# Hide Invidious instance behind proxy server (for escaping DMCA requests) +# Hiding Invidious instance behind proxy servers (for escaping DMCA requests) This tutorial has been writen by [unixfox](https://github.com/unixfox), owner of [yewtu.be](https://yewtu.be/) diff --git a/docs/index.md b/docs/index.md index 675781a..6704644 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,31 +8,31 @@ ## For Advanced Users - [Preferences](./preferences.md) -- [Using search filters](./search-filters.md) -- [List of URL parameters](./url-parameters.md) -- [Always proxy videos through server](./proxy-videos.md) -- [Geoblocking, available quality and DASH](./geoblocking.md) -- [How to deal with uMatrix](./umatrix.md) -- [Redirector Setup](./redirector-setup.md) +- [Search filters](./search-filters.md) +- [URL parameters](./url-parameters.md) +- [UserScript to always proxy video](./proxy-videos.md) +- [Videos geoblocking](./geoblocking.md) +- [uMatrix setup](./umatrix.md) +- [Redirector setup](./redirector-setup.md) ## For Administrators - [Installation](./installation.md) - [Configuration](./configuration.md) -- [Nginx Reverse Proxy Configuration](./nginx.md) -- [Caddy Reverse Proxy Configuration](./caddy.md) -- [Apache2 Virtual Host with Reverse Proxy](./apache2.md) -- [Database Information and Maintenance](./db-maintenance.md) -- [Takedown Notices](./takedown.md) -- [Hide Invidious instance behind proxy server (for escaping DMCA requests)](./hide-instance-behind-proxy-server.md) -- [Issues with CAPTCHA](./captcha-bug.md) -- [How to setup Anti-Captcha](./anti-captcha.md) -- [How to reset a user's password](./reset-pass.md) +- [NGINX reverse proxy setup](./nginx.md) +- [Caddy reverse proxy setup](./caddy.md) +- [Apache2 reverse proxy setup](./apache2.md) +- [Database maintenance](./db-maintenance.md) +- [Handling takedown notices](./takedown.md) +- [Hiding Invidious instance behind proxy servers (for escaping DMCA requests)](./hide-instance-behind-proxy-server.md) +- [CAPTCHA bug on Debian and Ubuntu](./captcha-bug.md) +- [Anti-Captcha setup](./anti-captcha.md) +- [Reset user password](./reset-password.md) - [Known Exception in log](./known-exception.md) ## For Developers - [API](./api.md) -- [Common object types used across the API](./api/common_types.md) -- ["Channels" endpoint](./api/channels_endpoint.md) -- [Authenticated Endpoints](./api/authenticated-endpoints.md) +- [API - Common object types](./api/common_types.md) +- [API - Channels endpoint](./api/channels_endpoint.md) +- [API - Authenticated endpoints](./api/authenticated-endpoints.md) diff --git a/docs/nginx.md b/docs/nginx.md index 08ce8d3..e327167 100644 --- a/docs/nginx.md +++ b/docs/nginx.md @@ -1,4 +1,4 @@ -# NginX Reverse Proxy +# NGINX reverse proxy setup This is a very basic config, secured with Let's Encrypt. Any log is disabled by default. Do not forget to replace `server_name` with your domain. diff --git a/docs/proxy-videos.md b/docs/proxy-videos.md index 967f295..6fb9d49 100644 --- a/docs/proxy-videos.md +++ b/docs/proxy-videos.md @@ -1,4 +1,4 @@ -# Always use "local" to proxy video through the server without creating an account +# UserScript to always proxy video Download ViolentMonkey for your Browser: [Firefox](https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/) diff --git a/docs/redirector-setup.md b/docs/redirector-setup.md index 9bd71ff..de24237 100644 --- a/docs/redirector-setup.md +++ b/docs/redirector-setup.md @@ -1,4 +1,4 @@ -# Redirector Setup +# Redirector setup # What is Redirector? diff --git a/docs/reset-pass.md b/docs/reset-password.md similarity index 95% rename from docs/reset-pass.md rename to docs/reset-password.md index 541ee1b..8147677 100644 --- a/docs/reset-pass.md +++ b/docs/reset-password.md @@ -1,4 +1,4 @@ -# How to reset a user's password +# Reset user password Resetting a user's invidious password needs you to edit the database. diff --git a/docs/search-filters.md b/docs/search-filters.md index 594df63..b5abdd1 100644 --- a/docs/search-filters.md +++ b/docs/search-filters.md @@ -1,4 +1,4 @@ -# Search operators +# Search filters Invidious supports the various search filters provided by YouTube. diff --git a/docs/takedown.md b/docs/takedown.md index 8f2e067..3d92bfe 100644 --- a/docs/takedown.md +++ b/docs/takedown.md @@ -1,4 +1,4 @@ -# Takedown Notices +# Handling takedown notices If you are running a public Invidious instance, it is very possible that you will end up receiving a takedown notice at some point. A copyright agent will probably search the ID of an infringing video on a search engine and see your instance appear. At least in the United States and in Europe, Invidious instances are, in theory, legal. diff --git a/docs/umatrix.md b/docs/umatrix.md index 4f9d358..5ce7cb4 100644 --- a/docs/umatrix.md +++ b/docs/umatrix.md @@ -1,4 +1,4 @@ -# How to deal with uMatrix +# uMatrix setup If you're using [uMatrix](https://github.com/gorhill/uMatrix), you won't be able to automatically play a video served by Invidious on other websites without unblocking requests to Invidious instances. diff --git a/docs/url-parameters.md b/docs/url-parameters.md index 0144d78..1caf7cd 100644 --- a/docs/url-parameters.md +++ b/docs/url-parameters.md @@ -1,4 +1,4 @@ -# List of URL parameters +# URL parameters A list of URL parameters for Invidious, which can automatically toggle various UI and player settings. diff --git a/mkdocs.yml b/mkdocs.yml index 35ca4f1..243aefc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,7 +32,7 @@ nav: - 'hide-instance-behind-proxy-server.md' - 'captcha-bug.md' - 'anti-captcha.md' - - 'reset-pass.md' + - 'reset-password.md' - 'known-exception.md' - 'For Developers': - 'api.md' From 9e3c7dea3b4bf6f268abd7614f6f383c6bf2d9b6 Mon Sep 17 00:00:00 2001 From: Seth Falco Date: Mon, 10 Jul 2023 14:53:48 +0100 Subject: [PATCH 131/156] Update applications list (#407) --- docs/applications.md | 63 ++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/docs/applications.md b/docs/applications.md index 2bdfe0f..7724940 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -1,32 +1,43 @@ # Applications -### Browser extensions for Invidious -- [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect): Redirects YouTube to Invidious, Twitter to Nitter, and Instagram to Bibliogram. [Source](https://github.com/SimonBrazell/privacy-redirect) / [Firefox](https://addons.mozilla.org/addon/privacy-redirect) / [Chrome](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb) -- [Alter](https://addons.mozilla.org/addon/alter): Firefox extension that redirects YouTube, Twitter and Reddit to Invidious, Nitter and Teddit respectively. [Source](https://github.com/w3bdev1/alter) / [Firefox](https://addons.mozilla.org/addon/alter) -- [SponsorBlock](https://github.com/ajayyy/SponsorBlock): A crowd-sourced extension to skip sponsorships. Support invidious instances if enabled in the options. [Source](https://github.com/ajayyy/SponsorBlock) / [Firefox](https://addons.mozilla.org/addon/sponsorblock) / [Chrome](https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone) -- [Invidition](https://addons.mozilla.org/addon/invidition): Firefox extension that redirects YouTube links and embeds to their Invidious counterpart without any call to YouTube. [Source](https://codeberg.org/Booteille/Invidition) (**deprecated**). -- [Alternate Tube Redirector](https://gitlab.com/2vek/alternate-tube-redirector): Extension to automatically open YouTube Videos on alternate sites like Invidious or Hooktube. [Source](https://gitlab.com/2vek/alternate-tube-redirector) -- [Invidious Copy URL](https://github.com/recette-lemon/invidious-copy-url): Adds context menu options on Invidious to copy shortened YouTube URL at current time or not (Requires using developer mode in Chrome or a developer version of Firefox). -- [View on Invidious](https://omar.yt/722e5c15832840fe1ae8830b7c590254b9e0a45c/invidious-bookmarklet.html): View page on Invidious (bookmarklet). -- [Inviduration](https://addons.mozilla.org/addon/inviduration): Firefox extension that shows total duration of playlists on Invidious. [Source](https://github.com/rsapkf/inviduration) / [Firefox](https://addons.mozilla.org/addon/inviduration) -- [Redirector](https://github.com/einaregilsson/Redirector): Extension for Firefox and Chromium that can manually be configured to process Inidious Redirects. For details, see the [setup page](./redirector-setup.md) to use it with Invidious. +Lists of third-party projects that use or support Invidious. + +### Browser Extensions + +| Name | Description | Links | +|---|---|---| +| [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect) | Redirects YouTube to Invidious, Twitter to Nitter, and Instagram to Bibliogram. | [Source](https://github.com/SimonBrazell/privacy-redirect) / [Firefox](https://addons.mozilla.org/addon/privacy-redirect) / [Chrome](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb) | +| [Alter](https://addons.mozilla.org/addon/alter) | Firefox extension that redirects YouTube, Twitter and Reddit to Invidious, Nitter and Teddit respectively. | [Source](https://github.com/w3bdev1/alter) / [Firefox](https://addons.mozilla.org/addon/alter) | +| [SponsorBlock](https://github.com/ajayyy/SponsorBlock) | A crowd-sourced extension to skip sponsorships. Support invidious instances if enabled in the options. | [Source](https://github.com/ajayyy/SponsorBlock) / [Firefox](https://addons.mozilla.org/addon/sponsorblock) / [Chrome](https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone) | +| [Invidious Copy URL](https://github.com/recette-lemon/invidious-copy-url) | Adds context menu options on Invidious to copy shortened YouTube URL at current time or not (Requires using developer mode in Chrome or a developer version of Firefox). | | +| [View on Invidious](https://omar.yt/722e5c15832840fe1ae8830b7c590254b9e0a45c/invidious-bookmarklet.html) | View page on Invidious (bookmarklet). | | +| [Inviduration](https://addons.mozilla.org/addon/inviduration) | Firefox extension that shows total duration of playlists on Invidious. | [Source](https://github.com/rsapkf/inviduration) / [Firefox](https://addons.mozilla.org/addon/inviduration) | +| [Redirector](https://github.com/einaregilsson/Redirector) | Extension for Firefox and Chromium that can manually be configured to process Invidious Redirects. For details, see the [setup page](./redirector-setup.md) to use it with Invidious. | ### Userscripts for Invidious. -- [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect): Redirects YouTube URLs to a deprecated instance, but can be edited to redirect to a different instance. -- [YouTube to Invidious](https://greasyfork.org/en/scripts/375264-youtube-to-invidious): Scans current page for YouTube embeds and replace with invidio.us. (Can be edited to use any preffered instance) -- [No-Youtube](https://github.com/mperez01/no-youtube): Userscript to replace youtube links to invidio.us. Can be edited to redirect to a preffered instance. -- [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player): Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel (redirects to invidio.us by default, can be edited). -- [Privacy Redirector](https://github.com/dybdeskarphet/privacy-redirector): Userscript to automatically redirect to different private frontents, including Invidious. Can be configured to redirect to specific instances of the user's choice. -- [Simple Sponsor Skipper](https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper): Userscript based on Sponsorblock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. -- [Invidious Preferences Userscript](https://github.com/MintMain21/Invidious-Preferences-Userscript) Userscript for enforcing preferences accross multiple instances, through URL Parameters, and without using browser cookies. Works in tandum with Privacy Redirector and Simple Sponsor Skipper. See [here](https://docs.invidious.io/url-parameters/) for more information about URL Parameters. -### Extensions that integrate Invidious into other programs and apps -- [UntrackMe](https://f-droid.org/en/packages/app.fedilab.nitterizeme): Android app to rewrite YouTube links to Invidious. Can optionally play videos in the app as well. -- [iPhone Redirector Shortcut](https://www.icloud.com/shortcuts/6bbf26d989cf4d07a5fe1626efbc0950): Automatically open YouTube videos in Invidious (iPhone shortcut). -- [FreshRSS Extension](https://github.com/tmiland/freshrss-invidious): A FreshRSS extension to directly embed videos from Invidious channel feeds. -- [Kodi add-on](https://github.com/TheAssassin/kodi-invidious-plugin): Watch YouTube videos in the Kodi media center, using the Invidious API. Privacy-friendly alternative to the YouTube API add-on. -- [Another Kodi add-on](https://github.com/lekma/plugin.video.invidious): Seems to have been more recently updated than the above. -- [Playlet](https://github.com/iBicha/playlet): A Roku TV Youtube app that uses Invidious as a backend. [Roku Store](https://my.roku.com/account/add?channel=PLAYLET) +| Name | Description | +|---|---| +| [Invidious Redirect](https://greasyfork.org/en/scripts/370461-invidious-redirect) | Redirects YouTube URLs to a deprecated instance, but can be edited to redirect to a different instance. | +| [YouTube to Invidious](https://greasyfork.org/en/scripts/375264-youtube-to-invidious) | Scans current page for YouTube embeds and replace with invidio.us. (Can be edited to use any preferred instance) | +| [No-Youtube](https://github.com/mperez01/no-youtube) | Userscript to replace YouTube links to invidio.us. Can be edited to redirect to a preferred instance. +| [FYTE](https://greasyfork.org/en/scripts/9252-fyte-fast-youtube-embedded-player) | Replace all YouTube embeds on a page with the video's thumbnail. Click on the thumbnail to play the video. Invidious is supported in the Options panel (redirects to invidio.us by default, can be edited). | +| [Privacy Redirector](https://github.com/dybdeskarphet/privacy-redirector) | Userscript to automatically redirect to different private frontends, including Invidious. Can be configured to redirect to specific instances of the user's choice. | +| [Simple Sponsor Skipper](https://codeberg.org/mthsk/userscripts/src/branch/master/simple-sponsor-skipper) | Userscript based on SponsorBlock that is pre-configured to work with multiple Invidious instances, but can be easily altered to use any instance desired by the user. | +| [Invidious Preferences Userscript](https://github.com/MintMain21/Invidious-Preferences-Userscript) | Userscript for enforcing preferences across multiple instances, through URL Parameters, and without using browser cookies. Works in tandem with Privacy Redirector and Simple Sponsor Skipper. See [here](https://docs.invidious.io/url-parameters/) for more information about URL Parameters. | -### Utilities for Invidious -- [Invidious-Updater (And Installer)](https://github.com/tmiland/Invidious-Updater): Automatic install and update script for Invidious. +### Extensions that Integrate Invidious into other Apps + +| Name | Description | Links | +|---|---|---| +| [UntrackMe](https://f-droid.org/en/packages/app.fedilab.nitterizeme) | Android app to rewrite YouTube links to Invidious. Can optionally play videos in the app as well. | | +| [iPhone Redirector Shortcut](https://www.icloud.com/shortcuts/6bbf26d989cf4d07a5fe1626efbc0950) | Automatically open YouTube videos in Invidious (iPhone shortcut). | | +| [FreshRSS Extension](https://github.com/tmiland/freshrss-invidious) | A FreshRSS extension to directly embed videos from Invidious channel feeds. | | +| [Kodi add-on](https://github.com/lekma/plugin.video.invidious) | Watch YouTube videos in the Kodi media center, using the Invidious API. Privacy-friendly alternative to the YouTube API add-on. | | +| [Playlet](https://github.com/iBicha/playlet) | A Roku TV YouTube app that uses Invidious as a backend. | [Roku Store](https://channelstore.roku.com/en-ca/details/840aec36f51bfe6d96cf6db9055a372a/playlet) | + +### Utilities + +| Name | Description | +|---|---| +| [Invidious-Updater (And Installer)](https://github.com/tmiland/Invidious-Updater) | Automatic install and update script for Invidious. | From dfe153c48368ac1a336b00fd0ac8ac82f94c8c59 Mon Sep 17 00:00:00 2001 From: TheFrenchGhosty Date: Mon, 10 Jul 2023 16:07:00 +0200 Subject: [PATCH 132/156] Rename redirector-setup.md to redirector.md --- docs/applications.md | 2 +- docs/index.md | 2 +- docs/{redirector-setup.md => redirector.md} | 0 mkdocs.yml | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename docs/{redirector-setup.md => redirector.md} (100%) diff --git a/docs/applications.md b/docs/applications.md index 7724940..b57a7c2 100644 --- a/docs/applications.md +++ b/docs/applications.md @@ -12,7 +12,7 @@ Lists of third-party projects that use or support Invidious. | [Invidious Copy URL](https://github.com/recette-lemon/invidious-copy-url) | Adds context menu options on Invidious to copy shortened YouTube URL at current time or not (Requires using developer mode in Chrome or a developer version of Firefox). | | | [View on Invidious](https://omar.yt/722e5c15832840fe1ae8830b7c590254b9e0a45c/invidious-bookmarklet.html) | View page on Invidious (bookmarklet). | | | [Inviduration](https://addons.mozilla.org/addon/inviduration) | Firefox extension that shows total duration of playlists on Invidious. | [Source](https://github.com/rsapkf/inviduration) / [Firefox](https://addons.mozilla.org/addon/inviduration) | -| [Redirector](https://github.com/einaregilsson/Redirector) | Extension for Firefox and Chromium that can manually be configured to process Invidious Redirects. For details, see the [setup page](./redirector-setup.md) to use it with Invidious. | +| [Redirector](https://github.com/einaregilsson/Redirector) | Extension for Firefox and Chromium that can manually be configured to process Invidious Redirects. For details, see the [setup page](./redirector.md) to use it with Invidious. | ### Userscripts for Invidious. diff --git a/docs/index.md b/docs/index.md index 6704644..8f06736 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,7 +13,7 @@ - [UserScript to always proxy video](./proxy-videos.md) - [Videos geoblocking](./geoblocking.md) - [uMatrix setup](./umatrix.md) -- [Redirector setup](./redirector-setup.md) +- [Redirector setup](./redirector.md) ## For Administrators diff --git a/docs/redirector-setup.md b/docs/redirector.md similarity index 100% rename from docs/redirector-setup.md rename to docs/redirector.md diff --git a/mkdocs.yml b/mkdocs.yml index 243aefc..256f533 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -20,7 +20,7 @@ nav: - 'proxy-videos.md' - 'geoblocking.md' - 'umatrix.md' - - 'redirector-setup.md' + - 'redirector.md' - 'For Administrators': - 'installation.md' - 'configuration.md' From ccd03a6c3e48c8aa83d02a4010833f5730d38abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:54:46 +0200 Subject: [PATCH 133/156] add new instances close #410 close #408 close #403 --- docs/instances.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 82e8d06..7cef9eb 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -52,6 +52,12 @@ * [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) +* [invidious.no-logs.com](https://invidious.no-logs.com) 🇸🇪 + +* [invidious.io.lol](https://invidious.io.lol) 🇺🇸 + +* [iv.nboeck.de](https://iv.nboeck.de) 🇫🇮 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 90cf87db6e82f34f99fd9af3048d555f565a2624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:25:50 +0200 Subject: [PATCH 134/156] Remove automated docker install (#426) --- docs/installation.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 13f53bf..57f94b0 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -12,12 +12,6 @@ Running Invidious requires at least 512MB of free RAM (so ~2G installed on the s Compiling Invidious requires at least 2.5GB of free RAM (We recommend to have at least 4GB installed). If you have less (e.g on a cheap VPS) you can setup a SWAP file or partition, so the combined amount is >= 4GB. - -## Automated Installation - -[Invidious-Updater](https://github.com/tmiland/Invidious-Updater) is a self-contained script that can automatically install and update Invidious. - - ## Docker **The Invidious docker image is only [available on Quay](https://quay.io/repository/invidious/invidious) because, unlike Docker Hub, [Quay is Free and Open Source Software](https://github.com/quay/quay/blob/master/LICENSE). This is reflected in the `docker-compose.yml` file used in this walk-through.** From 1b9fde72f0bee0ab688560c15626224533d2a84f Mon Sep 17 00:00:00 2001 From: PrivacyDevel <105459436+PrivacyDevel@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:02:13 +0000 Subject: [PATCH 135/156] Updated location of privacydev.net instances (#427) --- docs/instances.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 7cef9eb..c703a97 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -24,7 +24,7 @@ * [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 -* [invidious.privacydev.net](https://invidious.privacydev.net) 🇩🇪 +* [invidious.privacydev.net](https://invidious.privacydev.net) 🇫🇷 * [vid.priv.au](https://vid.priv.au) 🇸🇬 @@ -77,7 +77,7 @@ * [iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) 🇫🇷 (Onion of inv.odyssey346.dev) -* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇩🇪 (Onion of invidious.privacydev.net) +* [invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion](http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion) 🇫🇷 (Onion of invidious.privacydev.net) * [http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion) 🇫🇷 (Onion of invidious.projectsegfau.lt) From c070098ce27dab0935765f36ee1ef1f2e6459135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Thu, 24 Aug 2023 17:09:23 +0200 Subject: [PATCH 136/156] add new instances close #423 close #418 close #421 close #417 --- docs/instances.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index c703a97..4f018cc 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -58,6 +58,14 @@ * [iv.nboeck.de](https://iv.nboeck.de) 🇫🇮 +* [invidious.private.coffee](https://invidious.private.coffee) 🇦🇹 + +* [yt.drgnz.club](https://yt.drgnz.club) 🇨🇿 + +* [invidious.asir.dev](https://invidious.asir.dev) 🇺🇸 + +* [iv.datura.network](https://iv.datura.network) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 6eb852785400ecf9601d60ecec29a32d91f3831b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Thu, 24 Aug 2023 17:13:39 +0200 Subject: [PATCH 137/156] add back invidious.fdn.fr close #434 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 4f018cc..486298a 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -66,6 +66,8 @@ * [iv.datura.network](https://iv.datura.network) 🇩🇪 +* [invidious.fdn.fr](https://invidious.fdn.fr) 🇫🇷 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 27f19301a570c31f99cdf31a3a0907203d3dcb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Thu, 24 Aug 2023 18:10:21 +0200 Subject: [PATCH 138/156] Add message about matrix private room channel --- .github/workflows/add-instance-uptimerobot.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/add-instance-uptimerobot.yml b/.github/workflows/add-instance-uptimerobot.yml index 586e1b1..3079d35 100644 --- a/.github/workflows/add-instance-uptimerobot.yml +++ b/.github/workflows/add-instance-uptimerobot.yml @@ -73,7 +73,11 @@ jobs: ['Hello! Your instance has been added to our monitoring system: https://stats.uptimerobot.com/89VnzSKAn/' + body.monitor.id, 'You need to wait 30 days before we add your instance, this is to evaluate that your instance will keep a good uptime for one month.', '', - 'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!' + 'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!', + '', + 'Please consider joining our Matrix room for public instance maintainers by joining our Matrix room: https://matrix.to/#/#invidious:matrix.org', + 'then pinging @\unixfox, @\TheFrenchGhosty and @\SamantazFox for asking to be invited to the Matrix room.', + 'We discuss troubles managing a public instance, sharing some advices and more.' ].join('\n'); await github.rest.issues.createComment({ issue_number: context.issue.number, From 125d63bd7e88a75edfa1349e9465fba7709c155e Mon Sep 17 00:00:00 2001 From: syeopite <70992037+syeopite@users.noreply.github.com> Date: Mon, 28 Aug 2023 01:36:35 +0000 Subject: [PATCH 139/156] Update location of iv.ggtyler.dev (#438) --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 486298a..8339cd3 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -30,7 +30,7 @@ * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 -* [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇨🇦 +* [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇺🇲 * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) From d203feed441f3770703001fde1597efed7f97acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Wed, 30 Aug 2023 17:01:45 +0000 Subject: [PATCH 140/156] add anontube.lvkaszus.pl close #416 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 8339cd3..7a21805 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -68,6 +68,8 @@ * [invidious.fdn.fr](https://invidious.fdn.fr) 🇫🇷 +* [anontube.lvkaszus.pl](https://anontube.lvkaszus.pl) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From ac7e50e1b34c599dc7c3409cc7832f6f734ffeee Mon Sep 17 00:00:00 2001 From: Fijxu Date: Fri, 1 Sep 2023 04:28:14 -0400 Subject: [PATCH 141/156] Add I2P and Tor addresses for inv.zzls.xyz (#439) --- docs/instances.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 7a21805..88991e1 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -97,12 +97,16 @@ * [invidiousge2cq2qegp4vdzsfu6mvpqdf6dtcyzmqbv7yx2spvkkajad.onion](http://invidiousge2cq2qegp4vdzsfu6mvpqdf6dtcyzmqbv7yx2spvkkajad.onion) 🇸🇬 (Onion of vid.priv.au) +* [http://inv.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion](http://inv.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion) 🇨🇱 (Onion of inv.zzls.xyz) + ### I2P Eepsites: * [http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p](http://pjsfhqamc7k6htnumrvn4cwqqdoggeepj7u5viyimgnxg3gar72q.b32.i2p) 🇫🇷 (Eepsite of invidious.projectsegfau.lt) * [http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p](http://pjsfi2szfkb4guqzmfmlyq4no46fayertjrwt4h2uughccrh2lvq.b32.i2p) 🇱🇺 (Eepsite of inv.bp.projectsegfau.lt) +* [zzlsbhhfvwg3oh36tcvx4r7n6jrw7zibvyvfxqlodcwn3mfrvzuq.b32.i2p](http://zzlsbhhfvwg3oh36tcvx4r7n6jrw7zibvyvfxqlodcwn3mfrvzuq.b32.i2p) 🇨🇱 (Eepsite of inv.zzls.xyz) + ## Rules to have your instance in this list: 1. Instances MUST have been up for at least a month before it can be added to this list. From 61623ea51d47175cd227d59782a3c49c92c7404e Mon Sep 17 00:00:00 2001 From: syeopite <70992037+syeopite@users.noreply.github.com> Date: Sat, 9 Sep 2023 00:14:55 +0000 Subject: [PATCH 142/156] Update instances.md (#444) --- docs/instances.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 88991e1..1baa135 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -34,8 +34,6 @@ * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare) -* [invidious.0011.lt](https://invidious.0011.lt) 🇱🇹 - * [inv.zzls.xyz](https://inv.zzls.xyz) 🇨🇱 * [inv.tux.pizza](https://inv.tux.pizza) 🇺🇸 From 0f4f2c93a837e5c944f280b1d732fd1270baa071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sun, 10 Sep 2023 09:01:45 +0000 Subject: [PATCH 143/156] add instance close #432 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 1baa135..4cf66c1 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -68,6 +68,8 @@ * [anontube.lvkaszus.pl](https://anontube.lvkaszus.pl) 🇩🇪 +* [invidious.perennialte.ch](https://invidious.perennialte.ch) 🇦🇺 (uses Cloudflare) + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 10d33c39900245acc1ebc777d0912bb27f2a1fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 12 Sep 2023 17:26:43 +0200 Subject: [PATCH 144/156] trying to fix Invalid Unicode escape sequence --- .github/workflows/add-instance-uptimerobot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/add-instance-uptimerobot.yml b/.github/workflows/add-instance-uptimerobot.yml index 3079d35..d50b88f 100644 --- a/.github/workflows/add-instance-uptimerobot.yml +++ b/.github/workflows/add-instance-uptimerobot.yml @@ -33,7 +33,7 @@ jobs: if (issueTitleParseUrl.length !== 0) { if (issueInfo.title.includes(".onion")) { var replyComment = - ['Hello! I\'ve detected that you are requesting to add an onion URL.', + ['Hello! I have detected that you are requesting to add an onion URL.', 'Please create a pull request instead for adding your onion url as an alternative to your clearnet URL: https://github.com/iv-org/documentation/edit/master/docs/instances.md' ].join('\n'); await github.rest.issues.createComment({ @@ -76,7 +76,7 @@ jobs: 'Make sure you double checked all the mandatory checks or this will slow down the process of adding your instance!', '', 'Please consider joining our Matrix room for public instance maintainers by joining our Matrix room: https://matrix.to/#/#invidious:matrix.org', - 'then pinging @\unixfox, @\TheFrenchGhosty and @\SamantazFox for asking to be invited to the Matrix room.', + 'then pinging @ unixfox, @ TheFrenchGhosty and @ SamantazFox for asking to be invited to the Matrix room.', 'We discuss troubles managing a public instance, sharing some advices and more.' ].join('\n'); await github.rest.issues.createComment({ From 4784568a66c42d4c7acee7f2c43689f6f56b9216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Thu, 14 Sep 2023 09:36:56 +0200 Subject: [PATCH 145/156] add yt.cdaut.de close #436 --- docs/instances.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index 4cf66c1..4ce788c 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -70,6 +70,8 @@ * [invidious.perennialte.ch](https://invidious.perennialte.ch) 🇦🇺 (uses Cloudflare) +* [yt.cdaut.de](https://yt.cdaut.de) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From 7de0f8ab0542fee8fe9ce162da59682f90395781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sat, 16 Sep 2023 09:11:18 +0000 Subject: [PATCH 146/156] Update crystal supported versions https://github.com/iv-org/invidious/blob/master/.github/workflows/ci.yml#L40 --- docs/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index 57f94b0..96f6fc5 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -110,7 +110,7 @@ docker-compose up Follow the instructions for your distribution here: https://crystal-lang.org/install/ -Note: Invidious currently supports the following Crystal versions: `1.4.0` / `1.3.X` / `1.2.X` +Note: Invidious currently supports the following Crystal versions: `1.8.2` / `1.7.X` / `1.6.X` / `1.5.X` / `1.4.1`. #### Install the dependencies From 4730e406ed3dfa770ea2b381c02d8e3b9c7ee483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:07:47 +0200 Subject: [PATCH 147/156] remove inv.makerlab.tech at request https://github.com/iv-org/documentation/issues/392#issuecomment-1751637723 --- docs/instances.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 4ce788c..c4dd4ee 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -44,9 +44,7 @@ * [inv.in.projectsegfau.lt](https://inv.in.projectsegfau.lt) 🇮🇳 -* [inv.citw.lgbt](https://inv.citw.lgbt) 🇳🇱 - -* [inv.makerlab.tech](https://inv.makerlab.tech) 🇪🇸 +* [inv.citw.lgbt](https://inv.citw.lgbt) 🇳🇱 * [yt.oelrichsgarcia.de](https://yt.oelrichsgarcia.de) 🇩🇪 (uses Cloudflare) From e4a6c8507c29105a1b642f5a4dd9b75f24e70dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:24:24 +0000 Subject: [PATCH 148/156] add new instances close #421 close #442 close #437 --- docs/instances.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/instances.md b/docs/instances.md index c4dd4ee..284dcfa 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -70,6 +70,12 @@ * [yt.cdaut.de](https://yt.cdaut.de) 🇩🇪 +* [invidious.drgns.space](https://invidious.drgns.space) 🇺🇸 + +* [inv.us.projectsegfau.lt](https://inv.us.projectsegfau.lt) 🇺🇸 + +* [invidious.einfachzocken.eu](https://invidious.einfachzocken.eu) 🇩🇪 + ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From cb998e69ceeebf648c657e2e68d43523d0b6af7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:25:10 +0000 Subject: [PATCH 149/156] correction for invidious.einfachzocken.eu --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index 284dcfa..081105f 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -74,7 +74,7 @@ * [inv.us.projectsegfau.lt](https://inv.us.projectsegfau.lt) 🇺🇸 -* [invidious.einfachzocken.eu](https://invidious.einfachzocken.eu) 🇩🇪 +* [invidious.einfachzocken.eu](https://invidious.einfachzocken.eu) 🇩🇪 (uses Cloudflare) ### Tor Onion Services: * [c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion](http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion) 🇫🇮 (Onion of invidious.snopyta.org) From fac8a8d8cb35f47e2a799f6847c71b7f957c32b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:30:40 +0000 Subject: [PATCH 150/156] remove dead instances --- docs/instances.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/instances.md b/docs/instances.md index 081105f..a8e8046 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -18,12 +18,8 @@ * [invidious.projectsegfau.lt](https://invidious.projectsegfau.lt) 🇫🇷 [inv.bp.projectsegfau.lt](https://inv.bp.projectsegfau.lt) 🇱🇺 -* [invidious.tiekoetter.com](https://invidious.tiekoetter.com) 🇩🇪 - * [invidious.slipfox.xyz](https://invidious.slipfox.xyz) 🇺🇸 -* [inv.pistasjis.net](https://inv.pistasjis.net) 🇫🇷 - * [invidious.privacydev.net](https://invidious.privacydev.net) 🇫🇷 * [vid.priv.au](https://vid.priv.au) 🇸🇬 From 9202f1724869fec0c25275c0d3a15a6279638f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sat, 14 Oct 2023 20:59:53 +0000 Subject: [PATCH 151/156] Add disk space to hardware requirements --- docs/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index 96f6fc5..4dae24b 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -7,7 +7,7 @@ Note: Any [PaaS](https://en.wikipedia.org/wiki/Platform_as_a_service) or [SaaS]( ## Hardware requirements -Running Invidious requires at least 512MB of free RAM (so ~2G installed on the system), as long as it is restarted regularly, as recommended in the post-install configuration. Public instances should ideally have at least 4GB of RAM, 2vCPU, a 200 mbps link and 20TB of traffic (no data cap/unlimited traffic is preferred). +Running Invidious requires at least 20GB disk space, 512MB of free RAM (so ~2G installed on the system), as long as it is restarted regularly, as recommended in the post-install configuration. Public instances should ideally have at least 60G disk space, 4GB of RAM, 2vCPU, a 200 mbps link and 20TB of traffic (no data cap/unlimited traffic is preferred). Compiling Invidious requires at least 2.5GB of free RAM (We recommend to have at least 4GB installed). If you have less (e.g on a cheap VPS) you can setup a SWAP file or partition, so the combined amount is >= 4GB. From e377f84cf202e9d7c16018593fa8d4b09b8c9796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sat, 14 Oct 2023 22:27:48 +0000 Subject: [PATCH 152/156] update mention about unixfox a better explanation about why this author is mentioned --- docs/hide-instance-behind-proxy-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hide-instance-behind-proxy-server.md b/docs/hide-instance-behind-proxy-server.md index f781890..372ac47 100644 --- a/docs/hide-instance-behind-proxy-server.md +++ b/docs/hide-instance-behind-proxy-server.md @@ -1,6 +1,6 @@ # Hiding Invidious instance behind proxy servers (for escaping DMCA requests) -This tutorial has been writen by [unixfox](https://github.com/unixfox), owner of [yewtu.be](https://yewtu.be/) +This tutorial has been written by [unixfox](https://github.com/unixfox), owner of [yewtu.be](https://yewtu.be/). He is better suited when looking for help about this tutorial. ## Synopsis From e1cfaea66b296b04e5e417e660d554442b0b73a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sun, 15 Oct 2023 00:41:12 +0200 Subject: [PATCH 153/156] add documentation for ipv6 rotator (#450) * add documentation for ipv6 rotator * improve layout for mkdocs * improve based on recommendations * add back mention about unixfox * remove oracle and aws from the list they do not even support the ipv6 rotator anyway * fix grammar * grammar fix x2 * fix grammar x3 --- docs/index.md | 1 + docs/ipv6-rotator.md | 119 +++++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 121 insertions(+) create mode 100644 docs/ipv6-rotator.md diff --git a/docs/index.md b/docs/index.md index 8f06736..b188e47 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,6 +25,7 @@ - [Database maintenance](./db-maintenance.md) - [Handling takedown notices](./takedown.md) - [Hiding Invidious instance behind proxy servers (for escaping DMCA requests)](./hide-instance-behind-proxy-server.md) +- [IPv6 rotator (for escaping YouTube blocking)](./ipv6-rotator.md) - [CAPTCHA bug on Debian and Ubuntu](./captcha-bug.md) - [Anti-Captcha setup](./anti-captcha.md) - [Reset user password](./reset-password.md) diff --git a/docs/ipv6-rotator.md b/docs/ipv6-rotator.md new file mode 100644 index 0000000..890e3b0 --- /dev/null +++ b/docs/ipv6-rotator.md @@ -0,0 +1,119 @@ +# Rotate your IPv6 address for escaping YouTube blocking + +This tutorial has been written by [unixfox](https://github.com/unixfox), owner of [yewtu.be](https://yewtu.be/). He is better suited when looking for help about this tutorial. + +## Synopsis + +YouTube has started to periodically block the public Invidious instances since the start of June 2023 ([iv-org/invidious/issues/3872](https://github.com/iv-org/invidious/issues/3872)) and they have become more aggressive about it since the start of August 2023 ([iv-org/invidious/issues/4045](https://github.com/iv-org/invidious/issues/4045)). + +Thanks to IPv6 you can easily escape this block because there are many addresses in a single /64 IPv6 range. (18,446,744,073,709,551,616 addresses to be precise) + +This tutorial will explain how to automatically and periodically rotate your IPv6 address. Also some notes about how to have IPv6 in case your provider does not offer it. + +## Requirements +#### 1) IPv6 support on your server +##### Testing +You can easily find out if you have IPv6 by executing the command `curl -m 5 ipv6.icanhazip.com`. +If you do not have any errors, then congratulation, you can continue to the second requirement! + +If you do have an error (timeout or no route to host), then you will need to enable IPv6 support on your server. +Depending on your provider and if it does support IPv6, you may have to configure your server for IPv6. Check the documentation of your provider. + +##### Other solutions if you do not have IPv6 support + +If your provider does not support IPv6 then you can either switch to another provider that support IPv6. +There are many today that do support it, here is a non-exhaustive list of them (**this is not recommendation, just a list of the popular providers that support IPv6**): +Hetzner, BuyVM, Scaleway, OVH, DigitalOcean, Vultr, Incognet, Netcup and more. Larger list: https://www.serverhunter.com/#query=ips%3Aipv6 +Nowadays, it's hard to find one that does not support IPv6. + +The alternative, if you do not want to switch provider, is to use an IPv6 tunnelbroker, it allows to get IPv6 connectivity using another server. + +This website lists all the free and paid existing tunnelbrokers: https://tunnelbroker.services/. **We do not recommend running a public instance on a free tunnelbroker as this would put a lot of strain on their network because video streaming consumes a lot of bandwidth.** +You can also use an external server for acting as a tunnelbroker. +All of this is out of scope of this tutorial, please consult the internet for tutorials. + +#### 2) System packages requirement +Please install: + +- python requests library. + Debian/Ubuntu: `sudo apt install python3-requests` + RHEL/CentOS/Fedora: `sudo dnf install python-requests` + Other Linux distributions: `sudo yourpackagemanager install python-requests` +- python pyroute2 library. + Debian/Ubuntu: `sudo apt install python3-pyroute2` + RHEL/CentOS/Fedora: `sudo dnf install python-pyroute2` + Other Linux distributions: `sudo yourpackagemanager install python-pyroute2` + +## Configure Invidious for IPv6 +### If you are running Invidious outside of Docker or using something else than Docker (K8s) +You probably have nothing to do! + +Except checking in your config.yml if you do not have this line set: +``` +force_resolve: ipv4 +``` + +Or if you are on Kubernetes, check that your pods have IPv6 connectivity. But you probably already know that if you are using Kubernetes. + +### If you are running Invidious in Docker +Note: Make sure you are running a recent version of Docker if you are running into IPv6 issues. + +1. Follow the steps 1 to 3 on the official documentation for Docker: https://docs.docker.com/config/daemon/ipv6/ +2. In your docker-compose file of invidious. Add these lines at the end of your docker-compose + + ```yaml + networks: + default: + enable_ipv6: true + ipam: + config: + - subnet: fd01:db8:a::/64 + gateway: fd01:db8:a::1 + + ``` + +3. Bring down your docker composition and bring it back up for recreating the network: + + ``` + docker compose down + docker compose up -d + ``` + +To check if everything went well then do `docker compose exec invidious ping -c 1 ipv6.icanhazip.com` and if you do not get any error then you can jump to the next step. + +## Configure the IPv6 rotator (made by Invidious team) +This tool was developed by the Invidious team, and it's the official tool for rotating your IPv6 address on Invidious: https://github.com/iv-org/smart-ipv6-rotator. +It may be used on other projects that depend on YouTube and/or Google (example: Piped or SearXNG). + +1. Make sure you have installed all the python libraries from [the "requirements"](#requirements). +2. Clone the repository somewhere that you like (not inside the invidious directory): + + ``` + git clone https://github.com/iv-org/smart-ipv6-rotator.git + ``` +3. Find the IPv6 subnet of your server, usually it's written on your provider website. + But you can easily find it using this tool: http://www.gestioip.net/cgi-bin/subnet_calculator.cgi. + Enter the main IPv6 address, select IPv6 and change the prefix length only if it's not a /64. + Use the command `ip a` to get the detail of your IPv6 network configuration. +4. Run the script once like this (don't use sudo if you are already root): + + ``` + sudo python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 + ``` +5. If everything went well, then configure a cron to periodically rotate your IPv6 range. Twice a day (noon and midnight) is enough for YouTube servers. Also at the reboot of the server! + Example crontab (`crontab -e -u root`): + + ``` + @reboot sleep 30s && python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 + 0 */12 * * * python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 + ``` + + The `sleep` command is used in case your network takes too much time time to be ready. + 6. That's it! + +If the script does not work for you, it could be that: + +- Your provider does not allow you to assign any arbitrary IPv6 address, it's common for cloud providers like AWS, Oracle Cloud, Google Cloud where you need to manually assign the IPv6 address from the panel. +- You have not correctly set your IPv6 subnet range. In such case, please ask for help on IRC or Matrix or in a GitHub issue. + +If you find any other issues, please open a bug report there: https://github.com/iv-org/smart-ipv6-rotator/issues \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 256f533..2e5ee63 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,6 +30,7 @@ nav: - 'db-maintenance.md' - 'takedown.md' - 'hide-instance-behind-proxy-server.md' + - 'ipv6-rotator.md' - 'captcha-bug.md' - 'anti-captcha.md' - 'reset-password.md' From 6f18258890ecfdc6e9ff7cc0fd4971fbeae9e2ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milien=20=28perso=29?= <4016501+unixfox@users.noreply.github.com> Date: Sat, 14 Oct 2023 23:37:38 +0000 Subject: [PATCH 154/156] add note about wireguard as ipv6 tunnel --- docs/ipv6-rotator.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ipv6-rotator.md b/docs/ipv6-rotator.md index 890e3b0..93d6919 100644 --- a/docs/ipv6-rotator.md +++ b/docs/ipv6-rotator.md @@ -29,7 +29,7 @@ Nowadays, it's hard to find one that does not support IPv6. The alternative, if you do not want to switch provider, is to use an IPv6 tunnelbroker, it allows to get IPv6 connectivity using another server. This website lists all the free and paid existing tunnelbrokers: https://tunnelbroker.services/. **We do not recommend running a public instance on a free tunnelbroker as this would put a lot of strain on their network because video streaming consumes a lot of bandwidth.** -You can also use an external server for acting as a tunnelbroker. +You can also use an external server for acting as an IPV6 tunnel. Wireguard is perfectly suited for that. All of this is out of scope of this tutorial, please consult the internet for tutorials. #### 2) System packages requirement @@ -116,4 +116,4 @@ If the script does not work for you, it could be that: - Your provider does not allow you to assign any arbitrary IPv6 address, it's common for cloud providers like AWS, Oracle Cloud, Google Cloud where you need to manually assign the IPv6 address from the panel. - You have not correctly set your IPv6 subnet range. In such case, please ask for help on IRC or Matrix or in a GitHub issue. -If you find any other issues, please open a bug report there: https://github.com/iv-org/smart-ipv6-rotator/issues \ No newline at end of file +If you find any other issues, please open a bug report there: https://github.com/iv-org/smart-ipv6-rotator/issues From 0f7666daf1a49bfec2d67200486dc05fecb4e96c Mon Sep 17 00:00:00 2001 From: Emilien Devos <4016501+unixfox@users.noreply.github.com> Date: Sun, 15 Oct 2023 11:11:20 +0200 Subject: [PATCH 155/156] improve doc about ipv6 rotator --- docs/ipv6-rotator.md | 49 ++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/docs/ipv6-rotator.md b/docs/ipv6-rotator.md index 93d6919..0aa4fa9 100644 --- a/docs/ipv6-rotator.md +++ b/docs/ipv6-rotator.md @@ -6,30 +6,38 @@ This tutorial has been written by [unixfox](https://github.com/unixfox), owner o YouTube has started to periodically block the public Invidious instances since the start of June 2023 ([iv-org/invidious/issues/3872](https://github.com/iv-org/invidious/issues/3872)) and they have become more aggressive about it since the start of August 2023 ([iv-org/invidious/issues/4045](https://github.com/iv-org/invidious/issues/4045)). -Thanks to IPv6 you can easily escape this block because there are many addresses in a single /64 IPv6 range. (18,446,744,073,709,551,616 addresses to be precise) +Thanks to IPv6 you can easily escape this block because there are many IP addresses in a single /64 IPv6 range. (18,446,744,073,709,551,616 IP addresses to be precise) This tutorial will explain how to automatically and periodically rotate your IPv6 address. Also some notes about how to have IPv6 in case your provider does not offer it. ## Requirements #### 1) IPv6 support on your server ##### Testing -You can easily find out if you have IPv6 by executing the command `curl -m 5 ipv6.icanhazip.com`. -If you do not have any errors, then congratulation, you can continue to the second requirement! +You can easily find out if you have IPv6 by executing the command: +``` +curl -m 5 ipv6.icanhazip.com +``` +If you do not have any errors, then congratulation, you can continue to [the second requirement](#2-system-packages-requirement)! If you do have an error (timeout or no route to host), then you will need to enable IPv6 support on your server. Depending on your provider and if it does support IPv6, you may have to configure your server for IPv6. Check the documentation of your provider. ##### Other solutions if you do not have IPv6 support +###### 1) Switch to another provider + If your provider does not support IPv6 then you can either switch to another provider that support IPv6. There are many today that do support it, here is a non-exhaustive list of them (**this is not recommendation, just a list of the popular providers that support IPv6**): -Hetzner, BuyVM, Scaleway, OVH, DigitalOcean, Vultr, Incognet, Netcup and more. Larger list: https://www.serverhunter.com/#query=ips%3Aipv6 -Nowadays, it's hard to find one that does not support IPv6. +Hetzner, BuyVM, Scaleway, OVH, DigitalOcean, Vultr, Incognet, Netcup and more. +Larger list: https://www.serverhunter.com/#query=ips%3Aipv6 + +###### 2) Use an IPv6 tunnelbroker or make one yourself The alternative, if you do not want to switch provider, is to use an IPv6 tunnelbroker, it allows to get IPv6 connectivity using another server. This website lists all the free and paid existing tunnelbrokers: https://tunnelbroker.services/. **We do not recommend running a public instance on a free tunnelbroker as this would put a lot of strain on their network because video streaming consumes a lot of bandwidth.** -You can also use an external server for acting as an IPV6 tunnel. Wireguard is perfectly suited for that. + +You can also use an external server (from another provider that do support IPv6) for acting as an IPV6 tunnel for your main server. Wireguard is perfectly suited for that. All of this is out of scope of this tutorial, please consult the internet for tutorials. #### 2) System packages requirement @@ -48,8 +56,8 @@ Please install: ### If you are running Invidious outside of Docker or using something else than Docker (K8s) You probably have nothing to do! -Except checking in your config.yml if you do not have this line set: -``` +Except checking in your config.yml if you do not have this line set, if so remove it: +```yaml force_resolve: ipv4 ``` @@ -60,7 +68,6 @@ Note: Make sure you are running a recent version of Docker if you are running in 1. Follow the steps 1 to 3 on the official documentation for Docker: https://docs.docker.com/config/daemon/ipv6/ 2. In your docker-compose file of invidious. Add these lines at the end of your docker-compose - ```yaml networks: default: @@ -71,15 +78,20 @@ Note: Make sure you are running a recent version of Docker if you are running in gateway: fd01:db8:a::1 ``` - 3. Bring down your docker composition and bring it back up for recreating the network: - ``` docker compose down docker compose up -d ``` - -To check if everything went well then do `docker compose exec invidious ping -c 1 ipv6.icanhazip.com` and if you do not get any error then you can jump to the next step. +4. To check if everything went well then do: + ``` + docker compose exec invidious ping -c 1 ipv6.icanhazip.com + ``` + If you do not get any error then you can jump to the next step. +5. **Finally**, check if you do not have this line configured in your `config.yml`, if so remove it: + ```yaml + force_resolve: ipv4 + ``` ## Configure the IPv6 rotator (made by Invidious team) This tool was developed by the Invidious team, and it's the official tool for rotating your IPv6 address on Invidious: https://github.com/iv-org/smart-ipv6-rotator. @@ -87,7 +99,6 @@ It may be used on other projects that depend on YouTube and/or Google (example: 1. Make sure you have installed all the python libraries from [the "requirements"](#requirements). 2. Clone the repository somewhere that you like (not inside the invidious directory): - ``` git clone https://github.com/iv-org/smart-ipv6-rotator.git ``` @@ -96,20 +107,18 @@ It may be used on other projects that depend on YouTube and/or Google (example: Enter the main IPv6 address, select IPv6 and change the prefix length only if it's not a /64. Use the command `ip a` to get the detail of your IPv6 network configuration. 4. Run the script once like this (don't use sudo if you are already root): - ``` sudo python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 ``` 5. If everything went well, then configure a cron to periodically rotate your IPv6 range. Twice a day (noon and midnight) is enough for YouTube servers. Also at the reboot of the server! Example crontab (`crontab -e -u root`): - ``` - @reboot sleep 30s && python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 - 0 */12 * * * python smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 + @reboot sleep 30s && python /path/to/the/script/smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 + 0 */12 * * * python /path/to/the/script/smart-ipv6-rotator.py run --ipv6range=YOURIPV6SUBNET/64 ``` - The `sleep` command is used in case your network takes too much time time to be ready. - 6. That's it! + +That's it! If the script does not work for you, it could be that: From 87a8eaae93990b7ea5f6626148fa429119d06823 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Mon, 16 Oct 2023 16:07:05 +0000 Subject: [PATCH 156/156] Fix flag of instance iv.ggtyler.dev --- docs/instances.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/instances.md b/docs/instances.md index a8e8046..230b899 100644 --- a/docs/instances.md +++ b/docs/instances.md @@ -26,7 +26,7 @@ * [iv.melmac.space](https://iv.melmac.space) 🇩🇪 -* [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇺🇲 +* [iv.ggtyler.dev](https://iv.ggtyler.dev) 🇺🇸 * [invidious.lunar.icu](https://invidious.lunar.icu) 🇩🇪 (uses Cloudflare)