基于Ubuntu的TeamSpeak网易云音乐机器人配置教程

我的运行环境:Ubuntu16.04,mobaxterm

网上linux教程较少且杂乱,故作总结备份,文末附上原文链接,侵删。

配置Teamspeak

准备阶段

创建一个teamspeak用户

1
2
3
4
5
6
7
8
9
10
# 切换root用户
su -
# 新建一个用户
useradd -s /bin/bash -m teamspeak
# 加到sudo组
usermod -a -G sudo teamspeak
# 设置密码
passwd teamspeak
# 切换teamspeak用户
su - teamspeak

安装服务端

前往下载官方linux服务端,最新应该是SERVER 64-BIT 3.13.7版本。

TeamSpeak 下载 | TeamSpeak

注意!ts3中文站是盗版网站,会改动你的hosts文件,导致你无法进入官方服务器或者缺失部分账号功能。

或者使用命令直接下载

1
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2

解压

1
tar -xvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2

创建teamspeak目录并将解压后的文件移动

1
2
3
mkdir teamspeak
mv teamspeak3-server_linux_amd64 teamspeak-rf
rm -rf teamspeak3-server_linux_amd64

进入teamspeak目录

1
cd teamspeak

同意许可协议

1
touch .ts3server_license_accepted

启动服务端

1
./ts3server_startscript.sh start

随后显示如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
------------------------------------------------------------------
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "xxxxxxxx"
apikey= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
------------------------------------------------------------------

------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.

token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
------------------------------------------------------------------

记录token值,现在就可以从客户端连接TS服务器了,记得开放端口,看下一步

从TS客户端连接你的域名/IP,第一次进入会要求你输入管理员密钥,就是上面的token后一串代码,输入之后你就是频道的所有者了。最好在权限里面备份一个权限密钥,token只能使用一次。意外失去管理员身份的话还得进入后台重新获取一个token值

ctrl+c退出

配置服务器

开放端口(还有防火墙)

端口 协议 说明
9987 UDP TeamSpeak默认语音服务端口
10011 TCP TeamSpeak ServerQuery raw 端口
10022 TCP TeamSpeak ServerQuery SSH 端口
30033 TCP TeamSpeak 文件传输端口
41144 TCP TSDND

设置开机自启

切换root用户

1
su -

新建teamspeak.service

1
vim /etc/systemd/system/teamspeak.service

注意,在所有Exec开头的路径中,第一个teamspeak是我的用户名,第二个teamspeak是我的ts服务端目录。若自定义名称请自行改动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Teamspeak Service
Wants=network.target

[Service]
WorkingDirectory=/home/teamspeak
ExecStart=/home/teamspeak/teamspeak/ts3server_minimal_runscript.sh
ExecStop=/home/teamspeak/teamspeak/ts3server_startscript.sh stop
ExecReload=/home/teamspeak/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

系统服务操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 更新配置
systemctl daemon-reload

# 设置开机启动
systemctl enable teamspeak.service

# 启动服务
systemctl start teamspeak.service

# 停止服务
systemctl stop teamspeak.service

# 重启服务
systemctl restart teamspeak.service

# 查看状态
# Active: active (running) 即为运行成功,若不成功可以kill掉之前开启的服务端进程
systemctl status teamspeak.service

至此TS服务端配置完毕。

配置机器人

安装ffmpeg依赖库

切换root用户

1
2
3
apt update
apt upgrade
apt install libopus-dev ffmpeg

安装本体

这里使用了ZHANGTIANYAO1大佬构建的linux版TS3AudioBot(官方的有问题,无法加载插件),需要下载最初版本,在release中版本号为1.1.0with.TS3Bot.linux-x64.zip。附上github项目TS3AudioBot-NetEaseCloudmusic-plugin

插件使用FiveHair大佬修改后的版本TS3AudioBot-NetEaseCloudmusic-plugin-UNM,版本号为2.0.3.1

