文章摘要
加载中...|
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结

博客音乐播放器接入了,但歌单是隐私的怎么办?

博客一直想加个背景音乐播放器,让访客进来不至于太安静。VitePress + Curve 主题自带音乐播放器组件,接入方式很简单:填一个网易云歌单 ID 就行。但真正跑起来,才发现坑全在后面。

播放器怎么配的

主题的音乐播放器基于 Meting API(一个免费的网易云/QQ 音乐接口),配置就几行:

js
music: {
  enable: true,
  url: "https://api.injahow.cn/meting/",
  id: 381756640,      // 网易云歌单 ID
  server: "netease",
  type: "playlist"
}

构建部署完,点开播放器——"获取播放列表失败,请重试"

排查过程

第一步:看网络请求

打开浏览器控制台 Network,发现请求 https://api.injahow.cn/meting/?type=playlist&id=381756640&server=netease 返回了错误信息:unknown playlist id(未知歌单 ID)。

第二步:换官方接口交叉验证

怀疑是第三方接口的问题,直接用网易云官方接口测试:

bash
curl "https://music.163.com/api/v6/playlist/detail?id=381756640" \
  -H "Referer: https://music.163.com"

返回:

json
{"code":401,"message":"该歌单已被创建者设置为隐私"}

真相大白:不是接口挂了,是这个歌单被创建者设成了隐私。网易云对隐私歌单,任何接口都不返回歌曲数据。

第三步:验证接口本身没问题

随便拿一个公开歌单(比如网易云热歌榜 3778678)测试同一个接口:

bash
curl "https://api.injahow.cn/meting/?type=playlist&id=3778678&server=netease"

正常返回歌曲列表 ✅。确认是歌单的问题,不是播放器的问题。

解决方案(二选一)

方案 A:换公开歌单(立即生效)

themeConfig.mjs 里的歌单 ID 换成公开歌单即可,比如热歌榜 3778678、飙升榜 3779629。改完重新构建部署,播放器立刻能响。

方案 B:把原歌单设为公开(保留自己的歌单)

如果你就是想用某个特定歌单:打开网易云 App/网页 → 进入那个歌单 → 右上角「···」→ 设为公开。设完等一两分钟,接口就能正常获取了。

踩坑总结

  1. "获取播放列表失败"九成是歌单隐私,不是接口坏了——先用官方 API 带 Referer 测一下歌单状态
  2. 第三方免费接口(Meting)可能不稳定,属于"能用但别依赖",重要功能要有备选方案
  3. 歌单里如果有 VIP 歌曲,免费接口拿不到播放地址,可能出现"有列表但点播放没声音",选歌单时尽量挑免费曲目多的

现在播放器正常工作了,写代码的时候有 BGM 陪伴,舒服多了。

评论 匿名评论 隐私政策