Spaces:
Paused
Paused
| 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(); |