Add a Predefined Action to re-execute AppleScript of a TouchBar button

Currently, we can set a TouchBar button running AppleScript, that auto-refresh every N seconds. It's great, but for some use-cases it's not ideal. I would love to see a Predefined Action to re-execute the script of a TouchBar button (to update it). Basically, we would just have to enter the name of the button, and trigger the action with whatever trigger.

Here is my use case :

I've configured an indicator next to the Now Playing widget. Linked with Spotify API, it informs if the song has already been added to the Saved Songs. It looks like this :

I've set the button to refresh every 5 seconds. But it means that I made a call to Spotify API every 5 seconds, which is not great…

If there was a Predefined Action to refresh the script of a TouchBar button, I would map the event Receive Distributed Notification with com.spotify.client.PlaybackStateChanged value, to refresh my button.
This notification is sent every time there is change state on spotify (play/pause/next/previous…), so it makes sense to only refresh the button on this time.

What do you think ? Would it be hard to implement ?

You already can. Look at the web server or AppleScript API docs for BetterTouchTool. My preset has examples of this as do others on GitHub.

I wasn't even aware that there was Apple Script for BTT ! Thanks a lot it did the trick ! :+1:

@AnthoPak can you please share a detailed tutorial on how to make the button which adds a song to Saved Songs and indicates if the song has already been added to the Saved Songs? This is one of the features I am dying to get and I know a lot of people would love to get this simple feature on a Touch Bar! I am a total amateur when it comes to any kind of scripting / coding / API etc. but I can follow a detailed tutorial, I hope :slight_smile:

I am currently using Spotify Widget - although I know it's a script and it executes every 1 second, but for me it is so much more convenient than the "Now playing widget", mostly because it doesn't disappear/change every time I play a video on YT / Safari.

The only thing I've managed to do so far... is to check the Dictionary of Spotify in Script Editor.
I see there is a 'starred' parameter over there, but I have no idea on how to use it properly.

I've tried to make a simple button in BTT, with RunAppleScript action saying:
"tell application "Spotify" to set current track to starred" - but all I get is an error: "Spotify got an error: Can’t set starred to starred."

I have also no idea how to get the parameter which indicates if the song is already liked - and based on that - change the icon on the Touch Bar.

I would really appreciate your help!


Imprint | Privacy Policy