#!/bin/bash #LANG=de_DE.UTF-8 # export LANG export LC_ALL="en_US.UTF-8" export LANG="en_US" #list of available player #todo: amarok liefert kein Cover list_pl=( "strawberry" "vlc" "elisa" "juk" "plasma-browser-integration" "amarok" "tauon") #active player for i in "${list_pl[@]}" do pl=$(qdbus org.mpris.MediaPlayer2."$i" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus 2>&1) if [ "$pl" == "Playing" ] then player="$i" fi done if [ "$player" == "" ] then exit fi # Fetch Amarok3 metadata #METADATA=$(qdbus org.kde.$player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata) echo "$player" METADATA="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata)" echo "$METADATA" # Parse fields from metadata TITLE=$(echo "$METADATA" | grep 'xesam:title:' | sed 's/^.*xesam:title:[ \t]*//') ARTIST=$(echo "$METADATA" | grep 'xesam:artist:' | sed 's/^.*xesam:artist:[ \t]*//;s/\["//;s/"\]//') ALBUM=$(echo "$METADATA" | grep 'xesam:album:' | sed 's/^.*xesam:album:[ \t]*//') #COVER_URL=$(echo "$METADATA" | grep 'mpris:artUrl:' | sed 's/^.*mpris:artUrl:[ \t]*//') COVER_URL=$(echo "$METADATA" | grep 'mpris:artUrl:' |sed -e 's/^.*mpris:artUrl://g' -e 's/%20/ /g' -e 's/%7D/}/g' -e 's/%7B/{/g') #"$METADATA"|sed -e 's/%20/_/g' -e 's/file/lolo/g' #COVER_URL="$(echo "$METADATA" | grep 'xesam:url:' | sed 's/^.*xesam:url:[ \t]*/ /')" echo "cover_url:$COVER_URL" OUTFILE="amarok_spotify_wrapper.png" BG_COLOR="#181818" #TEXT_COLOR="#FFFFFF" TEXT_COLOR="#000000" ACCENT_COLOR="#1DB954" COVER_FILE="cover_tmp.png" COVER_OK=0 # If COVER_URL is a local file, extract and check existence #if [[ "$COVER_URL" == ^file://* ]]; then if echo "$COVER_URL" | grep -q "^ file://"; then COVER_PATH="${COVER_URL/ file:\/\/}" echo "if cover_path $COVER_PATH" if [[ -f "$COVER_PATH" ]]; then magick "$COVER_PATH" -resize 140x140^ -gravity center -extent 140x140 "$COVER_FILE" echo "if_coverfile:$COVER_FILE" COVER_OK=1 fi fi #140x140 # Generate base PNG magick -size 600x200 xc:"$BG_COLOR" \ -fill "$ACCENT_COLOR" -draw "roundrectangle 20,20 580,180 20,20" \ "$OUTFILE" # Overlay cover art if present if [[ "$COVER_OK" -eq 1 ]]; then magick "$OUTFILE" "$COVER_FILE" -geometry +430+30 -composite "$OUTFILE" fi # +430+30 # Add text fields TITLE_K=$(echo "$TITLE" | cut -c 1-25) ARTIST_K=$(echo "$ARTIST" | cut -c 1-30) ALBUM_K=$(echo "$ALBUM" | cut -c 1-50) magick "$OUTFILE" \ -fill "$TEXT_COLOR" -pointsize 28 -gravity NorthWest -annotate +40+40 "$TITLE_K …" \ -fill "$TEXT_COLOR" -pointsize 20 -gravity NorthWest -annotate +40+90 "$ARTIST_K …" \ -fill "$TEXT_COLOR" -pointsize 16 -gravity NorthWest -annotate +40+140 "$ALBUM_K …" \ "$OUTFILE" echo "TITLE: $TITLE" echo "ARTIST: $ARTIST" echo "ALBUM: $ALBUM" echo "COVER_PATH: $COVER_PATH" echo "PNG generated: $OUTFILE" lol="https://www.youtube.com/results?search_query=${TITLE} ${ARTIST}" lolo="${lol// /+}" lolo=${lolo//\"/} text1="ich höre gerade:" text="$text1 Interpret: $ARTIST Media-player: $player Video (geraten): $lolo" echo "$text" description="$TITLE, $ARTIST, $ALBUM" echo "$description" echo "$text"|toot post --media "$OUTFILE" --description "$description" #Clean up temp cover rm -f "$COVER_FILE"