mirror of
https://github.com/kirameki-cafe/Yumi.git
synced 2026-09-13 18:59:19 +00:00
Support YouTube playlist
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user