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.141 ]
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
ListPkg [Procura de pacote no Slackware]
Criador de árvore de compilação
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (10)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









