#!/usr/bin/env bash # Set the player [ -n "$(pgrep spotify)" ] && Control="spotify" || Control="MPD" Cover=/tmp/cover.png bkpCover=~/.local/share/assets/fallback.webp mpddir=~/music case $Control in MPD) case $1 in --next) mpc -q next ;; --previous) mpc -q prev ;; --toggle) mpc -q toggle ;; --stop) mpc -q stop ;; --title) title=$(mpc -f %title% current) echo "${title:-Play Something}" ;; --artist) artist=$(mpc -f %artist% current) echo "${artist:-No Artist}" ;; --status) status=$(mpc status | head -2 | tail -1 | cut -c2-8 | sed 's/]//g' | sed 's/./\U&/') echo "${status:-Stopped}" ;; --player) echo "$Control" ;; --cover) ffmpeg -i "$mpddir"/"$(mpc current -f %file%)" "${Cover}" -y &> /dev/null || cp $bkpCover $Cover echo "$Cover" ;; nccover) ffmpeg -i "$mpddir"/"$(mpc current -f %file%)" "${Cover}" -y &> /dev/null || cp $bkpCover $Cover ;; --position) position=$(mpc status %currenttime%) echo "${position:-0:00}" ;; --positions) positions=$(mpc status %currenttime% | awk -F: '{print ($1 * 60) + $2}') echo "${positions:-0}" ;; --length) length=$(mpc status %totaltime%) echo "${length:-0:00}" ;; --lengths) lengths=$(mpc status %totaltime% | awk -F: '{print ($1 * 60) + $2}') echo "${lengths:-0}" ;; --shuffle) shuffle=$(mpc status | sed -n '3s/.*random: \([^ ]*\).*/\1/p' | sed 's/.*/\u&/') echo "${shuffle:-Off}" ;; --loop) loop=$(mpc status | sed -n '3s/.*repeat: \([^ ]*\).*/\1/p' | sed 's/.*/\u&/') echo "${loop:-Off}" ;; esac ;; *) case $1 in --next) playerctl --player=$Control next ;; --previous) playerctl --player=$Control previous ;; --toggle) playerctl --player=$Control play-pause ;; --stop) playerctl --player=$Control stop ;; --title) title=$(playerctl --player=$Control metadata --format {{title}}) echo "${title:-Play Something}" ;; --artist) artist=$(playerctl --player=$Control metadata --format {{artist}}) echo "${artist:-No Artist}" ;; --status) status=$(playerctl --player=$Control status) echo "${status:-Stopped}" ;; --player) echo "$Control" ;; --cover) albumart="$(playerctl --player=$Control metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')" [ $(playerctl --player=$Control metadata mpris:artUrl) ] && curl -s "$albumart" --output $Cover || cp $bkpCover $Cover echo "$Cover" ;; --position) position=$(playerctl --player=$Control position --format "{{ duration(position) }}") echo "${position:-0:00}" ;; --positions) positions=$(playerctl --player=$Control position | sed 's/..\{6\}$//') echo "${positions:-0}" ;; --length) length=$(playerctl --player=$Control metadata --format "{{ duration(mpris:length) }}") echo "${length:-0:00}" ;; --lengths) lengths=$(playerctl --player=$Control metadata mpris:length | sed 's/.\{6\}$//') echo "${lengths:-0}" ;; --shuffle) shuffle=$(playerctl --player=$Control shuffle) echo "${shuffle:-Off}" ;; --loop) loop=$(playerctl --player=$Control loop) echo "${loop:-None}" ;; esac esac 2>/dev/null