mirror of
https://github.com/wukko/cobalt.git
synced 2025-05-14 12:27:07 +02:00
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { Innertube } from 'youtubei.js';
|
|
import { Red } from '../misc/console-text.js'
|
|
|
|
const bail = (...msg) => {
|
|
console.error(...msg);
|
|
throw new Error(msg);
|
|
};
|
|
|
|
const tube = await Innertube.create();
|
|
|
|
tube.session.once(
|
|
'auth-pending',
|
|
({ verification_url, user_code }) => {
|
|
console.log(`${Red('[!]')} The token generated by this script is sensitive and you should not share it with anyone!`);
|
|
console.log(` By using this token, you are risking your Google account getting terminated.`);
|
|
console.log(` You should ${Red('NOT')} use your personal account!`);
|
|
console.log();
|
|
console.log(`Open ${verification_url} in a browser and enter ${user_code} when asked for the code.`);
|
|
}
|
|
);
|
|
|
|
tube.session.once('auth-error', (err) => bail('An error occurred:', err));
|
|
tube.session.once('auth', ({ credentials }) => {
|
|
if (!credentials.access_token) {
|
|
bail('something went wrong');
|
|
}
|
|
|
|
console.log(
|
|
'add this cookie to the youtube_oauth array in your cookies file:',
|
|
JSON.stringify(
|
|
Object.entries(credentials)
|
|
.map(([k, v]) => `${k}=${v instanceof Date ? v.toISOString() : v}`)
|
|
.join('; ')
|
|
)
|
|
);
|
|
});
|
|
|
|
await tube.session.signIn(); |