Android player MBID submission support

I know that Simple Scrobbler at least does this already… if provided by the player. I don’t know which players (if any) actually read this information and pass it on.

3 Likes

Thanks,
Good to know that the code exists in Simple Scrobbler.
I will test out a few more players and maybe find one that supports it.

1 Like

Great. Please do report back if you find any that work. :slight_smile:

While reading the API

it seems that only

 mbid         | String | No       | A MusicBrainz Recording ID <https://musicbrainz.org/doc/MBID>  

is supported.

1 Like

Nothing to report unfortunately.
After testing most of the listed players


none had mbid value in the intent broadcast.

I couldn’t find any app that provided mbid by the player, so I forked Vanilla Music Player https://github.com/vanilla-music/vanilla
and modified it to read/store the value and send it using Scrobble Droid API with simple-last-fm-scrobbler

7 Likes

Most players read metadata through Android’s inbuilt MediaMetadataRetriever which does not have the option to read MBIDs. This is the reason why very few players have support for MBIDs. I have opened a request with Android Open Source project to change this. Interested users may visit https://issuetracker.google.com/issues/158468801 for updates.

5 Likes

So, this fork will be merged to upstream? Is there any news?

1 Like

I created a PR back in October, it wasn’t merged.

2 Likes

That’s great! Any chance you could provide an apk? puppy eyes

I have posted a feature request for VLC: https://code.videolan.org/videolan/vlc-android/-/issues/1458

I try to build your fork but didn’t get any mbid submission, when i look the debug console in android studio I don’t see what data is send to the scrobbler. How can I debug this ?

If I can get it work I will submit another merge request since you close yours

1 Like

Vanilla can read the mbid :
VanillaMusic: Broadcasting :94f809bd-21b0-4a17-8a4e-aa590e48075a

simple scrobble don’t receive the mbid :
2021-05-13 11:19:39.499 5379-27935/com.adam.aslfms D/Scrobbler: ListenBrainz: Track [mTrack=Tijuana, mArtist=Manu Chao, mAlbum=Próxima estación... Lado B, mAlbumArtist=, mDuration=185, mMbId=, mMusicAPI=MusicAPI [clashWithScrobbleDroid=0, enabled=1, id=1, msg=generic receiver, name=Vanilla Music, pkg=ch.blinkenlights.android.vanilla], mQueued=false, mRating=, mRowId=240, mSource=P, mTimePlayed=0, mTracknr=, mUnknownDuration=false, mWhen=1620897425, mWhenToCountTimeFrom=-1]

here is the code I used to have the log from vanilla :
Log.v("VanillaMusic", "Broadcasting :" + song.mbid)
I don’t know how to get the full string send to simple scrobbler from sendBroadcast(intent);

seem like vanilla user scroble droid format instead of the stock format to sendbroadcast

files :

1 Like

The best player I found for my Android was Sony Music Center (but it had several different names in the past).
How can I test if it sends the MBID to Simple Scrobbler (I know it used to scrobble with that app), if this test is still useful, here?

I made a fork of mpv-android which supports complete scrobbling.

This fork supports scrobbling all the metadata available in the audio file including the MBIDs. However, it only works if

  • You select your music through the File Picker (Legacy) option
  • You go to Settings>Advanced>Edit mpv.conf, and add these lines
script=liblistenbrainz_mpv.so
script-opts=listenbrainz-user-token={YOUR_USER_TOKEN}

If you want better playback quality with high quality audio gear, and don’t care about a slight decrease in battery life, add this line

audio-swresample-o=resampler=soxr,precision=27

The source code for the backend can be found here

You can find an APK here!

1 Like

(post deleted by author)

1 Like

Can you get by with requesting only the READ_EXTERNAL_STORAGE permission (or maybe even just READ_MEDIA_AUDIO if you’re targeting API level 33)?

Right now, the app looks like it’s requesting MANAGE_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE. As I understand it, MANAGE_EXTERNAL_STORAGE is only intended for e.g. file managers that really need full access, and requesting it will probably prevent the app from getting approved for the Play Store.

Well, I wasn’t really planning on putting this on the Play Store, but I can probably address your concern

Hi again! I’m coming to you with a ListenBrainz scrobbler written specifically for PowerAmp.

  • Most of the code is native Rust for high performance and low battery life effect
  • Reads the metadata off of your audio files to get everything including MBIDs to send to ListenBrainz
  • Customizable parameters for what is required to scrobble to ListenBrainz. Ex: If you have songs in your library without MBIDs, and don’t want to scrobble them.

APK
Source Code

5 Likes