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.
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.
Great. Please do report back if you find any that work.
While reading the API
it seems that only
mbid | String | No | A MusicBrainz Recording ID <https://musicbrainz.org/doc/MBID>
is supported.
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
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.
So, this fork will be merged to upstream? Is there any news?
I created a PR back in October, it wasn’t merged.
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
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 :
- sls : https://github.com/simple-last-fm-scrobbler/sls/blob/04380f4ea9224ba12d4682b7605fa3b6f9c6cc77/app/src/main/java/com/adam/aslfms/receiver/ScrobbleDroidMusicReceiver.java
- vanilla : https://github.com/smoralis/vanilla/blob/df97baf01fcbbb6cb70d73786e99055a1fb2c0b7/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java
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!
(post deleted by author)
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.