Add ViewTube (#323)
* Add Viewtube * Test Config * Update Names * Updates Secure * Update docker-compose.yml * Config Placeholder * Update docker-compose.yml * Final Changes * Update Viewtube
This commit is contained in:
parent
22ba91617a
commit
d77fc6d418
16
apps/viewtube/config.json
Normal file
16
apps/viewtube/config.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "ViewTube",
|
||||
"port": 8180,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "viewtube",
|
||||
"tipi_version": 1,
|
||||
"version": "0.12.2",
|
||||
"categories": ["media"],
|
||||
"description": "The open source, privacy-conscious way to enjoy your favorite YouTube content.",
|
||||
"short_desc": "The open source, privacy-conscious way to enjoy your favorite YouTube content.",
|
||||
"author": "ViewTube",
|
||||
"source": "https://github.com/ViewTube/viewtube",
|
||||
"form_fields": []
|
||||
}
|
66
apps/viewtube/docker-compose.yml
Normal file
66
apps/viewtube/docker-compose.yml
Normal file
|
@ -0,0 +1,66 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
viewtube:
|
||||
restart: unless-stopped
|
||||
container_name: viewtube
|
||||
image: mauriceo/viewtube:0.12.2
|
||||
depends_on:
|
||||
- viewtube-mongodb
|
||||
- viewtube-redis
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/viewtube:/data
|
||||
environment:
|
||||
- VIEWTUBE_DATABASE_HOST=viewtube-mongodb
|
||||
- VIEWTUBE_REDIS_HOST=viewtube-redis
|
||||
- VIEWTUBE_SECURE=true
|
||||
- VIEWTUBE_CORS_ORIGIN=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
||||
# - VIEWTUBE_YOUTUBE_COOKIE=
|
||||
# - VIEWTUBE_YOUTUBE_IDENTIFIER=
|
||||
ports:
|
||||
- ${APP_PORT}:8066
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.viewtube-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.viewtube.loadbalancer.server.port: 8066
|
||||
# Web
|
||||
traefik.http.routers.viewtube-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.viewtube-insecure.entrypoints: web
|
||||
traefik.http.routers.viewtube-insecure.service: viewtube
|
||||
traefik.http.routers.viewtube-insecure.middlewares: viewtube-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.viewtube.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.viewtube.entrypoints: websecure
|
||||
traefik.http.routers.viewtube.service: viewtube
|
||||
traefik.http.routers.viewtube.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.viewtube-local-insecure.rule: Host(`viewtube.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.viewtube-local-insecure.entrypoints: web
|
||||
traefik.http.routers.viewtube-local-insecure.service: viewtube
|
||||
traefik.http.routers.viewtube-local-insecure.middlewares: viewtube-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.viewtube-local.rule: Host(`viewtube.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.viewtube-local.entrypoints: websecure
|
||||
traefik.http.routers.viewtube-local.service: viewtube
|
||||
traefik.http.routers.viewtube-local.tls: true
|
||||
|
||||
viewtube-mongodb:
|
||||
container_name: viewtube-mongodb
|
||||
restart: unless-stopped
|
||||
image: mongo:5
|
||||
networks:
|
||||
- tipi_main_network
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/db:/data/db
|
||||
|
||||
viewtube-redis:
|
||||
container_name: viewtube-redis
|
||||
restart: unless-stopped
|
||||
image: redis:7
|
||||
networks:
|
||||
- tipi_main_network
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/redis:/data
|
44
apps/viewtube/metadata/description.md
Normal file
44
apps/viewtube/metadata/description.md
Normal file
|
@ -0,0 +1,44 @@
|
|||
ViewTube is an alternative YouTube frontend that lets you watch, search and discover YouTube videos without ads or tracking. It's built to be mobile and desktop friendly, with dark and light themes, and a touch-friendly video player with gestures. You can create an account separately from YouTube, read comments, watch playlists, subscribe to channels and receive push notifications for new uploads It's built using [Nuxt](https://nuxt.com/) and [Nest](https://nestjs.com/).
|
||||
|
||||
You can find the documentation at [viewtube.wiki](https://viewtube.wiki)
|
||||
|
||||
## 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.
|
||||
|
||||
- [node-ytdl-core](https://github.com/fent/node-ytdl-core)
|
||||
- [node-ytsr](https://github.com/TimeForANinja/node-ytsr)
|
||||
- [node-ytpl](https://github.com/TimeForANinja/node-ytpl)
|
||||
- [yt-comment-scraper](https://github.com/FreeTubeApp/yt-comment-scraper)
|
||||
- [yt-channel-info](https://github.com/FreeTubeApp/yt-channel-info)
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Homepage
|
||||
|
||||
[![Screenshot-Homepage](https://camo.githubusercontent.com/7ca1b34ee39d918f86a7043a3ffae08b574d5630975255eb8840536e7e169248/68747470733a2f2f692e6962622e636f2f476b35744b51372f6c78743179306d6b2e6a7067)](https://camo.githubusercontent.com/7ca1b34ee39d918f86a7043a3ffae08b574d5630975255eb8840536e7e169248/68747470733a2f2f692e6962622e636f2f476b35744b51372f6c78743179306d6b2e6a7067)
|
||||
|
||||
### Video
|
||||
|
||||
[![Screenshot-Video](https://camo.githubusercontent.com/07ecf2f4a9e61eb326d2125375f674020cbf97b1a998defdeb21fd8d1aa6f8f7/68747470733a2f2f692e6962622e636f2f52544c327633662f6732656a663777662e6a7067)](https://camo.githubusercontent.com/07ecf2f4a9e61eb326d2125375f674020cbf97b1a998defdeb21fd8d1aa6f8f7/68747470733a2f2f692e6962622e636f2f52544c327633662f6732656a663777662e6a7067)
|
||||
|
||||
### Channel
|
||||
|
||||
[![Screenshot-Channel](https://camo.githubusercontent.com/b50d3f852326d5436cc32507eb2ee48d036092ae1cba3bc61485a8a4661d0ffd/68747470733a2f2f692e6962622e636f2f68396d663179642f366a3435616f35722e6a7067)](https://camo.githubusercontent.com/b50d3f852326d5436cc32507eb2ee48d036092ae1cba3bc61485a8a4661d0ffd/68747470733a2f2f692e6962622e636f2f68396d663179642f366a3435616f35722e6a7067)
|
||||
|
||||
|
BIN
apps/viewtube/metadata/logo.jpg
Normal file
BIN
apps/viewtube/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
37
apps/viewtube/metadata/optional.md
Normal file
37
apps/viewtube/metadata/optional.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
## (Optional) Use cookies from a real account
|
||||
|
||||
You can provide your own cookies to circumvent any Rate Limiting Issue.
|
||||
|
||||
### YouTube cookie
|
||||
|
||||
- Navigate to YouTube in a web browser
|
||||
- Log in, preferrably with a separate account you don't use often
|
||||
- Open up the dev tools console
|
||||
- Type `document.cookie`
|
||||
- Copy the entire response into the `VIEWTUBE_YOUTUBE_COOKIE` environment variable
|
||||
|
||||
### YouTube identifier
|
||||
|
||||
- Navigate to a video
|
||||
- Right click and click "view source"
|
||||
- Press CTRL+F to search for "ID\_TOKEN"
|
||||
- Copy this value into the `VIEWTUBE_YOUTUBE_IDENTIFIER` environment variable
|
||||
|
||||
```
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Youtube Cookie",
|
||||
"hint": "Optional, Read below",
|
||||
"required": false,
|
||||
"env_variable": "VIEWTUBE_YOUTUBE_COOKIE"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Youtube Identifier",
|
||||
"hint": "Optional, Read below",
|
||||
"required": false,
|
||||
"env_variable": "VIEWTUBE_YOUTUBE_IDENTIFIER"
|
||||
}
|
||||
]
|
||||
```
|
Loading…
Reference in New Issue
Block a user