惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
Scott Helme
Scott Helme
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
O
OpenAI News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
T
Troy Hunt's Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
腾讯CDC
C
Check Point Blog
Spread Privacy
Spread Privacy
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
大猫的无限游戏
大猫的无限游戏
P
Palo Alto Networks Blog
Hacker News: Ask HN
Hacker News: Ask HN
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Hacker News
The Hacker News
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
T
Tor Project blog
Martin Fowler
Martin Fowler
博客园 - 叶小钗
罗磊的独立博客
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Heimdal Security Blog
V
Vulnerabilities – Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
Latest news
Latest news
WordPress大学
WordPress大学
G
Google Developers Blog
N
Netflix TechBlog - Medium
S
Security Affairs
S
Secure Thoughts
Know Your Adversary
Know Your Adversary

爱吃猫的鱼

当身体被强制暂停 盘点开发者眼里的赛博大善人(一) 博客系统 FlecBlog 现已正式开源 Windows 注册表原理与实战指南 GitHub Actions 自动化部署全攻略 自研博客系统打造极致极简创作体验 2025 年度总结 替代 Alist 的多存储文件列表程序 OpenList 高通 410 随身 WiFi 刷入 Debian 利用 BAT 脚本实现高效自动化部署方案 B7c61c40 全面详解开箱即用的 AI 工具 Cursor 2024 年度总结 使用 Hexo 多种部署方法搭建个人网站 利用 Termux 让安卓手机成为专属家庭服务器 全面详细的常用Linux命令汇总(2) Follow:信息浏览聚合,万物皆可订阅 QRcodeGen项目介绍,基于Python打造二维码生成新利器 Nginx 可视化编辑工具 Nginx UI 安装和使用 深入探究电子邮件三大协议 使用Ventoy集成多PE打造强大U盘 Xterminal:颜值高、功能强,追求卓越体验的SSH工具 高效利用 GitHub 搜索,精准快速获取所需 IDM:广受欢迎的高速下载管理器 零基础Docker入门指南 服务器最佳搭档,宝塔和1Panel的部署与选择 FinalShell:功能强大的服务器管理和远程连接工具 掌握Markdown技巧,轻松应对写作需求 C3dc4fa3 玩转npm:从基础到实践的全面指南 GitHub Desktop:让代码托管不再高深莫测 85af4b3 推荐10个有趣的摸鱼网站,让快乐简单起来 F34ad695 E2f1455b 503a6294 22ea4c20 A43ddadb Ba7d8a84 Caffd8d6 20820ccd E3ddac0 88040fa7 Ca1756cf Aa5669ee 78084f29 98b56a65 Efba7c23
让Meting API解锁音乐开发新可能
Talen · 2024-06-22 · via 爱吃猫的鱼

1 前言

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

注意

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

2 安装

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

2.1 命令行

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

下载镜像

BASH

docker pull intemd/meting-api:latest

运行容器

BASH

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 并拉取。

image-20240603224940790

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

BASH

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

image-20240603225224498

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

2.3 1Panel

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

获取第三方应用商店列表

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

BASH

git clone -b localApps https://ghp.ci/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

image-20240603232212372

然后在操作列点击执行,再前往应用商店点击更新应用列表,随后搜索 Meting-API

image-20240603232512449

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

image-20240603233006190

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

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

BASH

vim /usr/local/nginx/conf/nginx.conf

添加以下内容:

TEXT

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保持一致。

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

3.2 宝塔面板

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

image-20240604003819847

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

TEXT

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

image-20240604010050222

3.3 1Panel

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

image-20240604005550737

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

TEXT

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

image-20240604010237097

3.4 小结

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

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

4 成功截图

image-20240604011556536

image-20240604011721278

image-20240604011803943

5 使用

该 API 对平台的支持:

图片 歌词 URL 单曲 歌单 歌手 搜索
网易云音乐
QQ音乐 × ×
YouTube Music × ×
Spotify × ×

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

导入之前先引入 API:

HTML

<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

HTML

<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>

最后参考示例使用:

HTML

<meting-js
	server="netease"
	type="playlist"
	id="3778678">
</meting-js>
选项 描述
server netease:网易云音乐<br />tencent:QQ音乐<br />ytmusic:YouTube Music<br />spotify:Spotify 音乐平台
type song:单曲<br />playlist:歌单<br />artist:歌手<br />search:搜索 类型
id 3778678 歌曲ID、歌单ID、专辑ID

以上为必填项,如需更多项可查阅 APlayer 文档

6 写在最后

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

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

https://blog.talen.top/posts/833fcabb