mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-13 09:32:12 +00:00
* dev: add response types * dev: refactor `Parser#parseResponse()` * dev: update YouTube parsers * dev: update YouTube Music classes * dev: update YouTube Kids classes * dev: update core classes * dev(Parser): fix some inconsistencies * chore: update docs * chore: update docs x2 * fix: export response types * chore(docs): update parser example
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
import { Innertube, UniversalCache } from 'youtubei.js';
|
|
|
|
const creds_path = './my_yt_creds.json';
|
|
const creds = existsSync(creds_path) ? JSON.parse(readFileSync(creds_path).toString()) : undefined;
|
|
|
|
(async () => {
|
|
const yt = await Innertube.create({ cache: new UniversalCache() });
|
|
|
|
yt.session.on('auth-pending', (data: any) => {
|
|
console.info(`Hello!\nOn your phone or computer, go to ${data.verification_url} and enter the code ${data.user_code}`);
|
|
});
|
|
|
|
yt.session.on('auth', (data: any) => {
|
|
writeFileSync(creds_path, JSON.stringify(data.credentials));
|
|
console.info('Successfully signed in!');
|
|
});
|
|
|
|
yt.session.on('update-credentials', (data: any) => {
|
|
writeFileSync(creds_path, JSON.stringify(data.credentials));
|
|
console.info('Credentials updated!', data);
|
|
});
|
|
|
|
await yt.session.signIn(creds);
|
|
|
|
const file = readFileSync('./my_awesome_video.mp4');
|
|
|
|
const upload = await yt.studio.upload(file.buffer, {
|
|
title: 'Wow!',
|
|
description: new Date().toString(),
|
|
privacy: 'UNLISTED'
|
|
});
|
|
|
|
console.info('Done!', upload);
|
|
})();
|