这里建议自行下载,远程传输文件给服务器,不然下载很慢

1
2
3
4
# 切换到teamspeak用户
su - teamspeak
wget https://github.com/ZHANGTIANYAO1/TS3AudioBot-NetEaseCloudmusic-plugin/releases/download/1.1.0/with.TS3Bot.linux-x64.zip
wget https://github.com/FiveHair/TS3AudioBot-NetEaseCloudmusic-plugin-UNM/releases/download/2.0.3.1/YunPlugin-UNM-2.0.3.1.zip

解压with.TS3Bot.linux-x64.zip

1
2
3
4
5
unzip with.TS3Bot.linux-x64.zip
# 将解压后的linux-64目录改名
mv linux-x64 TS3AudioBot
# 解压后会得到两个文件YunPlugin-UNM.dll和YunSettings.ini
unzip YunPlugin-UNM-2.0.3.1.zip

删除原来的插件,并拷贝最新版的YunPlugin-UNM.dll和YunSettings.ini进plugins目录

1
2
3
4
5
cd TS3AudioBot/plugins
rm *
cd ~
mv YunPlugin-UNM.dll TS3AudioBot/plugins/
mv YunSettings.ini TS3AudioBot/plugins/

进入TS3AudioBot启动服务

1
2
cd TS3AudioBot
./TS3AudioBot

这里可能会提示权限不够,这个文件默认是不可执行的,所以要给它权限

1
2
chmod 755 TS3AudioBot
./TS3AudioBot

如下报错请跳转6.2

1
2
No usable version of libssl was found
Aborted (core dumped)

接下来会有几步配置需要输入

第一个是设置管理员id,在teamspeak-工具-身份中可以看到你的唯一ID,粘贴进去

第二个是服务器ip

第三个是密码,没有直接回车

最后ctrl+c结束

设置开机自启

切换root用户

1
su -

新建ts3audiobot.service

1
vim /etc/systemd/system/ts3audiobot.service

输入以下配置

同样的,/home/teamspeak/TS3AudioBot/这个地址取决于你安装TS3AudioBot的位置

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=TS3AudioBot
After=teamspeak.service

[Service]
WorkingDirectory=/home/teamspeak/TS3AudioBot/
ExecStart=/home/teamspeak/TS3AudioBot/TS3AudioBot
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

系统服务操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 更新配置
systemctl daemon-reload

# 设置开机启动
systemctl enable ts3audiobot.service

# 启动服务
systemctl start ts3audiobot.service

# 停止服务
systemctl stop ts3audiobot.service

# 重启服务
systemctl restart ts3audiobot.service

# 查看状态
# Active: active (running) 即为启动成功
systemctl status ts3audiobot.service

网页管理

开放58913端口

端口 协议 说明
58913 TCP 机器人后台网页

在teamspeak服务器内双击私聊机器人,发送

1
!api token

访问ip:58913,输入token即可登录网页管理

可以上传本地音乐,或网易云链接进行播放

注意

一般来说我们是访问不了的,因为作者配置的bot并没有页面前台的目录

想要实现页面管理,需访问原作者Splamy/TS3AudioBot: Advanced Musicbot for Teamspeak 3 (github.com)项目

下载原版TS3AudioBot,将其中的WebInterface文件夹放入TS3AudioBot目录中即可

之前运行bot服务时看到的ERROR报错也和这个有关,但不影响我们的最终目的

不过也建议配置一下,方便拓展更多功能

本章结语

到这里为止,音乐机器人以及可以正常使用,plugins目录下ini配置文件是别人的网易云API,不安全。想要登录听vip歌曲还要在本地部署网易云API

本地部署网易云API

开放3000端口

端口 协议 说明
3000 TCP 网易云API后台网页

安装git

首先,确认你的系统是否已安装git,可以通过git指令进行查看,如果没有,在命令行模式下输入

1
sudo apt-get install git

