Kashi: Display Lyrics of Current Song on Touch Bar (Spotify / iTunes)

touch-bar
spotify
itunes

#1

Hi BTT community,

This is my first BTT plugin/preset. Since the community is already so great at making visually pleasing presets, I thought I'd focus on function rather than form. As an audiophile, I wanted my project to be music-related, so I ended up making "Kashi".

Kashi is a widget that display the lyrics of the current song playing on Spotify or iTunes on the Touch Bar. Here's a video of it in action:

Set-up is explained in the ReadMe, but basically there are a few Python 3 modules that need to be installed for the widget to work.

I'm curious to know what people think, and happy to discuss how it works if anyone is interested. All questions and comments are welcome.


#2

@nemobushido Hi I'm super excited to get your preset running. I either get an error on my touch bar that 'false is not defined', easily fixed by changed 'false' to 'False'. After that, the module just doesn't load on the touch bar.

Line: "BTTTouchBarAppleScriptStringRunOnInit"


#3

@lithedreamer
Just confirming, but have you installed Python 3 and the required dependencies? You may need to install them globally to access them from BTT.

Also, check that the line below points to the proper path where your python3 installation lives.

"BTTShellScriptWidgetGestureConfig" : "/usr/local/bin/python3:::-c",

For debugging, you can execute the script from Terminal and see if it prints the correct lyrics in console:

python3 kashi.py

or if you are not in the same folder as the script,

python3 /folderpath/kashi.py

Uncomment (delete '#' in front of) certain lines of code to check data flow.

For example you can target the player data,

print(player_data)

or data from the API response:

print("\nHits:", hits)
print('\nGenius Artist: ' + genius_artist + '\nGenius Song: ' + genius_song + '\nGenius URL: ' + genius_url + '\n')

If Terminal shows no issue, the widget should simply work by copy pasting the JSON into the settings: kashi.json.


#4

Thanks for getting back to me. Testing the print statements: all of them work and dispense the correct lyrics in terminal, which seems to suggest that the python modules are set up correctly (the path for python3 is also correct). Copying and pasting the JSON into the settings seems to create the same result: just blank Touch Bar space, not even a button as far as I can tell.


#5

@lithedreamer
I see. Then it must be how your bar is set up. Can you make sure that the widget is checked "Visible", item placement is "Scrollable Main Container", and that no other widgets occupy the same space? Having a left and a right one is OK.

Please see below:


#6

Widget is checked visible and item placement is a Scrollable Main Container. I turned off all my other widgets, so nothing should be interfering...


#7

Hm, I'm a bit stumped. Thanks for your persistence.

Could you try creating the widget from scratch? Create a new "Run Shell Script And Show Return Value" script widget and confirm that it's showing text. Then copy+paste the .py script (Parameter = "-c").


#8

Hello, really great work! I am just having some trouble getting the lyrics to scroll as the song play. If you could help that would be awesome!
Thanks


#9

@shark12349876
Thank you for using my widget. Actually, the scroll feature is currently unreleased because the implementation isn't stable. It's on the list of design features I plan to revisit after BTT's big update.