diff --git a/play-dl/YouTube/utils/extractor.ts b/play-dl/YouTube/utils/extractor.ts index 4a0d90c..8f87923 100644 --- a/play-dl/YouTube/utils/extractor.ts +++ b/play-dl/YouTube/utils/extractor.ts @@ -221,14 +221,18 @@ export async function video_basic_info(url: string, options: InfoOptions = {}): const title = x.metadataRowRenderer.title.simpleText ?? x.metadataRowRenderer.title.runs[0].text; if (title.toLowerCase() === 'song') { music.push({}); - music[music.length - 1].song = - x.metadataRowRenderer.contents[0].simpleText ?? x.metadataRowRenderer.contents[0]?.runs?.[0]?.text; + let text = x.metadataRowRenderer.contents[0].simpleText ?? x.metadataRowRenderer.contents[0]?.runs?.[0]?.text; + let url = x.metadataRowRenderer.contents[0]?.runs?.[0]?.navigationEndpoint?.commandMetadata?.webCommandMetadata.url; + music[music.length - 1].song = url ? {text, url: `https://www.youtube.com${url}`} : text; } else if (music.length === 0) return; - else - music[music.length - 1][title.toLowerCase()] = - x.metadataRowRenderer.contents[0].simpleText ?? x.metadataRowRenderer.contents[0]?.runs?.[0]?.text; + else { + let text = x.metadataRowRenderer.contents[0].simpleText ?? x.metadataRowRenderer.contents[0]?.runs?.[0]?.text; + let url = x.metadataRowRenderer.contents[0]?.runs?.[0]?.navigationEndpoint?.commandMetadata?.webCommandMetadata.url; + music[music.length - 1][title.toLowerCase()] = url ? {text, url: `https://www.youtube.com${url}`} : text; + } }); } + const rawChapters = initial_response.playerOverlays.playerOverlayRenderer.decoratedPlayerBarRenderer.decoratedPlayerBarRenderer.playerBar?.multiMarkersPlayerBarRenderer.markersMap.find( (m: any) => m.key === 'DESCRIPTION_CHAPTERS'