Invidious is an alternative front-end to YouTube
Go to file
2018-10-23 20:58:07 -05:00
assets Add partial support for video duration in thumbnails 2018-10-20 20:37:55 -05:00
config Add author_thumbnail to '/api/v1/videos' 2018-10-13 20:01:58 -05:00
docker basic docker-compose cluster 2018-09-29 13:30:56 +02:00
src Update error messages for /api/v1/channels 2018-10-23 20:58:07 -05:00
.editorconfig Initial commit 2017-11-23 01:48:55 -06:00
.gitignore Update .gitignore 2018-07-14 08:35:25 -05:00
CHANGELOG.md Update CHANGELOG and bump version 2018-10-22 23:11:18 -05:00
docker-compose.yml basic docker-compose cluster 2018-09-29 13:30:56 +02:00
LICENSE Change license 2018-01-28 11:32:40 -06:00
README.md Update README 2018-09-29 10:11:21 -05:00
setup.sh basic docker-compose cluster 2018-09-29 13:30:56 +02:00
shard.yml Bump version 2018-10-23 20:55:20 -05:00

Invidious

Invidious is an alternative front-end to YouTube

  • Audio-only (and no need to keep window open on mobile)
  • Open-source (AGPLv3 licensed)
  • No ads
  • No need to create a Google account to save subscriptions
  • Lightweight (homepage is ~4 KB compressed)
  • Tools for managing subscriptions:
    • Only show unseen videos
    • Only show latest (or latest unseen) video from each channel
    • Delivers notifications from all subscribed channels
    • Automatically redirect homepage to feed
    • Import subscriptions from YouTube
  • Dark mode
  • Embed support
  • Set default player options (speed, quality, autoplay, loop)
  • Does not require JS to play videos
  • Support for Reddit comments in place of YT comments
  • Import/Export subscriptions, watch history, preference
  • Does not use any of the official YouTube APIs

Liberapay: https://liberapay.com/omarroth
Patreon: https://patreon.com/omarroth
BTC: 356DpZyMXu6rYd55Yqzjs29n79kGKWcYrY
BCH: qq4ptclkzej5eza6a50et5ggc58hxsq5aylqut2npk

Installation

Docker:

Build and start cluster:

$ docker-compose up

And visit localhost:3000 in your browser.

Rebuild cluster:

$ docker-compose build

Delete data and rebuild:

$ docker volume rm invidious_postgresdata
$ docker-compose build

Installing Crystal:

On Arch:

$ sudo pacman -S shards crystal
$ shards

On OSX:

$ brew update
$ brew install shards crystal-lang
$ shards

Installing Postgres:

On Arch:

Install according to the wiki

On OSX:

$ brew install postgres

Setup Postgres:

$ ./setup.sh

Installing ImageMagick (required for CAPTCHA):

On Arch:

$ sudo pacman -S imagemagick librsvg

Usage:

$ crystal build src/invidious.cr --release
$ ./invidious -h
Usage: invidious [arguments]
    -b HOST, --bind HOST             Host to bind (defaults to 0.0.0.0)
    -p PORT, --port PORT             Port to listen for connections (defaults to 3000)
    -s, --ssl                        Enables SSL
    --ssl-key-file FILE              SSL key file
    --ssl-cert-file FILE             SSL certificate file
    -h, --help                       Shows this help
    -t THREADS, --crawl-threads=THREADS
                                     Number of threads for crawling (default: 1)
    -c THREADS, --channel-threads=THREADS
                                     Number of threads for refreshing channels (default: 1)
    -v THREADS, --video-threads=THREADS
                                     Number of threads for refreshing videos (default: 1)

Or for development:

$ curl -fsSLo- https://raw.githubusercontent.com/samueleaton/sentry/master/install.cr | crystal eval
$ ./sentry

Extensions

Contributing

  1. Fork it ( https://github.com/omarroth/invidious/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors