Visualizar capas de álbuns de músicas no MPD/MPC/NCMPCPP
Publicado por João Gabriel (última atualização em 03/02/2021)
[ Hits: 2.061 ]
O NCMPCPP é um cliente do MPD, interativo, e com uma interface muito boa. O NCMPCPP tem um problema, porém: não é possível ver a capa do álbum da música que você está escutando. Esse script usa o Ueberzug (um visualizador de imagens no terminal) para mostrar as imagens da capa do álbum da música que estiver tocando no momento.
Esse script é uma versão modificada de um script criado pelo GeorgeHJ no GitHub.
P.S.: esse script deve ser rodado por uma nova instância de um terminal, não diretamente, senão não vai funcionar!
P.S.: esse script depende de ffmpeg, mpd, mpc e ueberzug.
#!/usr/bin/bash
## All credits to GeorgeHJ on github, thank you!
## Requires mpd, mpc, ueberzug, bash, ffmpeg and diffutils
# This should be the root of mpd
musicDir="/home/goll/media/music"
tmpImgDir="/tmp/ncmpcpp-album"
# Default Dimensions
WIDTH=32
HEIGHT=32
X=0
Y=0
mkdir "$tmpImgDir"
mpdRunCheck() {
while true; do
mpc -q 2>/dev/null && break || sleep 2
done
}
updArt() {
oldFilename="$filename"
getCoverArt
}
getCoverArt() {
local curFile; local tmpImgFile #; local curDIr
curFile=$(mpc current -f "%file%")
[ -n "$curFile" ] && {
tmpImgFile=$(mktemp -p "$tmpImgDir" --suffix=.png)
ffmpeg -i "$musicDir/$curFile" "$tmpImgFile" -y
if ! cmp -s "$filename" "$tmpImgFile"; then
filename=$tmpImgFile
fi
find "$tmpImgDir" -name "tmp.*.png" 2>/dev/null | grep -v "$filename" | xargs -r rm
}
}
showArt() {
# shellcheck disable=2154
{ declare -Ap add_commnand=([action]="add" [identifier]="albumArt" [x]="$X" [y]="$Y" [width]="$WIDTH" [height]="$HEIGHT" [path]="$filename")
checkChanged
} | ueberzug layer --parser bash
}
checkChanged() {
while true; do
mpc idle player update >/dev/null
updArt
if ! cmp -s "$oldFilename" "$filename"; then
oldFilename="$filename" && break
fi
done
}
quit() {
# shellcheck disable=2154
{
declare -Ap remove_command=([action]="remove" [identifier]="albumArt")
} | ueberzug layer --parser bash
tput cnorm
find "$tmpImgDir" -name "tmp.*.png" -delete 2>/dev/null
exit 0
}
# Main
tput civis
trap quit SIGINT
while true; do
mpdRunCheck
updArt
clear
showArt
done 2>/dev/null
Shell Script para instalação do software FTOOL
xpock-dl: baixe vídeos do xpock.com.br (v20071030)
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Warcraft II Remastered no Linux? (4)
O programa assinador digital (5)









