前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让Meting API解锁音乐开发新可能

让Meting API解锁音乐开发新可能

作者头像
M.Talen
发布2024-06-22 15:19:33
980
发布2024-06-22 15:19:33
举报
文章被收录于专栏:爱吃猫的鱼BLOG爱吃猫的鱼BLOG

1 前言

Meting API 是一个多功能的音乐播放服务接口,它能够帮助开发者轻松集成多种音乐平台的播放功能到自己的应用中。

本站音乐欣赏页使用了自建 Meting API 服务,可以前往查看相关数据获取。

引用站外链接

音乐欣赏

使用自建 Meting API 服务

注意

本教程使用的 Meting-API 由 @xizeyoupan 提供,其原作者是 @metowolf

2 安装

通过参阅官方文档及周边教程和我的个人实践,推荐使用 Docker 部署,本文将从命令行、宝塔面板和 1Panel 三处进行分别演示,但他们的本质都是 Docker 部署的方式。关于 Docker、宝塔面板和 1Panel 的安装部署可参考以下文章。

引用站外链接

安装Docker

零基础Docker入门指南

引用站外链接

部署宝塔面板和1Panel

服务器最佳搭档,宝塔和1Panel的部署与选择

2.1 命令行

最简单的一种部署方式,仅需两行命令即可实现,前提确保Docker已被安装。

下载镜像

代码语言:javascript
复制
docker pull intemd/meting-api:latest

运行容器

代码语言:javascript
复制
docker run -d --name meting -p 3000:3000 intemd/meting-api:latest
  • -name后的meting为容器名称,可自定义。
  • -p后第一个3000为端口映射,可自定义。需要放行对应防火墙。

检查

使用 docker ps 命令检查是否启动成功。

找到 meting-api 自定义容器名称所在的行,看 STATUS 列是否为 running,若是即为安装成功。

2.2 宝塔面板

打开已安装Docker的宝塔面板,点击侧边栏Docker,然后在线上镜像中搜索 intemd/meting-api 并拉取。

最后在容器页创建容器,使用命令创建,输入下方命令并执行。

代码语言:javascript
复制
docker run -d --name meting -p 3000:3000 intemd/meting-api:latest
  • -name后的meting为容器名称,可自定义。
  • -p后第一个3000为端口映射,可自定义。需要放行对应防火墙。

检查是否成功只需要查看该容器的状态是否为运行中

2.3 1Panel

由于应用商店中未上架 Meting API,常规的安装方式就是从容器页面拉取镜像并创建容器,这里建议使用第三方应用商店一键部署。

获取第三方应用商店列表

打开计划任务页,点击创建计划任务,任务类型选择 Shell 脚本,脚本内容如下填写,其它必填项自定义。

代码语言:javascript
复制
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

最后点击安装,端口设置后需要放行对应防火墙,其它项均可自定义,如果面板开启了防火墙需要勾选端口外部访问。

检查是否成功在已安装中找到该应用看状态是否为已启动

2.4 小结

虽然是三种不同的安装途径,但它们的本质都是 Docker 部署,尤其是宝塔面板与命令行最为相识。

完成安装后可在浏览器访问 IP:端口 验证是否成功。

3 配置HTTPS

如需要相关服务安全通过 https 访问,则需要绑定域名、安装 SSL 证书、设置反向代理(Nginx)。

  • 绑定域名请在域名服务商处将自定义二级域名解析到部署 Meting-API 的服务器上。
  • 申请免费 SSL 证书的方法很多,建议到域名服务商处查看能否申请。

3.1 命令行

将已申请 SSL 证书的证书文件(.pem)和密钥文件(.key)上传到服务器并记录路径。上传推荐使用 FinalShell

确保已安装 Nginx,打开 Nginx 配置文件,默认路径为 /usr/local/nginx/conf 目录下的 nginx.conf

代码语言:javascript
复制
vim /usr/local/nginx/conf/nginx.conf

添加以下内容:

代码语言:javascript
复制
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;
  }
}
  • 5行、6行:填写前面记录的证书、密钥文件路径。
  • 13行:创建容器时设置的端口映射,修改3000保持一致。

最后退出保存,并重新加载配置文件。

代码语言:javascript
复制
nginx -s reload

3.2 宝塔面板

在网站项目页添加站点,域名为前面解析的域名,其它项均自定义。

在站点修改中的 SSL 里复制粘贴证书文件(.pem)和密钥文件(.key),然后在配置文件里与其它 location 项同级添加内容。

代码语言:javascript
复制
location /meting/ {
  proxy_pass http://localhost:3000/; # 设置的端口
  proxy_set_header X-Forwarded-Host $scheme://$host:$server_port/meting;
}
  • 2行:创建容器时设置的端口映射,修改3000保持一致。

3.3 1Panel

在网站页创建网站,选择反向代理,主域名填写前面解析的域名,代理地址添加 127.0.0.1:端口

创建完成后点击配置,在 HTTPS 中启用 HTTPS 并导入证书文件(.pem)和密钥文件(.key),然后在配置文件里与其它 location 项同级添加内容。

代码语言:javascript
复制
location /meting/ {
  proxy_pass http://localhost:3000/; # 设置的端口
  proxy_set_header X-Forwarded-Host $scheme://$host:$server_port/meting;
}
  • 2行:创建容器时设置的端口映射,修改3000保持一致。

3.4 小结

如果出现错误请仔细比对本教程的参考图,反向代理内容很容易添加到错误的地方。

根据官方文档作出的解释,配置反向代理时请务必使用给定文本,并且访问时在域名后添加 /meting/,否则 https 依旧使用 http 连接。

4 成功截图

  • 主页:https://域名/meting/
  • 测试页:https://域名/meting/test/
  • API地址:https://域名/meting/api/

5 使用

该 API 对平台的支持:

图片

歌词

URL

单曲

歌单

歌手

搜索

网易云音乐

QQ音乐

×

×

YouTube Music

×

×

Spotify

×

×

最简单的使用办法就是导入 MetingJS

导入之前先引入 API:

代码语言:javascript
复制
<script>
	var meting_api='https://域名/meting/api?server=:server&type=:type&id=:id&auth=:auth&r=:r';
</script>

然后依次导入 APlayer.min.cssAPlayer.min.jsMeting.min.js

代码语言:javascript
复制
<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>

最后参考示例使用:

代码语言:javascript
复制
<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 文档

6 写在最后

Meting-API 部署并不算复杂,有需要的可以自行部署,不想部署的也可以使用一些公益项目,这里提供我部署的,有需要的可以使用。

代码语言:javascript
复制
https://meting-api.talen.top/meting/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 前言
  • 2 安装
    • 2.1 命令行
      • 2.2 宝塔面板
        • 2.3 1Panel
          • 2.4 小结
          • 3 配置HTTPS
            • 3.1 命令行
              • 3.2 宝塔面板
                • 3.3 1Panel
                  • 3.4 小结
                  • 4 成功截图
                  • 5 使用
                  • 6 写在最后
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档