Skip to content

Invidious is an alternative front-end to YouTube. This is catspeed fork with patches applied. This is a mirror.

License

Notifications You must be signed in to change notification settings

catspeed-cc/invidious

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Invidious logo

Invidious

License: AGPLv3 Build Status GitHub commits GitHub issues GitHub pull requests Translation Status Awesome Humane Tech

An open source alternative front-end to YouTube

Website  •  Instances list  •  FAQ  •  Documentation  •  Contribute  •  Donate

Donate to catspeed.cc  •  Get ProtonVPN
Chat with us:
Matrix Libera.chat (IRC)
Fediverse: @invidious@social.tchncs.de
E-mail

Screenshots

Player Preferences Subscriptions

Features

Patches

  • revert d9df90b5e3ab6f738907c1bfaf96f0407368d842
  • add redis patch
  • add proxy patch
  • sig helper reconnect patch
  • uptime status (mooleshacat)
  • loadavg status (mooleshacat)
  • token monitor patch (mooleshacat)
  • token updater scripts (mooleshacat)
  • enable/disable catspeed branding (mooleshacat)
  • enable/disable catspeed donate link (mooleshacat)
  • enable/disable invidious donate link (mooleshacat)
  • custom status page link (mooleshacat)
  • custom freetube help link (mooleshacat)
  • custom donation link (mooleshacat)

User features

  • Lightweight
  • No ads
  • No tracking
  • No JavaScript required
  • Light/Dark themes
  • Customizable homepage
  • Subscriptions independent from Google
  • Notifications for all subscribed channels
  • Audio-only mode (with background play on mobile)
  • Support for Reddit comments
  • Available in many languages, thanks to our translators

Data import/export

  • Import subscriptions from YouTube, NewPipe and Freetube
  • Import watch history from YouTube and NewPipe
  • Export subscriptions to NewPipe and Freetube
  • Import/Export Invidious user data

Technical features

  • Embedded video support
  • Developer API
  • Does not use official YouTube APIs
  • No Contributor License Agreement (CLA)

Support

Quick start

Using invidious:

Hosting invidious:

  • You will need a default redis install apt install -y redis-server
  • You still need postgresql
  • You still need sighelper
  • You still need to figure out how to update the tokens in config file (with bash script or otherwise)
  • Invidious will automatically reload the tokens from the config file every 1 minute
  • Follow the installation instructions

Notice to instance owners:

It appears the working solution currently is to use:

  • sig helper
  • po_token & visitor_data
  • a VPN proxy (privoxy, proton-privoxy, etc.)

I personally use proton VPN, you can get it along with your email here: https://pr.tn/ref/04PN5S3WMGBG - if you want VPN only you can try to get it there or just go to https://protonvpn.com . You can get a working proton-privoxy from https://github.com/catspeed-cc/proton-privoxy .

I use one invidious instance, one sig helper, and one proton-privoxy per core. Each connection to nginx is routed to the least connected backend (currently I have 4) . If you only have 1 core, use 2 processes so you can restart one at a time, minimizing downtime. I hope this is helpful to instance owners having troubles.

Public and private instance owners: if you need help with anything, create an issue ticket here: https://github.com/catspeed-cc/invidious/issues - I do not mind, I will try and help best I can.

inv_sig_helper notes

You will need an installation of sig helper. https://github.com/catspeed-cc/inv_sig_helper or https://github.com/iv-org/inv_sig_helper will do fine. I personally set up miltiple sig helpers, one for each process. Sometimes it will crash and you need to make a crontab entry to restart inv_sig_helper and invidious. You will notice the processer usage and memory usage spike now and then. You can control that with service file cpu limits.

redis patch notes

You will need a default installation of redis-server apt install -y redis-server

You still need postgresql. If you've followed the installation instructions it should still be there. Do not uninstall it.

proxy patch notes

There is proxy support in this version. You may use privoxy, or any proxy. If you have proton vpn you can use https://github.com/catspeed-cc/proton-privoxy. The walterl fork https://github.com/walterl/proton-privoxy does not have a line in the config increasing the max connections or an installer script so maybe use mine.

Keep in mind especially on ProtonVPN if you restart a container, you will temporarily have 1 extra connection. So if you have 10 connections allowed, I would keep a few extra available in case a container needs restarting. I am not sure how long it takes for the stale connection to fix itself.

Restarting container (or changing servers) more than 1 time per hour can cause problems. Especially if you use 4-6 connections/containers.

I'll just leave this here https://pr.tn/ref/04PN5S3WMGBG

uptime & loadavg status notes

This branch has the uptime & loadavg patch from myself (mooleshacat) which if enabled in the config, will show the uptime and/or loadavg on the page. Please note, if everyone can see your uptime or loadavg, so could a theoretical attacker. This may or may not be a good idea, you be the judge.

branding, status link, freetube help link & donation link notes

