Now Playing is no longer working on MacOS 15.4

Describe the bug
Since the update to macOS 15.4 (Beta), "Now Playing" no longer works on the BTT. Before the update, Spotify displayed the album cover as well as "Play/Pause," etc. The issue occurs with both Spotify and Apple Music. In the Mac's Control Center, everything is displayed correctly – but not on the Touch Bar.

I haven't changed any configurations in BTT. The other functions on the Touch Bar work, and there are no crashes or similar issues.
I have already installed the latest version of "GoldenChaos-BTT," but the problem persists.

Have other people noticed this issue as well?
Thanks for your support.
Best regards


Affected input device

Macbook Touch Bar - Now Playing not working


Device information:

  • Type of Mac: MacBook Pro 13", M2, 2022
  • macOS version: 15.4 Beta (24E5228e)
  • BetterTouchTool version: 5.271
  • Preset: GoldenChaos BTT 3.563

Additional information (e.g. crash logs, related issues, etc.):

yes, looks like Apple changed something in 15.4 I‘ll check whether it can be fixed soon

1 Like

I have just implemented some workarounds in BTT 5.279 alpha (uploading). Would be great if you could check whether this works for you. It is much more complicated than before and currently doesn't support all apps but I'll add support for more in the next days.

1 Like

It’s not yet 100% the way it was before. I'm not sure if that’s even possible again if Apple has changed things?

Part of it is working again now: the cover, title, etc. are showing up again. What’s still not working is the automatic display of Play/Pause.

Also, I can no longer close Spotify :smile: – as soon as I close it, it reopens automatically. If I disable BTT, Spotify can be closed normally.

Thank you very much for the quick fix!

Ah the Spotify closing issue will be fixed with the next version.

Play/pause should already work, what kind of widget are you using? (Touch Bar / Stream Deck / Notch Bar?). Could you share your config of the widget?

1 Like

I'm using the Touch Bar. Currently, I’ve added and configured the widget manually – this way, I can click on the title and it also acts as a Play/Pause button.
But I had to add the "Previous" and "Next" buttons statically.
Previously, with GoldenChaos-BTT, the control buttons were preset to only appear when music was playing.

Sorry for the dumb question... but how can I share my config? :smiley:

ah the previous build didn't update the variables golden chaos used correctly, this should be fixed in 5.284 alpha

For sharing, either screenshot or right-click the widget => export to file

Ahhh, then version 5.284 alpha will solve my problem. I'm fine with the workaround for now. I’ll wait and get back to you if needed. Vielen Dank für deine super Unterstützung!!!

@Andreas_Hegenberg I'm not sure if you are using the MediaRemote framework to get now playing information, but if you do, would you mind sharing your findings on how you got it working again?

I'm developing an app that uses the MediaRemote framework and it's been non-functional since the macOS 15.4 beta. I'm considering to use AppleScript to get now playing information, but I'd like to hold off on that until I'm sure the MediaRemote framework is actually inaccessible for user apps.

Thanks a lot!

I think the MediaRemote framework now requires special entitlements, so it can not be used any longer by third party apps.

I’m now falling back to a wild mix of various sources including Apple Script and app specific notifications. It’s not great

In my experience filing feedback with Apple and asking users to file the same does help in such cases. In the past they have undone such private framework blocks multiple times after they noticed the impact. However it’s too late for 15.4 now

1 Like

Thank you for the insight, looks like I will have to go with that too.

What should i write to Apple?

It should probably contain the following

  • on previous macOS versions apps were able to access the "Now Playing Media Information" although this was never officially supported
  • on macOS 15.4 apple disabled this for security reasons. This is understandable because any app could know what you where listening or watching. However now there are only hacky ways to achieve the same and there are still many valid use cases where that info would be needed.
  • Apple should provide an official API where the user can grant access to specific trusted apps to access this information.
3 Likes

It seems you can access the Now Playing info using the private MRNowPlayingRequest API. I have AppleScript and JXA demo scripts here: https://gist.github.com/SKaplanOfficial/f9f5bdd6455436203d0d318c078358de.

Not sure if this is helpful in BTT's case, but I found this post while researching and figured I'd share my solution.

1 Like

current BTT versions already contain a workaround, let’s see when apple will break that too ;-(

Tested and works well, thanks!

> osascript -l JavaScript ~/Library/Mobile\ Documents/com~apple~ScriptEditor2/Documents/get_now_playing.scpt
Microsoft just opened the flood gates… —  — Fireship | Google Chrome
1 Like

I got MediaRemote fully working again (including real-time updates and artwork support) on macOS 15.4 and above using a custom Objective-C framework that is loaded by a simple Perl script that must be executed with /usr/bin/perl (shipped with every Mac):

unfortunately now that multiple apps (including BTT) use this (or similar) approaches publicly i assume Apple will fix this issue with the next security update, but I guess there is no way around that anyways.
I'd recommend that every developer that relies on this sends some feedback to Apple about getting an official API (my Feedback ID is FB18112000).

These utilities are not really entitled but Apple forgot to remove a too simplistic check which allows them to work with mediaremote without entitlement

We already have a matching permission in System Settings => Security & Privacy => Media & Apple Music which could be used for granting apps access to the Now Playing Information.

1 Like

I have added a note at the top of the README, hopefully Apple notices and acknowledges it, if they ever stumble upon my repository. If you want, you can give the repo a star to show that you care about getting a public API for media control.

Also see the new section "Why this works" (GitHub - ungive/mediaremote-adapter: Fully functional MediaRemote access, even for macOS 15.4 and newer). Platform binaries (e.g. com.apple.perl5, which is /usr/bin/perl) are explicitly permitted to use the MediaRemote framework. They might block script interpreters like Perl in a future update, but who knows. Maybe we'll be good for a while and maybe they can be convinced to give us a public API before they break it again.

1 Like

Yep let's see.

However it's not about platform binaries, it's any app that has a bundle identifier that starts with com.apple. It only works because Apple forgot to remove the com.apple check in their logic when they introduced the entitlement protection ;-( I don't think this was intentional because it's easy to create your own app with such an identifier. Once they remove that part of the entitlement validation for the MediaRemote framework, it will stop working.