用途:指导从零开发 MusicFree 音乐播放器插件,或将某音乐网站、API 适配为插件。触发场景为编写、创建、开发 MusicFree 插件。
主要能力:覆盖插件协议、媒体类型定义、方法签名、沙箱环境、站点分析、本地调试、发布更新等完整流程。核心方法包括 search、getMediaSource、getLyric、getAlbumInfo、getMusicSheetInfo、getArtistWorks、getMusicInfo、importMusicItem、importMusicSheet、getTopLists、getTopListDetail、getRecommendSheetTags、getRecommendSheetsByTag、getMusicComments。
使用方式:先检查环境(node --version),安装 Playwright(npm install -D playwright),可复用已安装的 Chrome/Edge。按路径选择:有 API 文档则映射端点;静态站点用 cheerio 解析;SPA 站点用 Playwright 观察网络请求后用 axios 复现。遵循“观察→分析→复现→验证”,从 search 和 getMediaSource 开始逐个实现并测试,最后输出 .js 文件。测试脚本用 node test-plugin.js 运行。发布时上传 GitHub,将 raw 链接填入 srcUrl,用户通过“从 URL 安装插件”安装,更新 version 后应用内更新。
限制:插件运行在沙箱(vm.createContext),每次调用 10 秒超时;仅可 require axios、cheerio、crypto-js、dayjs、big-integer、qs、he、webdav,其它库需打包。禁止盲猜 URL、禁止搜索网络找 API、禁止批量探测与重复请求。本地测试时 env.getUserVariables() 不可用,需模拟。优先使用 ES8 及以下语法。具体站点适配细节与完整协议见官方仓库。