/viewtube

▶️ ViewTube is an alternative YouTube frontend.

Primary LanguageVueGNU Affero General Public License v3.0AGPL-3.0

ViewTube

Github Actions Status Daily Tests Status DeepScan grade GitHub Docker Image Size (tag) GitHub last commit

ViewTube is an alternative YouTube frontend.

It can recommend, play and search for videos. It saves your watch progress and you can subscribe to channels for them to appear in your subscription feed.

It's built using Nuxt.js and Nest.

Check uptime.m-o.dev/status for updates and downtime status.
Try the dev version on dev.viewtube.io.

Features

  • Watch videos without ads or tracking
  • Built from the ground up to be mobile and desktop friendly
  • Dark and light themes
  • Touch friendly video player with gestures
  • Supports loop, speed, autoplay and volume
  • Create an account separately from Youtube
  • Read comments
  • Search for videos
  • Watch playlists
  • Subscribe to channels and see their latest uploads
  • Receive push notifications for subscribed channels
  • Integrated SponsorBlock support

Where does ViewTube get the data from?

ViewTube does not use the official Youtube API. It instead scrapes the data from the website using a combination of custom built tools and the following open source libraries.

The Invidious API is still used in a few places. You can check the progress on replacing the invidious api here.

Screenshots

Homepage

Screenshot-Homepage

Video

Screenshot-Video

Channel

Screenshot-Channel

Host it yourself

A comprehensive installation guide is available in the wiki

Development setup

Prerequisites
  • Nodejs v18.x
  • Pnpm 7.3.x
  • MongoDB 5.0.x

If you don't want to install locally, use the supplied docker-compose.dev.yml

  • MongoDB 4.4.x
  • Redis 6.x

Instructions

  1. Clone this repo

    git clone https://github.com/ViewTube/viewtube-vue

  2. Install dependencies

    pnpm install

    or use docker-compose to install more easily and hassle-free

    pnpm run serve:env

  3. Start the components seperately in multiple terminals

    pnpm run serve:server
    pnpm run serve:client

  4. Visit localhost:8066 with a browser

Pull requests welcome 😄!

Contributors

Thanks goes to these wonderful people

emoji reference


cyacedev

💻 📖

Vendrix

💻

Mennaruuk

📖

Missu

📖

beardeddude

💻