If you’re looking for a fast and highly extensible launcher, Raycast is an excellent choice. As someone who has used Alfred for a long time, I recently made the switch and have been impressed with the features and functionality of Raycast. One of the things I often do when listening to music is browse Discogs to explore new albums and records. With this script command, I can open Discogs and automatically search for the current album I’m listening to, which I find very handy. To fetch the music I’m currently listening to, I use LastFM to scrobble tracks from TIDAL. Many music services and apps supports LastFM natively, or as plugins. Even though some apps supports getting the currently playing track/artist/album via Apple Script, it’s not possible for all apps. That’s why I like the option of using LastFM, since I already scrobble all my music.
Raycast scripts
Raycast executes your local scripts and enables you to perform frequent and useful commands without having to open a terminal window. Getting started with Raycast Scripts
Under Raycast Preferences you can go to “Extensions → Scripts and find your scripts. Manage them, set aliases, record a hotkey and more.
Creating the script
When you launch Raycast, type “script” and key down to “Create Script Command”. Select template, mode, title, description and more.
All scripts have parameters to instruct Raycast on how to process and output your request. You can read more about them here. In the example, we have set the @raycast.mode
parameter to silent, which means that the script will run instantly and silently, allowing you to access the newly opened page when you are ready.
#!/usr/bin/env bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Discogs Now Playing
# @raycast.mode silent
#
# Optional parameters:
# @raycast.icon icon.png
# @raycast.iconDark icon.png
#
# Documentation:
# @raycast.description Open Discogs and explore the currently playing album
# @raycast.author Urban Sanden
# @raycast.authorURL https://urre.me
# Read secrets from the .env file
source "./.env"
# Specify LastFM API and specify JSON as the format
URL="http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=${DISCOGS_USER}&api_key=${DISCOGS_API_KEY}&format=json"
# Query the LastFM API with cURL
result=`curl -s ${URL}`
# Get currently playing track using jq, Artist and Album name, flatten and remove whitespace
nowplaying=`echo ${result} | jq -r '[.recenttracks.track[0].artist["#text"], .recenttracks.track[0].album["#text"]] | flatten[]' | xargs`
# Now open Discogs in the browser
open "https://discogs.com/search?q=${nowplaying}"
I’m using jq
. It’s a lightweight and flexible command-line JSON processor. You can install it with brew install jq
LastFM credentials
Create an .env file with your credentials
DISCOGS_API_KEY="XXX"
DISCOGS_USER="XXX"
How to use it
Play some music, open Raycast and start typing Disc…