From 5dd4122d9f53689e7b9b27a4b9c5c210cab7ab79 Mon Sep 17 00:00:00 2001 From: killer069 <65385476+killer069@users.noreply.github.com> Date: Mon, 23 Aug 2021 23:34:10 +0530 Subject: [PATCH] PlayList and Video Error Fixed --- play-dl/YouTube/utils/extractor.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/play-dl/YouTube/utils/extractor.ts b/play-dl/YouTube/utils/extractor.ts index 7d3e30e..936e9c5 100644 --- a/play-dl/YouTube/utils/extractor.ts +++ b/play-dl/YouTube/utils/extractor.ts @@ -8,7 +8,10 @@ const video_pattern = /^((?:https?:)?\/\/)?(?:(?:www|m)\.)?((?:youtube\.com|yout export async function video_basic_info(url : string){ if(!url.match(video_pattern)) throw new Error('This is not a YouTube URL') - let video_id = url.split('watch?v=')[1].split('&')[0] + let video_id : string; + if(url.includes('youtu.be/')) video_id = url.split('youtu.be/')[1] + else if(url.includes('youtube.com/embed/')) video_id = url.split('youtube.com/embed/')[1] + else video_id = url.split('watch?v=')[1].split('&')[0]; let new_url = 'https://www.youtube.com/watch?v=' + video_id let body = await url_get(new_url) let player_response = JSON.parse(body.split("var ytInitialPlayerResponse = ")[1].split("}};")[0] + '}}') @@ -113,7 +116,10 @@ export async function playlist_info(url : string) { let body = await url_get(new_url) let response = JSON.parse(body.split("var ytInitialData = ")[1].split(";")[0]) - if(response.alerts && response.alerts[0].alertRenderer.type === 'ERROR') throw new Error(`While parsing playlist url\n ${response.alerts[0].alertRenderer.text.runs[0].text}`) + if(response.alerts){ + if(response.alerts[0].alertRenderer?.type === 'ERROR') throw new Error(`While parsing playlist url\n ${response.alerts[0].alertRenderer.text.runs[0].text}`) + else throw new Error('While parsing playlist url\n Unknown Playlist Error') + } let rawJSON = `${body.split('{"playlistVideoListRenderer":{"contents":')[1].split('}],"playlistId"')[0]}}]`; let parsed = JSON.parse(rawJSON);