Invidious is an open source alternative front-end to youtube

Screenshots

PlayerPreferencesSubscriptions

Features

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 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)

Quick start

Using invidious:

  • Select a public instance from the list and start watching videos right now!

Hosting invidious:

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 replacesembedded 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

  • FreeTube: A libre software YouTube app for privacy.
  • CloudTube: A JavaScript-rich alternate YouTube player.
  • PeerTubeify: On YouTube, displays a link to the same video on PeerTube, if it exists.
  • MusicPiped: A material design music player that streams music from YouTube.
  • HoloPlay: Funny Android application connecting on Invidious API’s with search, playlists and favorites.
  • WatchTube: Powerful YouTube client for Apple Watch.
  • Yattee: Alternative YouTube frontend for iPhone, iPad, Mac and Apple TV.
  • TubiTui: A lightweight, libre, TUI-based YouTube client.
  • Ytfzf: A posix script to find and watch youtube videos from the terminal. (Without API)

Liability

We take no responsibility for the use of our tool, or external instancesprovided by third parties. We strongly recommend you abide by the validofficial regulations in your country. Furthermore, we refuse liabilityfor 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 WRITINGWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYSTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANYGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THEUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OFDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRDPARTIES 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 OFSUCH DAMAGES.

invidious

Invidious is an alternative front-end to YouTube, Invidious does not use the official YouTube API, instead it parses the source code of the YouTube site to get the necessary information (such as projects like youtube-dl and NewPipe.

While processing most user requests through the server it is installed on, which positively affects users. The project code is written in the Crystal programming language, uses the PostgreSQL DBMS and is distributed under the AGPLv3 + license.

Invidious indeed is analogous to the rather popular earlier web service HookTube , whose author, in July last year (a week after Invidious was announced), received a warning letter from Google about his violation of the YouTube API terms of use and was forced to stop “Normal” work of your service.

The main purpose of HookTube was to send user requests to Google’s servers (YouTube), which, although it improved the privacy of users and also allowed them to view and download videos (including those with geo-restrictions, for example).

Invidious is currently on a monthly release cycle y is intended to provide administrators of their own Invidious instances with more or less relevant and stable source code enhancements.

Invidious Features

invidious It allows users to watch YouTube videos without advertising and without Google tracking.
At this point, the Invidious API uses the FreeTube app, MusicPiped music player, and the CloudTube website.

Fedora-invidious

Furthermore, the possibility of importing / exporting subscriptions in Invidious is also highlighted (including NewPipe format), browsing history and settings. RSS support for YouTube feeds and custom feeds.

As well as the ability to manage subscriptions, to show only unvisited videos and the most recent videos, delivery of notifications about new videos, import of subscriptions from YouTube.
Another pretty cool feature of Invidious is the ability to embed Invidious videos on other sites’ pages. Both directly and from YouTube (using a script).

It is also noteworthy that Invidious provides its own API for developers. Of the other features that can be highlighted in this front-end we find:

  • Audio only mode (no need to keep window open on mobile)
  • Free software (AGPLv3 license)
  • In Invidious there are no ads or user tracking
  • No need to create a Google account to save subscriptions
  • Lightweight (homepage is ~ 4KB compressed)
  • Dark mode
  • Integrated stand
  • Set the default player options (speed, quality, autoplay, loop).
  • The ability to view the video without including JavaScript
  • Support for Reddit comments instead of YT comments
  • Doesn’t use any of YouTube’s official APIs
  • Bypass blocking in case the video is not available for the user’s country
  • Developer API

Those interested in trying Invidious should know whate can visit the web page where the service is installed the link is this.

Or they can download the code from the front-end and mount it personally on a server.

How to install Invidious?

For those interested in mounting this front-end on a server or on their system on their personal computer.
But before it is necessary to have some dependencies necessary for the operation of Invidious, so we have to install them first.

If they are Users of Arch Linux, Manjaro, Antergos or any other derivative of Arch linux should open a terminal and type the following:

sudo pacman -S shards crystal imagemagick librsvg postgresql

In the case of those who are users of Debian, Ubuntu or any derivative of these, we will type the following:
curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash
curl -sL "https://keybase.io/crystal/pgp_keys.asc" | sudo apt-key add -
echo "deb https://dist.crystal-lang.org/apt crystal main" | sudo tee /etc/apt/sources.list.d/crystal.list
sudo apt-get update
sudo apt install crystal libssl-dev libxml2-dev libyaml-dev libgmp-dev libreadline-dev librsvg2-dev postgresql imagemagick libsqlite3-dev

Done this now we are going to download the Invidious installer script:
wget https://github.com/tmiland/Invidious-Updater/raw/master/invidious_update.sh
sudo chmod +x invidious_update.sh
sudo ./invidious_update.sh

    Overview of alternative open source front-ends for popular internet platforms (e.g. YouTube, Twitter, etc.)

  • Invidious: Invidious is an alternative front-end to YouTube – Lightweight, no ads, no tracking, no JavaScript required

    • Home page: https://invidious.io
    • Invidious instances: https://github.com/iv-org/documentation/blob/master/docs/instances.md
    • Invidious instances API: https://api.invidious.io
    • Installation guide for self-hosting: https://docs.invidious.io/Installation.md
  • Piped: An alternative privacy-friendly YouTube frontend which is efficient by design – Lightweight, no ads, no tracking

    • Official instance: https://piped.kavin.rocks
    • List of public instances: https://github.com/TeamPiped/Piped/wiki/Instances
    • Installation guide for self-hosting: https://github.com/TeamPiped/Documentation/blob/main/content/docs/self-hosting/index.md
  • CloudTube: Alternative front-end for Invidious

    • Official instance: https://tube.cadence.moe
    • Installation guide for self-hosting: https://git.sr.ht/~cadence/tube-docs/tree/main/item/docs/cloudtube/Installing%20CloudTube.md
  • YouTube.js: Full-featured wrapper around the Innertube API, which is what YouTube itself uses

  • FreeTube: Open source YouTube desktop player for privacy on Windows, Mac and Linux

  • Invuedious: An alternative frontend for invidious built with vue.js

    • Official instance: https://bocchilorenzo.github.io/invuedious/
  • Youtube-viewer: Lightweight YouTube client for Linux

  • pipe-viewer: A lightweight application (fork of straw-viewer) for searching and playing videos from YouTube.

  • Invidious-viewer: Python application to watch YouTube videos through the Invidious API, in the terminal (requires MPV player and libmpv.so, provided by Linux distro)

  • NewPipe: A libre lightweight streaming front-end for Android

  • Youtube-dl: Command-line program to download videos from YouTube.com and other video sites

  • OpenVideoDownloader aka jely2002/youtube-dl-gui: A cross-platform GUI for youtube-dl made in Electron and node.js

  • ytdl-gui: A simple-to-use, cross-platform graphical interface for youtube-dl

  • Alltube: Web GUI for youtube-dl

  • Vividl: Modern Windows GUI for youtube-dl

  • Tartube: A GUI front-end for youtube-dl, partly based on youtube-dl-gui and written in Python 3 / Gtk 3

  • ytmdl: A simple app to get songs from YouTube in mp3 format with artist name, album name etc from sources like iTunes, LastFM, Deezer, Gaana etc.

  • Plumber: Local and remote video trimmer, can trim parts of video without downloading whole video, utilizes youtube-dl, allows conversion to GIFs

  • ViewTube: An alternative front-end for YouTube, written in Vue.js, uses Plyr video player; supports SponsorBlock, multiple Invidious instances support, chapters

  • youtube-local: Browser-based client for watching Youtube anonymously and with greater page performance

  • yt-local: Browser-based client for watching Youtube anonymously without forcing javascript (Fork of youtube-local)

  • SkyTube: An open-source YouTube app for Android

  • yt-dlp: A youtube-dl fork with additional features and fixes

  • uYouPlus: uYouPlus (uYou+) is an alternative YouTube app for Apple’s iOS and iPadOS

  • SmartTubeNext: SmartTubeNext is an advanced YouTube app for Android TVs and TV boxes, free and open source. It is not a live TV client and does not support “YouTube TV”

  • TubeSync: TubeSync is a PVR (personal video recorder) for YouTube. It syncs YouTube channels and playlists to a locally hosted media server

  • TubeArchivist: A self hosted YouTube media server

  • ytfzf: A POSIX script that helps you find Youtube videos (without API) and opens/downloads them using mpv/youtube-dl

  • ytcc: Command line tool to keep track of your favorite playlists on YouTube and many other places. Can import youtube subscriptions from Google Takeout and provide them as an RSS feed for your favorite reader

  • smtube: Stand-alone YouTube video player

    • Website: https://www.smtube.org
    • SMTube is part of SMPlayer
    • SMPlayer website: https://www.smplayer.info
    • SMPlayer repository: https://github.com/smplayer-dev/smplayer
  • mps-youtube: Terminal based YouTube player and downloader

  • minitube: Lightweight youtube client with a kid-friendly interface. Can make playlists from search keywords

  • yattee: Alternative YouTube frontend for iOS, tvOS and macOS built with Invidious and Piped, supports sponsorblock

  • ytcast: Cast YouTube videos to your smart TV from the command line. This program does roughly the same thing as the “Play on TV” button that appears on the player bar when you visit youtube.com with Chrome or when you use the YouTube smartphone app

  • LibreTube: Android frontend for YouTube, based on Piped

  • BlackHole: Android music player app for YouTube Music and Spotify made with Flutter

  • oleksis/youtube-dl-gui: Cross-platform front-end GUI of the popular youtube-dl written in wxPython

Written by Jane