Implement YouTube OAuth2 login #1670
Draft
+93
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request...
Description
This PR adds a toggle to enable the OAuth2 capability found in the YouTube source manager. It also automatically stores & retrieves the refresh token for convenience of JMusicBot users (as the source manager does not do that itself.)
Quick summary of the login flow
Upon enabling OAuth2 (
youtubeoauth2=true
in the config.txt) the YouTube source manager will log the following:Navigating to https://www.google.com/device and entering the code will lead you to an OAuth2 page
(the source manager pretends to be a logged in TV client to play tracks)
Once allowed, the source manager logs a refresh token. For convenience, JMusicBot intercepts the log with a turbo filter & stores the refresh token as a file,
youtubetoken.txt
. The refresh token will be used when JMusicBot gets restarted to retrieve an access token.Purpose
This should circumvent the "Sign in to confirm you're not a bot" message that people (particularly) on servers have been getting.
Relevant Issue(s)
Fixes #1588
Todo