Meting API 是一个多功能的音乐播放服务接口,它能够帮助开发者轻松集成多种音乐平台的播放功能到自己的应用中。
本站音乐欣赏页使用了自建 Meting API 服务,可以前往查看相关数据获取。
注意
本教程使用的 Meting-API 由 @xizeyoupan 提供,其原作者是 @metowolf。
通过参阅官方文档及周边教程和我的个人实践,推荐使用 Docker 部署,本文将从命令行、宝塔面板和 1Panel 三处进行分别演示,但他们的本质都是 Docker 部署的方式。关于 Docker、宝塔面板和 1Panel 的安装部署可参考以下文章。
最简单的一种部署方式,仅需两行命令即可实现,前提确保Docker已被安装。
下载镜像
docker pull intemd/meting-api:latest
运行容器
docker run -d --name meting -p 3000:3000 intemd/meting-api:latest
-name
后的meting
为容器名称,可自定义。-p
后第一个3000
为端口映射,可自定义。需要放行对应防火墙。检查
使用 docker ps
命令检查是否启动成功。
找到 meting-api 自定义容器名称所在的行,看 STATUS
列是否为 running
,若是即为安装成功。
打开已安装Docker的宝塔面板,点击侧边栏Docker,然后在线上镜像中搜索 intemd/meting-api
并拉取。
最后在容器页创建容器,使用命令创建,输入下方命令并执行。
docker run -d --name meting -p 3000:3000 intemd/meting-api:latest
-name
后的meting
为容器名称,可自定义。-p
后第一个3000
为端口映射,可自定义。需要放行对应防火墙。检查是否成功只需要查看该容器的状态是否为运行中
。
由于应用商店中未上架 Meting API,常规的安装方式就是从容器页面拉取镜像并创建容器,这里建议使用第三方应用商店一键部署。
获取第三方应用商店列表
打开计划任务页,点击创建计划任务,任务类型选择 Shell 脚本
,脚本内容如下填写,其它必填项自定义。
git clone -b localApps https://mirror.ghproxy.com/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
rm -r /opt/1panel/resource/apps/local/appstore-localApps
然后在操作列点击执行,再前往应用商店点击更新应用列表,随后搜索 Meting-API
。
最后点击安装,端口设置后需要放行对应防火墙,其它项均可自定义,如果面板开启了防火墙需要勾选端口外部访问。
检查是否成功在已安装中找到该应用看状态是否为已启动
。
虽然是三种不同的安装途径,但它们的本质都是 Docker 部署,尤其是宝塔面板与命令行最为相识。
完成安装后可在浏览器访问 IP:端口
验证是否成功。
如需要相关服务安全通过 https
访问,则需要绑定域名、安装 SSL 证书、设置反向代理(Nginx
)。
将已申请 SSL 证书的证书文件(.pem)和密钥文件(.key)上传到服务器并记录路径。上传推荐使用 FinalShell
。
确保已安装 Nginx,打开 Nginx 配置文件,默认路径为 /usr/local/nginx/conf
目录下的 nginx.conf
。
vim /usr/local/nginx/conf/nginx.conf
添加以下内容:
server {
listen 443 ssl;
server_name meting-api;
ssl_certificate ../server.pem; # pem文件的路径
ssl_certificate_key ../server.key; # key文件的路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location /meting/ {
proxy_pass http://localhost:3000/; # 设置的端口
proxy_set_header X-Forwarded-Host $scheme://$host:$server_port/meting;
}
}
最后退出保存,并重新加载配置文件。
nginx -s reload
在网站项目页添加站点,域名为前面解析的域名,其它项均自定义。
在站点修改中的 SSL 里复制粘贴证书文件(.pem)和密钥文件(.key),然后在配置文件里与其它 location
项同级添加内容。
location /meting/ {
proxy_pass http://localhost:3000/; # 设置的端口
proxy_set_header X-Forwarded-Host $scheme://$host:$server_port/meting;
}
在网站页创建网站,选择反向代理,主域名填写前面解析的域名,代理地址添加 127.0.0.1:端口
创建完成后点击配置,在 HTTPS 中启用 HTTPS 并导入证书文件(.pem)和密钥文件(.key),然后在配置文件里与其它 location
项同级添加内容。
location /meting/ {
proxy_pass http://localhost:3000/; # 设置的端口
proxy_set_header X-Forwarded-Host $scheme://$host:$server_port/meting;
}
如果出现错误请仔细比对本教程的参考图,反向代理内容很容易添加到错误的地方。
根据官方文档作出的解释,配置反向代理时请务必使用给定文本,并且访问时在域名后添加 /meting/
,否则 https 依旧使用 http 连接。
该 API 对平台的支持:
| 图片 | 歌词 | URL | 单曲 | 歌单 | 歌手 | 搜索 |
---|---|---|---|---|---|---|---|
网易云音乐 | √ | √ | √ | √ | √ | √ | √ |
QQ音乐 | √ | √ | √ | √ | √ | × | × |
YouTube Music | √ | √ | √ | √ | √ | × | × |
Spotify | √ | √ | √ | √ | √ | × | × |
最简单的使用办法就是导入 MetingJS。
导入之前先引入 API:
<script>
var meting_api='https://域名/meting/api?server=:server&type=:type&id=:id&auth=:auth&r=:r';
</script>
然后依次导入 APlayer.min.css
、APlayer.min.js
、Meting.min.js
:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/aplayer/1.10.1/APlayer.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/aplayer/1.10.1/APlayer.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/meting/2.0.1/Meting.min.js"></script>
最后参考示例使用:
<meting-js
server="netease"
type="playlist"
id="3778678">
</meting-js>
选项 | 值 | 描述 |
---|---|---|
server | netease:网易云音乐tencent:QQ音乐ytmusic:YouTube Musicspotify:Spotify | 音乐平台 |
type | song:单曲playlist:歌单artist:歌手search:搜索 | 类型 |
id | 3778678 | 歌曲ID、歌单ID、专辑ID |
以上为必填项,如需更多项可查阅 APlayer 文档。
Meting-API 部署并不算复杂,有需要的可以自行部署,不想部署的也可以使用一些公益项目,这里提供我部署的,有需要的可以使用。
https://meting-api.talen.top/meting/