Files
googlevideo/test.ts
2024-09-13 13:52:28 -03:00

34 lines
1.0 KiB
TypeScript

import Innertube, { UniversalCache } from 'youtubei.js';
import { GoogleVideo, Protos } from './dist/src/index.js';
const pot = 'MogByekTEuMCHffJ1fWU29jibLXb2em_4I0sBL3WX8kzmtnI2VOVIlJJjZ7mCf1E-4DaRwrPPqBXdL2ECFrjdNt2vIdAiTgbN44Q1asvZdjBr0bWFJsIzQRXUSXBRZDPq0IRZHTNc_B8ItbgV6yx7kJ4FOgkDsqj-_lubvsyWHjnq85WqGxEut11eQ==';
const innertube = await Innertube.create({
cache: new UniversalCache(true),
po_token: pot,
visitor_data: 'CgtHelk0ajJwY185SSi91OO2BjIKCgJCUhIEGgAgZzoKILKg8r3TybrsZg%3D%3D',
});
const info = await innertube.getBasicInfo('nVSXA2t3F0U');
const audioFormat = info.chooseFormat({
quality: "best",
format: "mp4",
type: 'audio',
});
const url = audioFormat.decipher(innertube.session.player);
const response = await fetch(url + `&range=4583871-5785063&ump=1&srfvp=1`, {
method: 'POST',
});
const data = await response.arrayBuffer();
let dataBuffer = new GoogleVideo.ChunkedDataBuffer([new Uint8Array(data)]);
const ump = new GoogleVideo.UMP(dataBuffer);
ump.parse((part) => {
console.log(part);
});