mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-18 03:59:38 +00:00
This is a rewrite of the OAuth2 module to address some bugs and inconsistencies. And since it changes the structure of the credentials, I'm marking this as a breaking change. Note that you will have to update your existing credentials, that is if you wish to continue using them. Otherwise, simply delete them and sign in again.
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { Innertube, UniversalCache } from 'youtubei.js';
|
|
|
|
(async () => {
|
|
const yt = await Innertube.create({
|
|
// required if you wish to use OAuth#cacheCredentials
|
|
cache: new UniversalCache(false)
|
|
});
|
|
|
|
// Fired when waiting for the user to authorize the sign in attempt.
|
|
yt.session.on('auth-pending', (data) => {
|
|
console.log(`Go to ${data.verification_url} in your browser and enter code ${data.user_code} to authenticate.`);
|
|
});
|
|
|
|
// Fired when authentication is successful.
|
|
yt.session.on('auth', ({ credentials }) => {
|
|
console.log('Sign in successful:', credentials);
|
|
});
|
|
|
|
// Fired when the access token expires.
|
|
yt.session.on('update-credentials', async ({ credentials }) => {
|
|
console.log('Credentials updated:', credentials);
|
|
await yt.session.oauth.cacheCredentials();
|
|
});
|
|
|
|
// Attempt to sign in
|
|
await yt.session.signIn();
|
|
|
|
// ... do something after sign in
|
|
|
|
// You may cache the session for later use
|
|
// If you use this, the next call to signIn won't fire 'auth-pending' instead just 'auth'.
|
|
await yt.session.oauth.cacheCredentials();
|
|
|
|
|
|
// Sign out of the session
|
|
// this will also remove the cached credentials
|
|
await yt.session.signOut();
|
|
})(); |