https://github.com/simonrw/youtube-video-deck
Self-hosted youtube-video-deck alternative
https://github.com/simonrw/youtube-video-deck
Last synced: 4 months ago
JSON representation
Self-hosted youtube-video-deck alternative
- Host: GitHub
- URL: https://github.com/simonrw/youtube-video-deck
- Owner: simonrw
- Created: 2019-09-25T13:39:42.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T11:00:51.000Z (over 3 years ago)
- Last Synced: 2025-02-13T09:51:13.892Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 2.18 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# Youtube video deck
This program runs a web server that manages youtube subscriptions.
The main use case is to replace the now inactive [youtube-video-deck](https://youtube.videodeck.net/), which keeps track of individual subscriptions, and which videos have been watched already. This is a simple extension on top of Youtube itself, which does not split subscriptions down by channel/playlist. I personally find it hard to keep track of new videos when they are all in a single list. In addition, I do not regularly prune my subscriptions. This app allows a separate selection of channels/playlists than youtube itself, and therefore can be considered more for favourite entries.
It is implemented as a `Django` web application that allows the user to subscribe to multiple video sources (channels or playlists) and fetch any new videos when they are made available.
## Getting started
In order to get started with the code, get a [Youtube API key][youtube-api-key]. Then:
* Clone the code: `git clone https://github.com/mindriot101/youtube-video-deck.git`
* Change into the code directory: `cd youtube-video-deck`
* Create a `.env` file which lists all secrets used, particularly the database connections, app secret key and google api key. A sample can be found under `env.sample`
* Install package dependencies with `pip`: `pip install -r requirements.txt`
* Install the node dependencies with `npm install`
* Compile the javascript/css code: `npm run prodbuild`
* Migrate your postgres database: `python ./manage.py migrate`
* Create the superuser, who has admin priviliges: `python ./manage.py createsuperuser`
* Start the app: `python ./manage.py runserver`
Alternatively the repository includes a `docker-compose.yml` file for use with `docker compose`. This reads secrets from the `.env` file, and spins up the web app and postgres database. Before the app will work, the same database migrations and superuser creation must occur, so the recommended approach is:
```
docker-compose up -d db
docker-compose up -d ytvd
docker-compose exec ytvd bash
# Within container
python ./manage.py migrate
python ./manage.py createsuperuser
exit
# Now back in the host shell
docker-compose restart ytvd
```
## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md)
## Design
See the [design docs](./design/design.md)
## Alternatives
youtube-video-deck: this seems to have been discontinued. We are basically re-implementing this but simplifying the authentication
freetube: this can list subscriptions, but does not remove items that have been viewed
[youtube-api-key]: https://console.cloud.google.com/apis/credentials