Support YouTube playlist

This commit is contained in:
2022-02-27 21:40:59 +07:00
parent b01a846ef4
commit 3f5d528304
2 changed files with 21 additions and 1 deletions
+11
View File
@@ -256,6 +256,17 @@ export default class Play {
if (DiscordMusicPlayer.isYouTubeLink(query)) { if (DiscordMusicPlayer.isYouTubeLink(query)) {
let linkData = DiscordMusicPlayer.parseYouTubeLink(query); let linkData = DiscordMusicPlayer.parseYouTubeLink(query);
if(linkData.videoId === "" && linkData.list) {
let playlist = await DiscordMusicPlayer.getYouTubeSongsInPlayList(query);
const songs = await playlist.all_videos();
for(let song of songs) {
instance.addTrackToQueue(song);
}
return await sendMessageOrInteractionResponse(data, { embeds: [EMBEDS.ADDED_SONGS_QUEUE(data, songs)] }, true);
}
let result = await DiscordMusicPlayer.searchYouTubeByYouTubeLink(linkData); let result = await DiscordMusicPlayer.searchYouTubeByYouTubeLink(linkData);
if (!result) return; if (!result) return;
+10 -1
View File
@@ -303,7 +303,9 @@ class DiscordMusicPlayer {
} }
public async getYouTubeSongsInPlayList(youtubeLink: string) { public async getYouTubeSongsInPlayList(youtubeLink: string) {
return await playdl.playlist_info(youtubeLink); return await playdl.playlist_info(youtubeLink, {
incomplete: true
});
} }
public isYouTubeLink(link: string): boolean { public isYouTubeLink(link: string): boolean {
@@ -336,6 +338,13 @@ class DiscordMusicPlayer {
videoId: videoId videoId: videoId
} }
} }
else if (query.startsWith('https://www.youtube.com/playlist?list=') || query.startsWith('http://www.youtube.com/playlist?list=')) {
let listId = query.split('?list=')[1];
return {
videoId: "",
list: listId
}
}
else { else {
throw new Error('YouTube link is invalid'); throw new Error('YouTube link is invalid');
} }