0.0.5 • Published 1 year ago
@jixun/qmpc-cli v0.0.5
QMPC RPC 协议(CLI)
对 @jixun/qmpc-rpc 的简易包装,做示例用。
安装
可以安装到全局,或本地安装(推荐)。也可以不安装,直接使用 npx @jixun/qmpc-cli 执行。
全局安装:
npm i -g @jixun/qmpc-cli本地安装:
# 首先找一个目录
mkdir qmpc && cd qmpc
npm init -y
npm i @jixun/qmpc-cli
# 之后使用 `npx qmpc-cli` 来执行:
npx qmpc-cli helpCLI 使用
所有接口(除了下载)都可以添加 --display json 来获取 JSON 信息,可以用来自动化(虽然直接用这个库会更方便)。
认证文件
部分接口需要认证,因此你需要在 PC 客户端进行登录、抓包操作。
抓包并查找地址含有 /cgi-bin/musics.fcg?pcachetime= 的 POST 请求:
cookie项目填写请求头的Cookie头内容。session项目为请求包的comm对象内容,对照着模板填写或整个覆盖即可。
{
"cookie": "抓包获取",
"session": {
"_channelid": "20",
// ... 省略不计 ...
"wid": "9999999999999999999"
}
}程序会默认尝试读取“运行目录”下的 credentials.json 文件
查看帮助
npx qmpc-cli -h检索
npx qmpc-cli search -n 2 富士山下
序号 名称 歌手 专辑 音质 文件/file_id 音乐/music_id 1 富士山下 陈奕迅 What's Going On...? 144850032PB2V2QYWSC003aAPj81VWrbL2 富士山下 余超颖 <无> 14485002rG2i714bTsL0026ubWc4PrBUh
解释音质
npx qmpc-cli explain-quality 14485该音质值包含下述 8 种音质:
格式序号 格式 ID (Format) 描述 音质名 音质值 1 MP3_128MP3 - SD (128kbps) MP3_1280x013 MP3_320_PLAINMP3 - HQ (320kbps) MP3_3200x045 FLAC_StandardFLAC FLAC0x108 TRIAL_MP3_PLAIN试听 (低音质)? TRY0x409 OGG_96OGG - SD (96kbps) OGG_960x8013 OGG_320OGG - HQ (320kbps) NEW_30x080014 FLAC_AIMasteringFLAC - AI 臻品母带 NEW_00x100015 FLAC_AISurroundSoundFLAC - AI 臻品全景声 (双声道) NEW_10x2000
其中绿色表示高音质,黄色表示 AI 拉升,红色表示低音质。其它音质无特殊选项。
获取下载地址以及解密链接
⚠️ 注意:
- 该接口需要认证(如会员专属内容)。
- 客户端不会检查你是否有对应的资源访问权限。 \ 尝试越权获取可能会导致账号或 IP 被封锁。
指定 --user-quality Best,会自动选择最高可用音质(臻品全景声)。
npx qmpc-cli get-link -f 0032PB2V2QYWSC -m 003aAPj81VWrbL --file-quality 14485 --user-quality Best --display json如果需要指定其中一个音质,如 FLAC,参数更改如下:
npx qmpc-cli get-link -f 0032PB2V2QYWSC -m 003aAPj81VWrbL --format FLAC_Standard --display json返回值 (JSON 形式):
// FLAC (臻品全景声)
{"url":"http://cdn_host/AIM0xxxxxxxxxxxxxx.mflac?guid=00000000000000000000000000000000&vkey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&uin=10000&fromtag=12345","ekey":"U0F4...."}
// FLAC (SQ 无损)
{"url":"http://cdn_host/F0M0xxxxxxxxxxxxxx.mflac?guid=00000000000000000000000000000000&vkey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&uin=20000&fromtag=54321","ekey":"ZnFi...."}⚠️ 注意:
- 访问获取到的链接不需要携带
Cookie获其它信息。 - 文件下载后你需要手动使用获取到的 EKey 对文件进行解密。
下载文件
参考 get-link 的参数,额外多了下述参数:
-o, --output- 输出文件路径。--consume-download-limit, --no-consume-download-limit- 使用串流或下载接口,后者会消耗下载次数。默认为下载接口。--qmc2-seed- 用于解密EKey的种子。不填写则获得加密后的文件。
npx qmpc-cli download -f 0032PB2V2QYWSC -m 003aAPj81VWrbL --format FLAC_Standard --qmc2-seed 0 -o /tmp/富士山下.flac
npx qmpc-cli download -f 0032PB2V2QYWSC -m 003aAPj81VWrbL --format FLAC_Standard -o /tmp/富士山下.mflac