7
7
import com .sedmelluq .discord .lavaplayer .track .*;
8
8
import dev .lavalink .youtube .CannotBeLoaded ;
9
9
import dev .lavalink .youtube .OptionDisabledException ;
10
+ import dev .lavalink .youtube .YoutubeAudioPlaylist ;
10
11
import dev .lavalink .youtube .YoutubeAudioSourceManager ;
11
12
import dev .lavalink .youtube .cipher .SignatureCipher ;
12
13
import dev .lavalink .youtube .cipher .SignatureCipherManager ;
@@ -429,6 +430,12 @@ public AudioItem loadMix(@NotNull YoutubeAudioSourceManager source,
429
430
JsonBrowser titleElement = playlist .get ("title" );
430
431
String title = titleElement .isNull () ? "YouTube mix" : titleElement .text ();
431
432
433
+ String playlistUrl = "https://www.youtube.com/watch?" ;
434
+ if (selectedVideoId != null ) {
435
+ playlistUrl += "v=" + selectedVideoId + "&" ;
436
+ }
437
+ playlistUrl += "list=" + mixId ;
438
+
432
439
List <AudioTrack > tracks = playlist .get ("contents" ).values ().stream ()
433
440
.map (item -> extractAudioTrack (item .get ("playlistPanelVideoRenderer" ), source ))
434
441
.filter (Objects ::nonNull )
@@ -440,7 +447,7 @@ public AudioItem loadMix(@NotNull YoutubeAudioSourceManager source,
440
447
throw new FriendlyException ("Could not find tracks from mix." , SUSPICIOUS , null );
441
448
}
442
449
443
- return new BasicAudioPlaylist (title , tracks , findSelectedTrack (tracks , selectedVideoId ), false );
450
+ return new YoutubeAudioPlaylist (title , tracks , findSelectedTrack (tracks , selectedVideoId ), false , playlistUrl );
444
451
}
445
452
446
453
@ Override
@@ -466,6 +473,13 @@ public AudioItem loadPlaylist(@NotNull YoutubeAudioSourceManager source,
466
473
new RuntimeException ("Playlist name was not found, JSON: " + json .format ()));
467
474
}
468
475
476
+ String playlistUrl ;
477
+ if (selectedVideoId == null ) {
478
+ playlistUrl = "https://www.youtube.com/playlist?list=" + playlistId ;
479
+ } else {
480
+ playlistUrl = "https://www.youtube.com/watch?v=" + selectedVideoId + "&list=" + playlistId ;
481
+ }
482
+
469
483
JsonBrowser playlistVideoList = extractPlaylistVideoList (json );
470
484
471
485
List <AudioTrack > tracks = new ArrayList <>();
@@ -498,7 +512,7 @@ public AudioItem loadPlaylist(@NotNull YoutubeAudioSourceManager source,
498
512
throw new FriendlyException ("Could not find tracks from playlist." , SUSPICIOUS , new RuntimeException ("JSON: " + json .format ()));
499
513
}
500
514
501
- return new BasicAudioPlaylist (playlistName , tracks , findSelectedTrack (tracks , selectedVideoId ), false );
515
+ return new YoutubeAudioPlaylist (playlistName , tracks , findSelectedTrack (tracks , selectedVideoId ), false , playlistUrl );
502
516
}
503
517
504
518
@ Override
0 commit comments