ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

KuGouMusicApi库模式指南:不启动HTTP服务,编程式调用酷狗音乐API的正确姿势

KuGouMusicApi库模式指南:不启动HTTP服务,编程式调用酷狗音乐API的正确姿势 KuGouMusicApi库模式指南不启动HTTP服务编程式调用酷狗音乐API的正确姿势【免费下载链接】KuGouMusicApi酷狗音乐 Node.js API service项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApiKuGouMusicApi 是一款基于 Node.js 的酷狗音乐 API 服务除了常见的 HTTP 服务模式外还支持库模式不启动任何 HTTP 服务直接以 JavaScript 库的方式编程式调用酷狗音乐的全部接口。本文是一份面向初学者的完整指南帮你搞清库模式的入口、调用方式和常见坑几分钟就能跑通第一个搜索请求。两种模式先分清服务和库KuGouMusicApi 提供两种使用姿势模式入口文件启动方式适用场景HTTP 服务模式index.js、app.jsnpm run dev/npm start部署成在线 API供前端、App 调用库模式本文main.js直接require引入脚本自动化、自建后端、Electron 桌面应用核心区别很简单npm start走的是app.js→ Express 服务监听 3000 端口你要用fetch/浏览器访问接口库模式只需要 Node.js 环境不监听任何端口把 API 当普通函数调就行。 官方文档中将 main.js 标注为编程式 API 入口模块区别于 index.js 的 HTTP 服务入口两者职责完全分离互不干扰。安装准备克隆仓库并安装依赖 库模式要求 Node.js 12见 package.json 中的engines配置。克隆仓库git clone https://gitcode.com/gh_mirrors/ku/KuGouMusicApi.git cd KuGouMusicApi npm install安装完成后有两种引入方式// 方式一相对路径项目内使用 const api require(./main.js); // 方式二按包名引入package.json 中 main 字段指向 main.js const api require(kugoumusicapi); 另外如果想获得一个压缩、可分发的独立构建产物可以运行npm run pkgjs它会通过 tsdown.config.js 把app、util/*、module/*全部打包输出到bin/api_js/目录方便直接拷贝到其他项目里。库模式的工作原理一个扁平的函数对象很多人第一次看文档会疑惑为什么require一下就能得到search、login这些函数原理在 main.js 里写得非常清楚启动时动态扫描module/ 目录下的所有.js文件_开头的内部辅助文件会被跳过每个文件名去掉后缀后就变成一个同名 API 函数例如module/search.js →api.search(params)module/login_cellphone.js →api.login_cellphone(params)module/song_url.js →api.song_url(params)每个函数都被包了一层如果你传的cookie是字符串如tokenxxx;useridxxx会被自动转换成 JSON 对象省去手动解析的麻烦。最终导出的是一个扁平对象约 160 个 API 函数 服务器工具startService等 底层请求工厂createRequest。所以你在任何地方看到的接口路径在库模式下统统变成函数调用。第一个程序式调用搜索酷狗音乐 以搜索为例整个流程就三步引入 → 调用 → 取结果const api require(./main.js); (async () { const res await api.search({ keywords: 海阔天空, page: 1, pagesize: 10 }); console.log(res.status, res.body); })();所有接口都返回统一的结构定义见 interface.d.ts 中的ApiResponse{ status: 200, // HTTP 状态码 body: { ... }, // 业务数据JSON headers: { ... }, // 响应头 cookie: [ ... ] // 服务端返回的 Cookie }拿到body里的歌曲 hash 后紧接着就能查播放地址const urlRes await api.song_url({ hash: xxxx });Cookie 的两种传法字符串或对象 涉及登录态的接口如获取用户信息、歌单、云盘都需要传 Cookie。库模式下支持两种写法推荐用字符串最省事// 写法一字符串main.js 会自动转成对象 await api.user_detail({ cookie: tokenxxx;userid123;dfidxxx }); // 写法二对象 await api.user_detail({ cookie: { token: xxx, userid: 123, dfid: xxx } });一个典型的登录 → 带身份搜索完整链路// 1. 手机验证码登录code 需先通过 api.captcha_sent 发送获取 const login await api.login_cellphone({ mobile: 138xxxx, code: 123456 }); // 2. 从登录结果拼 Cookie后续请求全程复用 const cookie token${login.body.token};userid${login.body.userid}; // 3. 携带身份调用任意接口 const mine await api.user_playlist({ cookie, page: 1 });每个接口的参数细节都可以在 TypeScript 类型定义 interface.d.ts 中查到每个接口都有中文注释比如SearchParams说明了keywords必选、type支持song/special/lyric等类型。如何查到任意接口的参数说明 三个查找路径按需使用接口总览文档docs/README.md 列出了全部接口的名称、参数、返回值示例是字典函数名 文件名想看某个接口怎么实现的直接打开 module/ 目录下同名文件如 module/playlist_detail.js 对应歌单详情接口类型定义interface.d.ts 提供每个函数的入参类型与注释IDE 里api.search(一敲就有智能提示。进阶配置平台切换与代理 库模式和 HTTP 服务模式共享同一套配置环境变量机制两个最常用的配置标准版 / 概念版切换设置platformlite环境变量后util/index.js 会自动改用概念版的 appid 和客户端版本。注意两个平台的 token不通用HTTP 代理设置KUGOU_API_PROXYhttp://127.0.0.1:7890底层请求工厂 util/request.js 会自动走代理发送请求。# 概念版 代理 platformlite KUGOU_API_PROXYhttp://127.0.0.1:7890 node your-script.js设备标识GUID、MAC、WebGL 指纹等由 server.js 和 util/util.js 自动生成通常无需手动配置如需固定设备身份可参考 CLAUDE.md 中列出的KUGOU_API_*环境变量。新手常见坑位清单✅别引错入口require(./index.js)或require(./app.js)会直接启动 HTTP 服务库模式请用main.js。✅注意登录态失效token 有有效期脚本长跑场景建议捕获错误后重新登录。✅别漏 timestamp酷狗服务端对相同请求会做约 2 分钟缓存高频轮询时可在参数里带timestamp: Date.now()绕过类型定义中CommonParams已说明。✅平台 token 不通用标准版登录的 token 在概念版下无效切换platform后请重新登录。✅仅供学习交流本项目为非官方实现请尊重版权24 小时内清除过程中产生的版权数据勿用于商业用途。总结 回顾一下 KuGouMusicApi 库模式的三个关键认知入口是 main.js不是 index.js / app.js引入后就是一个扁平的 API 函数对象函数名即文件名module/ 下 160 多个接口全部开箱即用Cookie 字符串自动转换配置全靠环境变量platform切换版本、KUGOU_API_PROXY设置代理与 HTTP 模式完全一致。掌握以上三点你就可以完全绕开 HTTP 服务把酷狗音乐的搜索、登录、歌单、云盘等能力以编程方式嵌入到自己的 Node.js 项目里。【免费下载链接】KuGouMusicApi酷狗音乐 Node.js API service项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表