Skip to content

feat: support custom Meting API endpoint via environment variable - #4625

Open
ZZHow1024 wants to merge 2 commits into
notionnext-org:mainfrom
ZZHow1024:feat/custom-meting-api-env
Open

ZZHow1024 wants to merge 2 commits into
notionnext-org:mainfrom
ZZHow1024:feat/custom-meting-api-env

Conversation

@ZZHow1024

@ZZHow1024 ZZHow1024 commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Resolves #4623

已知问题

  1. MetingJS 默认依赖公共 Meting API 服务(https://api.i-meto.com/meting/api)
    • 公共 API 服务可能出现访问不稳定、部分歌曲解析失败或服务不可用等问题。
    • 不同站长可能希望使用其他兼容 MetingJS 协议的公共 API 服务。
  2. 当前 components/Player.js 已支持通过 MUSIC_PLAYER_METING_API 指定自定义 API 地址,但 conf/widget.config.js 尚未提供对应的环境变量映射。
    • 使用 Vercel、Cloudflare Pages 等平台部署时,无法直接通过环境变量配置自定义 Meting API。
    • 用户需要修改项目源码才能更换 API 地址,不够方便。

解决方案

  1. 增加自定义 Meting API 环境变量配置
    • 新增 NEXT_PUBLIC_MUSIC_PLAYER_METING_API 环境变量。
    • 在 conf/widget.config.js 中将环境变量映射到 MUSIC_PLAYER_METING_API。
    • 保留现有 i-meto API 地址作为默认值,确保向后兼容。
  2. 完善环境变量配置示例和用户文档
    • 在 .env.example 中增加配置说明。
    • 在音乐播放器文档中增加自定义 Meting API 的使用说明。

改动收益

  1. 提高音乐播放器 API 配置的灵活性
    • 支持使用其他兼容 MetingJS 协议的公共 API 服务。
    • 降低对单一公共 Meting API 服务的依赖。
    • 无需修改 components/Player.js 即可更换 API 地址。
  2. 改善静态站点部署体验
    • 支持通过 Vercel、Cloudflare Pages 等平台的环境变量配置自定义 API。
    • 保留默认配置,不影响现有用户。
  3. 完善项目配置文档
    • 提供明确的环境变量名称、配置示例和使用说明。

具体改动

  1. conf/widget.config.js
    • 新增 MUSIC_PLAYER_METING_API 配置项。
    • 从 NEXT_PUBLIC_MUSIC_PLAYER_METING_API 读取自定义 API 地址。
    • 未设置环境变量时,继续使用默认的 i-meto API 地址。
  2. .env.example
    • 增加 NEXT_PUBLIC_MUSIC_PLAYER_METING_API 环境变量示例。
    • 说明该配置用于指定自定义 MetingJS API 服务地址。
  3. docs/user-guide/plugins/music-player.md
    • 增加自定义 Meting API 地址配置章节。
    • 补充 Vercel、Cloudflare Pages 等部署平台的环境变量配置示例。
    • 说明 API 协议兼容要求、CORS 跨域要求及重新部署注意事项。
  4. docs/user-guide/reference/features.md
    • 更新 MUSIC_PLAYER_* 配置索引。
    • 补充 MUSIC_PLAYER_METING_API 及其对应环境变量的说明。

测试确认

  • 本地开发环境测试通过
  • 生产环境构建测试通过
  • 默认情况下继续使用 i-meto API
  • 自定义环境变量配置正常工作
  • 自定义 Meting API 能够正常获取歌单和歌曲播放地址
  • 未配置环境变量时,原有播放器功能不受影响

用户文档(docs/user-guide/ / docs/developer/)

  • 不适用(无文档改动)
  • 已按 维护工作流 自检
  • 路径符合 docs/user-guide/ 目录约定
  • 已更新 user-guide/README.md(新增/移动文章时)
  • 已更新 ARTICLE_INDEX.md(新 slug 或路径变更时)
  • 环境变量名与 conf/*.config.js 一致(若文档涉及配置)
  • 示例中无真实 Token、.env、私有 ID
  • 保留或更新了「原文链接」(若源自 docs.tangly1024.com)

文档说明:

  • 对应官方文档:docs/user-guide/plugins/music-player.md
  • 对应页面:/user-guide/plugins/music-player

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat]支持通过环境变量自定义Meting API服务地址

1 participant