-
-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Play button #484
Comments
The Last.fm API does not provide such links. The play button just launches the play from search intent. https://developer.android.com/reference/android/provider/MediaStore#INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH |
Oh dang, you're right. It only provides the MusicBrainz ID. For streaming services:
For a local file button:
So ideally, it would just show the button for tracks found in a source (streaming or local). |
Last.fm's |
@catuhana Then assuming Pano Scrobbler can get the work ID from the scrobbled track, it could instead lookup all of its recordings. Sadly it's limited to 100, but we can make multiple calls with +100 offsets because in this case, the jackpot was in result # 170/422:
Though I'm still trying to figure out how to filter out cover artists because in the first call there's a Youtube link to a Cello cover. And maybe even just make it return only recordings with URL resources to reduce bandwidth/calls. By the way, last.fm MBIDs aren't reliable: if you |
I have noticed that. I think this can be checked with the local artist name to see if it's the expected artist/track or not. For the last point, I have already said that not all songs on MusicBrainz have relations added. There's nothing we can do about that, other than adding relations ourselves, which is the purpose of MusicBrainz. |
@catuhana Since excluding recordings without URLs apparently isn't possible using the API, I guess the best alternative we have is just making multiple offset calls (if even needed, though most songs don't). On the bright side, I found a way to include the performing artist, so PS could also exclude the ones that don't match the scrobbled track's artist so we don't get those pesky covers https://musicbrainz.org/ws/2/recording?work=41c94a08-a551-3c86-bb17-d9a52e3a618b&fmt=json&inc=artist-credits+url-rels&limit=100&offset=100 @kawaiiDango Any thoughts? 👀 |
PS: Once it gets a URL like https://open.spotify.com/track/2OBofMJx94NryV2SK8p8Zf, it could use it to fetch streaming links from other services, like this: "linksByPlatform": {
"amazonMusic": {
"country": "US",
"url": "https://music.amazon.com/albums/B0157E3W76?trackAsin=B0157E47K2",
"entityUniqueId": "AMAZON_SONG::B0157E47K2"
},
"amazonStore": {
"country": "US",
"url": "https://amazon.com/dp/B0157E47K2",
"entityUniqueId": "AMAZON_SONG::B0157E47K2"
},
"audiomack": {
"country": "US",
"url": "https://audiomack.com/song/bianca-martins-3/bohemian-rhapsody",
"entityUniqueId": "AUDIOMACK_SONG::12851704"
},
"audius": {
"country": "US",
"url": "https://audius.co/tracks/2AWP1",
"entityUniqueId": "AUDIUS_SONG::2AWP1"
},
"anghami": {
"country": "US",
"url": "https://play.anghami.com/song/42332997?refer=linktree",
"entityUniqueId": "ANGHAMI_SONG::42332997"
},
"boomplay": {
"country": "US",
"url": "https://www.boomplay.com/songs/2850851",
"entityUniqueId": "BOOMPLAY_SONG::2850851"
},
"deezer": {
"country": "US",
"url": "https://www.deezer.com/track/568115892",
"entityUniqueId": "DEEZER_SONG::568115892"
},
"napster": {
"country": "US",
"url": "https://play.napster.com/track/tra.593001532",
"entityUniqueId": "NAPSTER_SONG::tra.593001532"
},
"pandora": {
"country": "US",
"url": "https://www.pandora.com/TR:6933254",
"entityUniqueId": "PANDORA_SONG::TR:6933254"
},
"soundcloud": {
"country": "US",
"url": "https://soundcloud.com/queen-69312/bohemian-rhapsody-remastered-1",
"entityUniqueId": "SOUNDCLOUD_SONG::253166273"
},
"tidal": {
"country": "US",
"url": "https://listen.tidal.com/track/36737274",
"entityUniqueId": "TIDAL_SONG::36737274"
},
"yandex": {
"country": "RU",
"url": "https://music.yandex.ru/track/1710808",
"entityUniqueId": "YANDEX_SONG::1710808"
},
"youtube": {
"country": "US",
"url": "https://www.youtube.com/watch?v=fJ9rUzIMcZQ",
"entityUniqueId": "YOUTUBE_VIDEO::fJ9rUzIMcZQ"
},
"youtubeMusic": {
"country": "US",
"url": "https://music.youtube.com/watch?v=fJ9rUzIMcZQ",
"entityUniqueId": "YOUTUBE_VIDEO::fJ9rUzIMcZQ"
},
"spotify": {
"country": "US",
"url": "https://open.spotify.com/track/2OBofMJx94NryV2SK8p8Zf",
"nativeAppUriDesktop": "spotify:track:2OBofMJx94NryV2SK8p8Zf",
"entityUniqueId": "SPOTIFY_SONG::2OBofMJx94NryV2SK8p8Zf"
}
} |
Is your feature request related to a problem, or particular use cases? Please describe.
The current Search button is great to find a track on different apps, but I only want to use a single music player while still having the option to search the track on other apps.
Describe the solution you'd like
It would be great to have a Play button, dedicated for playing the track in Spotify/Musicolet/etc, and make the search just show different apps that support searching via text, like YouTube for music videos.
Additional info
If the Last.fm API provides Youtube/Spotify/etc links like the ones found in the track page, it would be nice to have them as individual buttons like Redomi or even provide it the link in case song.link has more services than last.fm. 👀👌
The text was updated successfully, but these errors were encountered: