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