Light theme | Dark theme |
---|---|
Instead of directly accessing YouTube's unreliable subscription feed (which already has been processed through the infamous "algorithm") it retrieves your subscriptions list and then queries the YouTube API for each channel separately (using a mix of videos.search and videos.list).
This code is primarily tested on the following platforms:
Operating System | Python | PyQt | Arch | Tester(s) | Last confirmed test |
---|---|---|---|---|---|
Windows 10 | 3.7.0 | 5.11 | x64 | BluABK, Acca | v0.4.0 |
Linux/Debian 9 (stable) | 3.5.3 | 5.10 | x64 | BluABK | c7e988d |
Linux/Arch | 3.7.0 | 5.11 | x64 | Kitsuna, BluABK | Current |
pip install -r requirements.txt
pip install -r requirements-py35.txt
(NB: Will likely be deprecated in near future)youtube-dl and watchdog (video directory monitoring)
pip install -r optional-requirements.txt
OAuth is required for access to your own youtube account (like retrieving subscriptions list). For anything else API keys is usually what gets used.
Caution: This option is prone to daily API quota limit issues, option B is highly encouraged.
Sane will automatically use the public set if no other is added. No further action required.
Useful ref: https://developers.google.com/youtube/v3/getting-started
Go to https://console.developers.google.com/apis/dashboard and follow these steps:
sane_yt_subfeed/resources/keys.json.sample
and rename it keys.json
sane_yt_subfeed/resources/client_secret.json
| Step 1 | Step 2 | Step 3 | Step 4 | |--------|--------|--------|--------| | ![step1](docs/readme_assets/01_open_project_dialog.png) | ![step2](docs/readme_assets/02_create_new_project.png) | ![step3](docs/readme_assets/03_name_and_create_project.png) | ![step4](docs/readme_assets/04_enable_api.png) | | Step 5 | Step 6 | Step 7 | Step 8 | |--------|--------|--------|--------| | ![step5](docs/readme_assets/05_select_youtube_data_v3_api.png) | ![step6](docs/readme_assets/06_enable_youtube_data_v3_api.png) | ![step7](docs/readme_assets//07_go_to_credentials_screen.png) | ![step8](docs/readme_assets/08_create_api_key.png) | | Step 9a | Step 9b | Step 9c | |---------|---------|---------| | ![step9a](docs/readme_assets/09a_create_oauth_client.png) | ![step9b](docs/readme_assets/09b_configure_oauth_consent.png) | ![step9c](docs/readme_assets/09c_create_oauth_client.png) |
If it's the first time run: pip install -e .
Afterwards you can launch it with: python -m sane_yt_subfeed
If you're using pipenv you can create a shortcut using a one-liner like pipenv run python -m sane_yt_subfeed
pip install -e .
alembic revision --autogenerate -m "migration msg"
alembic upgrade head