mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
76 lines
3.2 KiB
Markdown
76 lines
3.2 KiB
Markdown
# YouTube Subscription Manager
|
|
|
|
A self-hosted tool which manages your YouTube subscriptions, and downloads files automatically.
|
|
|
|
## Dependencies
|
|
|
|
* python3: `$ apt install python3`
|
|
* pip: `$ apt install python3-pip`
|
|
* django: `$ pip3 install django`
|
|
* crispy_forms: `$ pip3 install django-crispy-forms`
|
|
* youtube-dl: `$ pip3 install youtube-dl`
|
|
* google-api-python-client: `$ pip3 install google-api-python-client`
|
|
* google_auth_oauthlib: `$ pip3 install google_auth_oauthlib`
|
|
* apscheduler (v3.5+): `$ pip3 install apscheduler`
|
|
* (recommended) oauth2client: `$ pip3 install oauth2client`
|
|
|
|
## Installation
|
|
|
|
1. Install all the dependencies listed above.
|
|
|
|
```bash
|
|
sudo apt install python3 python3-pip
|
|
sudo pip3 install apscheduler django django-crispy-forms youtube-dl google-api-python-client google_auth_oauthlib oauth2client
|
|
```
|
|
|
|
2. Clone this repository:
|
|
|
|
```bash
|
|
git clone https://github.com/chibicitiberiu/ytsm.git
|
|
cd ytsm
|
|
```
|
|
|
|
3. Set up the database: `python3 manage.py migrate`
|
|
|
|
By default, a SQLite database is used, which is located in the project's folder.
|
|
You can customize that in `YtManager/settings.py`, by modifying the `DATABASES` variable (search Django documentation for details).
|
|
|
|
4. Set up the `MEDIA_ROOT` variable in `YtManager/settings.py`. This is where the thumbnails will be downloaded.
|
|
(note: this will be moved to `config.ini` in the future).
|
|
|
|
5. Obtain an YouTube API developer key from [https://console.developers.google.com/apis/dashboard](https://console.developers.google.com/apis/dashboard).
|
|
You can find a detailed guide on [this page](https://www.slickremix.com/docs/get-api-key-for-youtube/).
|
|
|
|
The `defaults.ini` file already has an API key, but if the quotas are reached, you won't be able to use this program
|
|
any more. Also, I might decide to delete that key, which will break your installation.
|
|
|
|
6. Modify `config/config.ini` to your liking. All the settings should be documented through comments.
|
|
All these settings apply server-wide. The settings in the `user` section can be overriden from the web page for each
|
|
individual user.
|
|
|
|
The most important settings are:
|
|
|
|
* `[Global] YoutubeApiKey` - put your YouTube API key here
|
|
* `[User] DownloadPath` - sets the folder where videos will be downloaded
|
|
|
|
7. Start the server: `python3 manage.py runserver [port] --noreload`
|
|
|
|
The `port` parameter is optional.
|
|
|
|
The `--noreload` option is necessary, otherwise the scheduler will run on 2 separate processes at the same time,
|
|
which is not ideal.
|
|
|
|
8. Open the server's page in your browser, by entering `http://localhost:port` in your address bar.
|
|
|
|
9. Create an admin user by going to the *register* page, and creating an user account.
|
|
|
|
10. Add some subscriptions, and enjoy!
|
|
|
|
### Correct deploying procedure
|
|
|
|
This is a *django* project, so the correct way to deploy it to a server would be by using *mod_wsgi*. Since this project
|
|
is still in development, I haven't really thought about getting it ready for production.
|
|
|
|
If you are willing to try that, you can find the information on how to deploy this application on the
|
|
[Django website](https://docs.djangoproject.com/en/2.1/howto/deployment/).
|