From bb3f2f181654e222e3d2b327cf13c8e4437350df Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 2 Jan 2022 00:37:28 +0100 Subject: [PATCH] Fix playlist_info for YouTube Music URLs --- play-dl/YouTube/utils/extractor.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/play-dl/YouTube/utils/extractor.ts b/play-dl/YouTube/utils/extractor.ts index 5a04826..3d7d835 100644 --- a/play-dl/YouTube/utils/extractor.ts +++ b/play-dl/YouTube/utils/extractor.ts @@ -3,7 +3,7 @@ import { format_decipher } from './cipher'; import { YouTubeVideo } from '../classes/Video'; import { YouTubePlayList } from '../classes/Playlist'; import { InfoData, StreamInfoData } from './constants'; -import { URLSearchParams } from 'node:url'; +import { URL, URLSearchParams } from 'node:url'; interface InfoOptions { htmldata?: boolean; @@ -417,6 +417,12 @@ export async function playlist_info(url: string, options: PlaylistOptions = {}): if (!url.startsWith('https')) url = `https://www.youtube.com/playlist?list=${url}`; if (url.indexOf('list=') === -1) throw new Error('This is not a Playlist URL'); + if (url.includes('music.youtube.com')) { + const urlObj = new URL(url); + urlObj.hostname = 'www.youtube.com'; + url = urlObj.toString(); + } + const body = await request(url, { headers: { 'accept-language': options.language || 'en-US;q=0.9'