Video Info bug fixes and stream improvements

This commit is contained in:
Atari Tom
2022-05-27 15:35:02 -04:00
parent 126c5f98d1
commit a0e3ae88c2
6 changed files with 16 additions and 12 deletions

View File

@@ -151,7 +151,7 @@ export async function video_basic_info(url: string, options: InfoOptions = {}):
const player_data = body
.split('var ytInitialPlayerResponse = ')?.[1]
?.split(';</script>')[0]
.split(/;\s*(var|const|let)\s/)[0];
.split(/(?<=}}});\s*(var|const|let)\s/)[0];
if (!player_data) throw new Error('Initial Player Response Data is undefined.');
const initial_data = body
.split('var ytInitialData = ')?.[1]
@@ -349,7 +349,7 @@ export async function video_stream_info(url: string, options: InfoOptions = {}):
const player_data = body
.split('var ytInitialPlayerResponse = ')?.[1]
?.split(';</script>')[0]
.split(/;\s*(var|const|let)\s/)[0];
.split(/(?<=}}});\s*(var|const|let)\s/)[0];
if (!player_data) throw new Error('Initial Player Response Data is undefined.');
const player_response = JSON.parse(player_data);
let upcoming = false;

View File

@@ -146,7 +146,7 @@ export function parseVideo(data?: any): YouTubeVideo {
id: data.videoRenderer.videoId,
url: `https://www.youtube.com/watch?v=${data.videoRenderer.videoId}`,
title: data.videoRenderer.title.runs[0].text,
description: data.videoRenderer.detailedMetadataSnippets?.[0].snippetText.runs.length
description: data.videoRenderer.detailedMetadataSnippets?.[0].snippetText.runs?.length
? data.videoRenderer.detailedMetadataSnippets[0].snippetText.runs.map((run: any) => run.text).join('')
: '',
duration: durationText ? parseDuration(durationText.simpleText) : 0,