一款命令行网易云音乐软件go-musicfox使用
之前一直在使用的网易云音乐是一个 electron 项目 electron-netease-cloud-music ,但是在 arch 上经常出现登录失败或者退出软件再打开必须重新登录,最近听到群友说的 go-musicfox 项目,之前也用过,但是是看的B站 C先生 视频 https://www.bilibili.com/video/BV1mY4y1f7mx ,配置 mpd
和 ncmpcpp
结合在一起使用,当时研究过,但是因为 go-musicfox
的 mpris
支持非常差,我又比较喜欢桌面歌词,所以当时放弃了,今天又研究了一下,记录一下配置过程和一些坑。
go-musicfox 是用 Go 写的又一款网易云音乐命令行客户端,支持各种音质级别、UnblockNeteaseMusic、Last.fm、MPRIS 和 macOS 交互响应(睡眠暂停、蓝牙耳机连接断开响应和菜单栏控制等)等功能特性。
在 archlinux
上安装 go-musicfox
有一些需要注意的,由于 aur 上的 go-musicfox
截止当前时间 2023-12-08 不是最新版的,虽然 archlinuxcn 源的是最新版的,但是无法使用内置的 LastFM
功能,所以如果要使用当前最新版 4.3.0 并且使用LastFM
的按照我下面的步骤安装,如果不需要直接安装 cn
源的go-musicfox
包即可。
- 先将 aur 仓库克隆下来:
git clone https://aur.archlinux.org/go-musicfox-bin.git
- 然后进入
go-musicfox-bin
目录,执行:curl https://pastebin.com/raw/g9JAYit6 > PKGBUILD.diff
下载最新版的文件差异,然后合并到原本的PKGBUILD
文件执行:patch PKGBUILD < PKGBUILD.patch
更新到最新版本,在这之后还有一个坑,因为这个包编译使用的flac
版本是1.3的,arch 的已经1.4了,所以还需要下载 aur 的flac1.3
这个包yay -S flac1.3
,下载安装后再打包这个go-musicfox-bin
,执行makepkg -si
,安装即可,安装成功后就可以直接使用所以功能。
上面的操作完毕已经可以正常使用,终端输入 musicfox
,因为 go-musicfox-bin
支持使用mpd
作为后端,所以下面介绍配合 mpd
使用。如果只是使用go-musicfox
不需要看下面的配置,下面使用mpd
体验非常差!!仅仅是一个尝试
MPD(Music Player Daemon,音乐播放器守护进程)是一个服务器-客户端架构的音频播放器。占用极少资源的同时有着播放音频、管理播放列表和音乐等功能。与它进行交互需要一个单独的 客户端。
可以参考 ArchWiki-Music Player Daemon 介绍来配置,先安装mpd
包, sudo pacman -S mpd
,创建配置文件夹 :
mkdir ~/.config/mpd
cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf ##复制默认配置自定义,也可以查直接使用我下面写的配置
mkdir ~/.config/mpd/playlists
mkdir ~/.local/state/mpd
下面的是我配置文件,我使用pipewire
,所以下面的 audio_output
部分使用的是 pipewire
,如果你是 pulse audio
用户使用我注释的那一段,这里还有个坑,pipewire
用户还需要装一个包sudo pacman -S pipewire-pulse
包,否则 go-musicfox
无法播放音乐,会闪退。
~/.config/mpd/mpd.conf
配置文件:
music_directory "~/Music"
playlist_directory "~/.config/mpd/playlists"
db_file "~/.config/mpd/database"
log_file "~/.config/mpd/log"
pid_file "~/.config/mpd/pid"
sticker_file "~/.config/mpd/sticker.sql"
bind_to_address "127.0.0.1"
bind_to_address "~/.config/mpd/socket"
port "6600"
log_level "notice"
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#audio_output {
# type "pulse"
# name "pulse audio"
#}
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
filesystem_charset "UTF-8"
上面的配置完后现在可以配置go-musicfox
了,配置文件在~/.config/go-musicfox/go-musicfox.ini
文件,修改[Player]
段下的engine
,默认是beep
,修改成 mpd
,然后紧接着下面的 mpd
配置:
# mpd配置
mpdBin=/usr/bin/mpd
# !!!注意!!! 一定要在配置文件中设置pid_file,否则在退出时不会kill掉mpd进程
mpdConfigFile=${HOME}/.config/mpd/mpd.conf
# tcp 或 unix
mpdNetwork=tcp
# tcp时填写ip+port(例如:127.0.0.1:1234),unix时填写socket文件路径
mpdAddr=127.0.0.1:6600
修改后重启 go-musicfox
程序即可,这个配置文件自定义的样式挺多,你也可以修改下载目录、音质等配置。
再次提醒 go-musicfox
使用 mpd
效果非常差,我遇到过无数次无法播放或者播放有杂音的情况,推荐使用默认的beep
,后面的作为一个了解即可。
最终效果:
LastFM
截图: