mirror of
https://github.com/kirameki-cafe/Yumi.git
synced 2026-09-13 10:49:20 +00:00
Support YouTube playlist
This commit is contained in:
@@ -256,6 +256,17 @@ export default class Play {
|
||||
|
||||
if (DiscordMusicPlayer.isYouTubeLink(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);
|
||||
|
||||
if (!result) return;
|
||||
|
||||
@@ -303,7 +303,9 @@ class DiscordMusicPlayer {
|
||||
}
|
||||
|
||||
public async getYouTubeSongsInPlayList(youtubeLink: string) {
|
||||
return await playdl.playlist_info(youtubeLink);
|
||||
return await playdl.playlist_info(youtubeLink, {
|
||||
incomplete: true
|
||||
});
|
||||
}
|
||||
|
||||
public isYouTubeLink(link: string): boolean {
|
||||
@@ -336,6 +338,13 @@ class DiscordMusicPlayer {
|
||||
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 {
|
||||
throw new Error('YouTube link is invalid');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user