安装完成后进行git配置

1
2
3
4
5
6
# 设置用户名,保留""
git config --global user.name "你的名字"
# 设置邮箱,保留""
git config --global user.email "你的邮箱"
# 查看配置信息
git config --list

配置完成后,需要创建验证用的公钥,因为git是通过ssh的方式访问资源库的,所以需要在本地创建验证用的文件

1
ssh-keygen -t rsa -C "你的邮箱" 

接下来一路回车直到出现一个方框为止

接下来要去.ssh目录里查看生成的密钥

1
cat  ~/.ssh/id_rsa.pub

将ssh-rsa开头,邮箱结尾的整个字符串复制下来,去github,点击头像进入settings页面

SSH and GPG keys选项中,新增一个密钥

回到Ubuntu系统,检测是否可以连接到github

1
ssh -T git@git.oschina.net

安装node.js

安装Node.js

1
sudo apt install nodejs

安装npm

1
sudo apt install npm 

利用n来管理版本

1
2
3
sudo npm install -g n
# 如果有人卡在安装n这里,请更换镜像源,再重复安装
npm config set registry https://registry.npmmirror.com

一般都要升级的,我们需要14.0.0以上版本,这里给出两种方案(最好选第一种

1
2
3
4
# 最好选这个,升级长期支持版本,对于后续章节5中解锁版权歌曲有帮助
sudo n lts
# 有些linux版本老旧,缺失一些文件,会卡在这步,只能直接指定安装最低支持版本
sudo n xx.x.x

随后切换版本并查看(若是没有显示最新版本,新建一个终端查看就好)

1
2
3
# 方向键上下选择即可
sudo n
node -v

搭建API

切换teamspeak用户

1
su - teamspeak

git NeteaseCloudMusicApi

1
sudo git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git

home目录会多出一个NeteaseCloudMusicApi目录,进入

1
cd NeteaseCloudMusicApi

执行安装(有可能版本不够高,按照提示更新即可)

1
sudo npm install

启动服务

1
node app.js

此时会显示

1
server running @ http://localhost:3000

访问ip:3000能访问到网易云API页面即为配置成功

ctrl+c退出

设置开机自启

切换root用户

1
su -

新建 netease.service

1
vim /etc/systemd/system/netease.service

复制下列内容到 netease.service 文件中

注意,这里是你的home用户目录下git到的网易云API地址,根据自身情况修改

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Netease Cloud Music API Service
After=network.target

[Service]
WorkingDirectory=/home/teamspeak/NeteaseCloudMusicApi/
ExecStart=node /home/teamspeak/NeteaseCloudMusicApi/app.js
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

系统服务操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 更新配置
systemctl daemon-reload

# 设置开机启动
systemctl enable netease.service

# 启动服务
systemctl start netease.service

# 停止服务
systemctl stop netease.service

# 重启服务
systemctl restart netease.service

# 查看状态
# Active: active (running) &&
# server running @ http://localhost:3000 即为启动成功
systemctl status netease.service

ctrl+c退出

最后阶段

修改插件配置

切换teamspeak用户

1
su - teamspeak

编辑本地网易云API地址

1
2
cd TS3AudioBot/plugins
vim YunSettings.ini

修改连接,=后面都删掉,输入你能成功访问网易云API的链接。或者就默认localhost:3000

1
WangYiYunAPI_Address = http://localhost:3000

重启服务器,确保三个服务都运行成功,机器人应该就已经在你的TS频道了

启动机器人

接下来都是ts客户端操作,不需要在服务器

双击机器人,输入

1
!plugin list

可以看到当前插件状态(RDY就绪)

1
2
"TS3AudioBot": All available plugins:
#0|RDY|YunPlgun (BotPlugin)

我们需要手动把插件启用

1
!plugin load 0

查看当前插件状态(+ON运行)

1
2
3
4
!plugin list
# ts显示消息
"TS3AudioBot": All available plugins:
#0|+ON|YunPlgun (BotPlugin)

运行成功

现在进行登录操作

首先给机器人最高权限,以便于加载二维码头像

1
!yun login

点击机器人,右侧显示出二维码头像,扫码登录即可

成功会提示

1
2
"Aster": !yun login
"TS3AudioBot": 登陆成功

常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
正在播放的歌单的图片和名称可以点机器人看它的头像和描述
vip音乐想要先登陆才能播放完整版本:(输入指令后扫描机器人头像二维码登陆)
!yun login

双击机器人,目前有以下指令(把[xxx]替换成对应信息,包括中括号)
1.立即播放网易云音乐
!yun play [音乐名称]

2.添加音乐到下一首
!yun add [音乐名称]

3.播放网易云音乐歌单(如果提示Error: Nothing to play...重新输入指令解决)
!yun gedan [歌单名称]

4.播放网易云音乐歌单id
!yun gedanid [歌单名称]

5.立即播放网易云音乐id
!yun playid [歌单id]

6.添加指定音乐id到下一首
!yun add [音乐id]

7.播放列表中的下一首
!yun next

8.修改播放模式
!yun mode [模式选择数字0-3]
0 = 顺序播放 1 = 顺序循环 2 = 随机播放 3 = 随机循环

需要注意的是如果歌单歌曲过多需要时间加载,期间一定一定不要输入其他指令

解锁版权

环境要求

node.js需要18.0.0

npm需要10.2.4以上

不满足条件请自行升级版本

搭建API

git Unblock Netease Music 维护小组 (github.com)

1
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic

home目录会多出一个UnblockNeteaseMusic目录

1
2
# 进入git到的包下
cd UnblockNeteaseMusic

安装服务

1
sudo npm install

启动服务

1
2
# 默认端口为8080,我在这里改为3001
node app.js -p 3001

显示以下信息即为成功

1
HTTP Server running @ http://0.0.0.0:3001

设置开机自启

新建UnblockNeteaseMusic.service

1
vim /etc/systemd/system/UnblockNeteaseMusic.service

复制下列内容到 UnblockNeteaseMusic.service 文件中

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=netease proxy service
After=network-online.target

[Service]
WorkingDirectory=/home/teamspeak/UnblockNeteaseMusic
ExecStart=node /home/teamspeak/UnblockNeteaseMusic/app.js -p 3001 -e https://music.163.com -s
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

常见问题

插件加载错误

1
"TS3AudioBot": Error: Plugin error: UnknownError

说明你使用了原版TS3AudioBot,加载不了插件

无法启动bot

1
No usable version of libssl was found Aborted (core dumped)

libssl版本不可用,去Index of /ubuntu/pool/main/o/openssl1.0下载一个1.0版本的libssl

例如,http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb

拒绝连接

1
"TS3AudioBot": An unexpected error occurred: Connection refused Connection refused

说明你的YunSettings.ini中的WangYiYunAPI_Address路径没配置好

缺失权限

1
"TS3AudioBot": Error: You cannot execute 'yun play'. You are missing the 'cmd.yun.play' right!

普通用户的权限没有配置,编写rights.toml,具体查看Wiki中的Rights

登录报错

1
"TS3AudioBot": An unexpected error occurred:  The remote server returned an error: (502) Bad Gateway.

扫描二维码后登陆失败

没有本地部署网易云API,请按照步骤3中所述配置

无法连接

查看你的端口是否开放,防火墙是否关闭

无法访问网页后台

具体查看2.4小节

结语

本文是我结合多篇文章汇总得出,借鉴了很多教程,为了备份配置流程而作。

参考文章:

Ubuntu下安装Teamspeak服务器

在Ubuntu下安装TS3AudioBot

Ubuntu18.04 开机自启服务——网易云音乐api自启服务-CSDN博客

若有侵权,联系qq1048632280

最后编辑于2023-12-06