lavalink-devs / youtube-source

A rewritten YouTube source manager for Lavaplayer.
MIT License
161 stars 27 forks source link

Add alias for loading YouTube Music albums #11

Open SpookyO opened 10 months ago

SpookyO commented 10 months ago

Lavaplayer does support loading YouTube Music album/playlist only if its in a correct form.

Currently lavaplayer doesn't support loading this type of youtube music album urls.

Here's an example album url (/browse): https://music.youtube.com/browse/MPREb_d8mqe4d4UR0

Lavaplayer will just raise error upon passing this album url. (which eventually redirects to actual playlist url upon clicking manually)

DxsSucuk commented 10 months ago

Doesn't this already exist inside the code? YouTube Music Albums are not different from YouTube Playlists? And if so, removing the music. at the domain directs you towards a youtube playlist.

DxsSucuk commented 10 months ago

Just tested it with my bot using latest release. image image

I am unsure thou, how the url in the Issue description has been found, its valid but redirects to a playlist url.

SpookyO commented 10 months ago

Just tested it with my bot using latest release.

I am unsure thou, how the url in the Issue description has been found, its valid but redirects to a playlist url.

Hey, pardon, I just updated the issue. Its true lavaplayer can load /playlists/... format albums but it cannot load /browse/... format albums. Why does it matter if you say, some youtube music searcher returns /browse/... type of albums rather than /playlists/... which makes it hard to directly pass the url in lavaplayer.

Yes, we can indeed find out the redirected url ourselves. But i think lavaplayer still should support this url alias.

DxsSucuk commented 10 months ago

I tried solving this thing sadly couldn't do much. Since there is no active redirect but rather a location change via js. But it seems like if you get past the consent page that loads first you should be able to just check if there is any entry for

https:\/\/music\.youtube\.com\/playlist\?list=([a-zA-Z0-9_-]{11})

Because the playlist id is written into the site.