No description
- TypeScript 91.4%
- JavaScript 6.8%
- Dockerfile 1.8%
| .idea/codeStyles | ||
| docs | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| eslint.config.js | ||
| LICENCE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| webpack.config.js | ||
This is an alternative mechanism to access YouTube video stream data through usage of the InnerTube API with OAuth 2 authentication. That is the only thing it does, and it doesn't handle anything else, so use this in conjunction with Piped.
Requirements
- Node.js (LTS recommended)
- NPM
- A Google account
Set-up
- First create an OAuth 2 client, this should be exclusively dedicated to YouTube. You can follow the RClone documentation on how to create an OAuth 2 client.
- Do everything except step 11.
- Do NOT add any of the scopes mentioned for Google Drive. Don't add any scopes at all.
- Add
http://localhost:3000/oauth2/loginas a redirect URL.
- Setup dependencies
- For local execution:
git clone … yootoob && cd yootoob npm install npm run build cp docs/config.example.toml config.toml - If using the Dockerfile:
You can then run the YooToob service (see here for an example Docker Compose service definition).git clone … yootoob cp yootoob/docs/config.example.toml yootoob.toml # rm -rv yootoob
- For local execution:
- Change
config.tomlto specify your parameters. - Once you run the service (
node dist/bundle.jsif running locally, using Docker if using Docker, etc.), check the logs. The logs will have an authorization URL that you have to open through your browser.- Once you go through the Google OAuth process, you will be redirected to
http://localhost:3000/oauth2/login?…, replacehttp://localhost:3000with your YooToob instance URL (keeping the rest of the URL as is). It should return a plain text message saying ‘Success’. - Your YooToob instance should be usable freely.
- Once you go through the Google OAuth process, you will be redirected to
Licence
Licensed under the AGPLv3 licence, see the LICENCE file.