Visualizar capas de álbuns de músicas no MPD/MPC/NCMPCPP
Publicado por João Gabriel (última atualização em 03/02/2021)
[ Hits: 1.777 ]
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
AptList v1.1 - instalação de pacotes DEB a partir de uma lista
Instalação e desinstalação do Flash Player
BackUp Mensal de Relatórios Diários
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)