🎵 开源终端播放器 Waves 安装部署教程
这个播放器最适合喜欢在终端里折腾、追求极致效率的音乐爱好者。下面是详细的安装步骤。
第一步:安装前的系统准备
Waves 深度依赖 Linux 系统,在安装它之前,需要确保系统已经准备好了必要的“建筑材料”。
- 操作系统:你需要一台运行 Linux 的电脑。教程以 Ubuntu 为例。
安装 Go 语言环境:Waves 是用 Go 语言编写的,且需要 Go 1.25 或更高版本 才能从源码编译 。
打开终端,执行以下命令安装 Go:
sudo apt update sudo apt install golang-go- 安装完成后,输入
go version验证版本号是否满足要求。
安装 ALSA 开发库:这是 Waves 用来输出声音的核心库 。
在终端执行:
sudo apt install libasound2-dev
第二步:下载并编译 Waves 源码
系统准备就绪后,就可以开始获取 Waves 的源码并进行编译了。
获取源码:使用
git命令将 Waves 的代码克隆到本地 。git clone https://github.com/llehouerou/waves.git进入目录:
cd waves编译安装:使用
go install命令进行编译和安装。这个过程会把可执行文件放到你的~/go/bin目录下 。go install github.com/llehouerou/waves@latest- 小提示:如果提示找不到
go命令,请检查第一步的 Go 是否安装成功。
- 小提示:如果提示找不到
第三步:基础运行与配置
安装完成后,需要进行一些基础配置,让 Waves 知道你的音乐在哪里,并连接必要的服务。
- 首次运行:直接在终端输入
waves并回车,程序会启动并自动创建默认的配置文件目录~/.config/waves/。 编辑配置文件:Waves 的强大功能都通过编辑配置文件实现。使用你喜欢的文本编辑器(如
nano或vim)打开配置文件:nano ~/.config/waves/config.toml配置音乐库路径:找到
default_folder这一行,将它指向你存放音乐的文件夹。这是浏览本地音乐的基础 。# 例如,你的音乐在 /home/你的用户名/Music 下 default_folder = "~/Music"配置图标样式(可选但推荐):如果你安装了 Nerd Font 字体,可以将
icons设置为"nerd",这样界面会显示更漂亮的图标 。icons = "nerd"
第四步:配置 Soulseek 下载功能(进阶)
这是 Waves 最吸引人的特性之一——内置下载功能。但前提是你需要先部署一个名为 slskd 的独立服务。slskd 是一个基于 Web 的 Soulseek 客户端,Waves 通过 API 调用它来完成搜索和下载 。
- 部署 slskd:这部分内容较多,你需要在服务器或本地电脑上通过 Docker 或直接下载二进制文件来运行 slskd。
- 获取 API 密钥:成功运行 slskd 后,在它的 Web 界面设置中找到 API 密钥。
配置 Waves 连接 slskd:回到
config.toml文件,找到[slskd]部分,填入你的 slskd 地址和 API 密钥,并指定下载完成的路径 。[slskd] url = "http://localhost:5030" # slskd 的默认地址 apikey = "你的-api-密钥-here" completed_path = "~/downloads/complete" # 必须和 slskd 的下载目录一致
第五步:配置 Last.fm 功能(可选)
如果你想记录收听历史或使用“电台模式”,就需要配置 Last.fm。
- 获取 API 凭证:访问 Last.fm API 申请页面 创建一个应用,获取
api_key和api_secret。 填入配置文件:在
config.toml中找到[lastfm]部分,填入你的信息 。[lastfm] api_key = "你的-api-key" api_secret = "你的-api-secret"- 关联账户:保存配置文件后,在 Waves 运行界面,按下
f键,然后按l键,按照屏幕上的提示授权你的 Last.fm 账户 。
第六步:运行与基本操作
一切就绪,在终端输入 waves 即可开启你的极客音乐之旅。
- 核心操作:程序启动后,随时可以按
?键查看所有快捷键帮助 。 - 视图切换:
F1浏览库,F2文件浏览器,F3播放列表,F4下载管理器 。 - 播放控制:
空格键播放/暂停,方向键选择歌曲,Enter键播放选中歌曲并清空当前队列,a键将选中歌曲添加到播放队列 。
🤔 常见问题排查
- 编译时报错 “go: github.com/llehouerou/waves@latest: module ... not found”:这通常是因为网络问题导致无法下载依赖。可以尝试设置 Go 模块代理:
go env -w GOPROXY=https://goproxy.cn,direct,然后再重新运行go install。 - 运行时提示 “无法打开音频设备”:检查 ALSA 库是否安装正确(
sudo apt install libasound2-dev),并确认没有其他程序独占声卡。 - 下载功能无法使用:请先独立测试 slskd 服务是否正常运行,以及
config.toml中的url和apikey是否填写无误。
整个配置过程中,关联 Last.fm 和 slskd 下载的步骤需要用到 API 密钥,操作起来可能有点繁琐。你在设置这两个部分时,需要我针对其中某一个环节(比如如何获取 Last.fm API 密钥)
从Hacker News上看到Waves的介绍,但一直没下手装。这篇教程拯救了我这个Linux小白。每一步该输入什么命令都写得清清楚楚,连配置文件怎么改都给了例子。现在终于可以在终端里一边写代码一边听歌了,还能记录收听历史,完美!
Short but real: This tutorial actually made me excited to try a terminal music player. Everything worked first try. The Last.fm scrobbling works perfectly. Thanks!
玩Linux二十年了,这种保姆级教程真是少见。连go env -w GOPROXY这种细节都写出来了,太贴心了。不过建议补充一下,如果不用go install,也可以git clone下来自己make,有时候这样更稳定。顺便说一句,Waves的作者llehouerou是个大神,关注他好久了。
The slskd integration is what makes Waves special. This tutorial explains the connection between the two services better than the official docs. I had given up on setting this up before, but the clear explanation of where to find the API key and how to match the download paths made it work. Thank you!
在Ubuntu22.04上完全照着教程走了一遍,一次成功!Waves这个界面挺清爽的,Nerd Font图标打开后颜值确实高。不过提醒一下各位,如果和我一样用ssh远程连接服务器听歌,记得要配置好音频转发,不然没声音。作者能不能再写一篇关于ALSA远程音频的教程?