#!/usr/bin/env zsh # get now playing from subsonic compatible API # cfg file: host\nuser\password setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL local -a cfg while IFS=\n read -r line; do cfg+=${line} done < ${XDG_CONFIG_HOME:-~/.config}/nc-subsonic.cfg local host=${cfg[1]} local api_version=1.16.1 local useragent=np-hack local user=${cfg[2]} local password=${cfg[3]} local salt=$(pwgen 20 1) local token=$(print -n "${password}${salt}" | md5sum | cut -d' ' -f1) local response=$(curl --silent \ "${host}/rest/getNowPlaying?v=${api_version}&c=${useragent}&u=${user}&s=${salt}&t=${token}&f=json") local entry=$(jq '."subsonic-response".nowPlaying.entry[0]' <<<${response}) local title=$(jq --raw-output .title <<< ${entry}) local artist=$(jq --raw-output .artist <<< ${entry}) print ${title} – ${artist}