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

解锁音乐开发新可能,轻松获取主流音乐平台数据

Meting API 简介

Meting API 是一款专为音乐开发者设计的开源接口服务,基于 Meting 构建。它提供简单、高效的方式,帮助开发者从网易云音乐、QQ音乐等主流平台获取歌曲、歌单、歌词等数据,并支持与 APlayer 等播放器无缝集成。

核心功能

  • 多平台支持:网易云音乐、QQ音乐等。
  • 数据丰富:支持歌曲、歌单、歌词、封面图等元数据获取。
  • 高度可定制:支持缓存配置、跨域设置、密钥验证等功能。
  • 开源免费:基于 MIT 协议,可自由部署和二次开发。

适用场景

  • 自建音乐播放器网站或应用。
  • 集成音乐功能到博客、论坛等平台。
  • 音乐数据分析与可视化项目。

环境准备

前提条件

  • 一台 Linux 服务器(推荐 CentOS 7+ 或 Ubuntu 18.04+)。
  • 基础命令行操作能力。

安装步骤

  1. 安装 Nginx 与 PHP
1
2
3
4
5
6
7
8
9
# CentOS 系统  
yum -y install nginx php-fpm

# Ubuntu 系统
apt-get install nginx php-fpm

# 启动服务并设置开机自启
systemctl start nginx php-fpm
systemctl enable nginx php-fpm
  1. 安装 Composer(PHP 包管理工具)
1
2
3
4
5
6
7
8
9
10
# 安装依赖  
yum install php php-cli php-zip wget # CentOS
apt-get install php php-cli php-zip wget # Ubuntu

# 下载并安装 Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# 验证安装
composer --version
  1. 部署 Meting API
1
2
3
4
5
6
7
8
9
10
11
# 克隆仓库  
git clone https://github.com/injahow/meting-api.git
cd meting-api

# 安装依赖(推荐使用国内镜像加速)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer install

# 或直接下载预编译包
wget https://github.com/injahow/meting-api/releases/latest/download/meting-api.zip
unzip meting-api.zip

或者下载打包文件https://github.com/injahow/meting-api/releases

服务配置

  1. Nginx 配置

编辑 /etc/nginx/conf.d/meting.conf,替换以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen [端口];
server_name [地址]; # 替换为你的域名或IP

root [meting-api安装目录]; # 替换为Meting API安装目录
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

# 禁止访问隐藏文件
location ~ /\.ht {
deny all;
}
}

重启 Nginx:

1
systemctl restart nginx  
  1. 修改 index.php 配置

index.php 文件开头添加跨域支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

// 允许跨站
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');

// 设置API路径
define('API_URI', api_uri());
// 设置中文歌词
define('TLYRIC', true);
// 设置歌单文件缓存及时间
define('CACHE', true);
define('CACHE_TIME', 86400);
// 设置短期缓存-需要安装apcu
define('APCU_CACHE', false);
// 设置AUTH密钥-更改'meting-secret'
define('AUTH', false);
define('AUTH_SECRET', 'meting-secret');

验证部署

访问你的 https://IP:端口,若看到以下界面即表示成功:

验证

进阶优化

自建API以后会发现提供的cover图非常小只有120*120,导致在音乐馆页面的封面图很模糊,可以通过修改src/Meting.php824行左右代码,将所有调用pic方法$size都变成300*300

1
2
3
4
5
6
7
public function pic($id, $size = 300)
{
switch ($this->server) {
case 'netease':
$size = 300;
$url = 'https://p3.music.126.net/'.$this->netease_encryptId($id).'/'.$id.'.jpg?param='.$size.'y'.$size;
break;

注意:图片会变大,增大尺寸可能略微影响加载速度,需权衡清晰度与性能。

使用公共 API

若自建服务不稳定,在官方的Meting API挂掉以后涌现了一大批优秀的公益API

  • https://api.injahow.cn/meting/
  • https://meting.qjqq.cn/

自用

在主题中只需在CDN.option.meting_api 填入下面中的任何一个即可

  • https://api.injahow.cn/meting/?server=:server&type=:type&id=:id&auth=:auth&r=:r
  • https://meting.qjqq.cn/?server=:server&type=:type&id=:id&auth=:auth&r=:r

在配置文件的最下方修改CDN.option.meting_api

配置文件