You can change in the config:

  • enable/disable catspeed branding
  • enable/disable catspeed donation link (please think of cat :3c)
  • enable/disable invidious donation link (please ... invidious :3c)
  • enable/disable custom donation link
  • custom donation link text & url
  • custom status page link text & url
  • custom freetube help page link text & url

You need to restart the service for these to take effect.

tokenmon patch notes (po_token and visitor_data)

This branch has the token monitor patch from myself (mooleshacat) which if not disabled in config file will check every 1 minute your config file for updated tokens. Now all you have to do is make a bash script that updates the tokens in the config file and a cronjob to execute it at the desired interval. No longer do you have to restart invidious service for the tokens to update.

This patch is a temporary workaround until inv_sig_helper itself can get the tokens for us. unixfox (invidious dev) raised this idea to techmetx11 (inv_sig_helper dev) and they are working on an implementation that will eventually make this patch useless. This is OK, as it is only a patch and that setup would be better performance wise than my current implementations. You can read about it here iv-org/inv_sig_helper#10

token updater script notes (po_token and visitor_data)

This branch now has the token updater script. You can install it by:

  • cd scripts
  • Install dependencies ./install-update-tokens-cron-deps.sh (git, wget, curl, nvm)
  • Test run ./update-tokens-cron.sh "/path/to/invidious/config.yml" "" ""
  • Test run with restart service ./update-tokens-cron.sh "/path/to/invidious/config.yml" "invidious-service-1" ""
  • Test run with proxy ./update-tokens-cron.sh "/path/to/invidious/config.yml" "" "http://127.0.0.1:8001"
  • Set up crontab entries for each config file you wish to update:
    # If you are using catspeed fork with tokenmon enabled, leave service name blank.
    # Enter your path to config.yml and proxy information. Set desired interval.
    #
    */5 * * * * /path/to/invidious/scripts/update-tokens-cron.sh "/path/to/invidious/config.yml" "" "http://127.0.0.1:8001"
    

gitea.catspeed.cc

You may have noticed the repository on GitHub is now a mirror of https://gitea.catspeed.cc/catspeed-cc/invidious. The repository is updated every 60 minutes if my virtual machine is on and there are changes. There is no need to clone the repository at gitea.catspeed.cc.

For support, you can not submit any tickets on github as I've closed the issue tickets page. You can however create an account and submit an issue ticket here https://gitea.catspeed.cc/catspeed-cc/invidious/issues

If you wish to fork you can fork on github, but in order to submit any PR to me you would need to fork the repository on https://gitea.catspeed.cc/catspeed-cc/invidious

upgrading

So you noticed some recent commits to master, how do you update?

  • Go into the git repo directory
  • Checkout the version you want git checkout master
  • Pull the new changes git pull
  • Make the binary make -j<numcores> (replace with your number of cores minus 1)
  • If the binary exists in a different location, copy the new one over top of it
  • Backup your existing config file
  • Either re-copy the config.example.yml (recommended) or carefully look for the new options and add them to your config.yml (not recommended)

Documentation

The full documentation can be accessed online at https://docs.invidious.io/

The documentation's source code is available in this repository: https://github.com/iv-org/documentation

Extensions

We highly recommend the use of Privacy Redirect, a browser extension that automatically redirects Youtube URLs to any Invidious instance and replaces embedded youtube videos on other websites with invidious.

The documentation contains a list of browser extensions that we recommended to use along with Invidious.

You can read more here: https://docs.invidious.io/applications/

Contribute

Code

  1. Fork it ( https://github.com/iv-org/invidious/fork ).
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Stage your files (git add .).
  4. Commit your changes (git commit -am 'Add some feature').
  5. Push to the branch (git push origin my-new-feature).
  6. Create a new pull request ( https://github.com/iv-org/invidious/compare ).

Translations

We use Weblate to manage Invidious translations.

You can suggest new translations and/or correction here: https://hosted.weblate.org/engage/invidious/.

Creating an account is not required, but recommended, especially if you want to contribute regularly. Weblate also allows you to log-in with major SSO providers like Github, Gitlab, BitBucket, Google, ...

Projects using Invidious

A list of projects and extensions for or utilizing Invidious can be found in the documentation: https://docs.invidious.io/applications/

Liability

We take no responsibility for the use of our tool, or external instances provided by third parties. We strongly recommend you abide by the valid official regulations in your country. Furthermore, we refuse liability for any inappropriate use of Invidious, such as illegal downloading. This tool is provided to you in the spirit of free, open software.

You may view the LICENSE in which this software is provided to you here.

  1. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

About

Invidious is an alternative front-end to YouTube. This is catspeed fork with patches applied. This is a mirror.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Crystal 73.2%
  • HTML 14.6%
  • JavaScript 7.8%
  • CSS 2.5%
  • Shell 1.5%
  • Makefile 0.2%
  • Dockerfile 0.2%