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();