| 入口 | 完整链接 |
|---|---|
| 🧭 环球旅行游戏(主入口) | https://metazero-terminal.pages.dev/travel-2d/rpg |
| 🎵 音乐世界杯(新增各国热榜开赛) | https://metazero-terminal.pages.dev/musiccup/ |
玩法(游戏里):
1. 走到任意城市附近 → 地图上出现粉色发光的 🎶 音乐宝箱(屏外有粉色箭头指路),点开 = 抽一首当地推荐歌,自动播 30 秒,可「🎒 收进旅行背包」。
2. 右侧按钮 📻 当地电台 或 进城面板里的 📻 区块 → 打开电台,三个频道随便切。
3. 顶栏 🎵 数字 = 背包里收藏了几首,点开看「我的世界歌单」(按国家分组、可回放、可分享)。
4. 播完自动下一首,关掉弹窗也继续放(左下角常驻迷你播放条,可暂停/下一首/收藏/关闭)。
| 频道 | 内容 | 数据来源(真实接口) |
|---|---|---|
| 🪕 地域特色(默认) | 这个国家的本土乐种:葡萄牙 fado、日本演歌/民謡/三味線、巴西 samba/bossa nova/forró、塞内加尔 mbalax/kora、南非 amapiano/mbaqanga、中国民乐/古筝/京剧… | iTunes 曲库搜索 itunes.apple.com/search,每国配了真实乐种关键词表(共 170+ 个国家/地区) |
| 🔥 本国热榜 | 这个国家今天最火的 25 首(实时) | Apple 官方每日榜 itunes.apple.com/{国家码}/rss/topsongs/limit=25/json |
| 🏙️ 这座城 | 唱到这座城的歌(如维也纳 → Vienna) | iTunes 曲库按城市名搜索 |
每首都带 30 秒官方试听 + 专辑封面 + 跳去听全曲的链接。
城市附近随机生成(约 80% 的城市有一个),打开 = 从【地域特色】里随机抽一首当地歌,大封面 + 自动播放 + 一键收藏。抽不到本土乐种时依次退到热榜 → 这座城,永不空手。
localStorage 永久存档,记录:歌名/歌手/封面/试听/在哪座城、哪个国家收的/日期。面板按国家分组,统计「N 首歌 · 来自 M 个国家 / K 座城市」,可一键分享世界歌单;旅行战报(💰)里也自动多了一行音乐收藏。
musiccup 新增「🌍 各国热歌世界杯」——35 个国家,点一下拉它今天的 Top 16 直接开赛(带真试听)。这就是主席问的「音乐库能不能按国家排热门歌」的直接可玩答案。
> 「音乐库能不能提供按国家来排序的最热门歌曲?」
能。 苹果有一个免费公开、不用钥匙、浏览器可直连的每日榜接口(2026-07-25 实测):
`
https://itunes.apple.com/{国家码}/rss/topsongs/limit=25/json
→ HTTP 200 · access-control-allow-origin: * · 每条带 30 秒试听音频
`
逐国实测结果(70 个国家码,2026-07-25):
我怎么处理这个坑(诚实优先): 弱榜国家自动借用同语区榜(中国大陆 → 台湾榜),或降级为曲库搜索,并且在面板上一行小字如实写明:
> ⚠️ 中华人民共和国 本地榜无公开数据,这里放的是 Taiwan 榜(同语区借用,如实标注)
绝不把台湾榜冒充成「中国榜」。韩国因为只有 4 条,直接不放进音乐世界杯的国家列表(避免点了没反应)。
一个更重要的发现(这也是我为什么加了「地域特色」频道):
热榜其实很全球化——今天 JENNIE 的《Less than a Lover》同时挂在巴西/墨西哥/泰国/越南/新加坡/阿根廷/智利/秘鲁/哥伦比亚的榜首,Shakira 挂在英/法/西/葡/捷克榜首。如果只做「按国家热榜」,主席想要的地域特色/国家特色其实拿不到,会变成「走到哪都听同一首歌」。所以真正的地域味在【地域特色】频道:用每个国家真实的本土乐种去挖曲库。
工具:Chromium(Playwright)真开页面跑 JS,外部接口用 curl 走代理取真数据喂进页面(容器里浏览器直连代理被重置,故用此通道;数据本身是苹果官方真数据)。
| 检查项 | 命令/动作 | 结果 |
|---|---|---|
| 语法 | node --check radio.js / rpg.js | ✅ 通过 |
| 页面启动无崩溃 | Chromium 打开 rpg.html,抓 console/pageerror | ✅ 无实质报错,3689 座城市载入 |
| 🪕 地域特色逐国真拉 | 葡/日/巴/塞内加尔/爱尔兰/印/南非/中国 各拉一遍 | ✅ 24-30 首/国,拉到的是 Mariza(fado)、吉幾三/八代亜紀(演歌)、Seu Jorge/Caetano Veloso(samba/bossa)、N'dongo Lo(mbalax)、The Chieftains(爱尔兰传统)、Lata Mangeshkar、Kabza De Small(amapiano)、古筝名曲/京剧 |
| 🔥 热榜频道 | 日/法/中 | ✅ 25 首;中国正确显示「借用台湾榜」的诚实标注 |
| 🏙️ 这座城 | 维也纳 | ✅ 14 首(Vienna 相关) |
| 🎶 音乐宝箱→收藏 | 真点开、真收进背包 | ✅ 抽到真歌+封面,播放条出现,背包计数 1 |
| 🎒 背包面板 | 打开 | ✅「🎵 1 首歌 · 来自 1 个国家 / 1 座城市」 |
| 进城面板入口 | cityPanel | ✅ 有电台块 + 3 个频道按钮 |
| 旅行战报 | tripShareText() | ✅ 多出「🎵 收藏当地音乐」一行 |
| 截图验收 | 电台/宝箱/背包三张 | ✅ 都看清了(封面、按钮、播放条都正常渲染) |
| 上线验真 | curl 线上 URL + 对线上版本再跑一遍完整运行时测试 | ✅ HTTP 200、radio.js 46932B、线上跑全绿 |
| musiccup 各国热榜 | 真点巴西 | ✅ 拉到 25 首取 16 首开赛,4 张卡都有「▶ 试听30秒」 |
| 最强反对 | 我的回应 |
|---|---|
| 「30 秒试听不是完整电台,算什么电台?」 | 属实,这是苹果免费接口的硬约束(不给全曲)。缓解:自动连播 25-30 首 = 连续 10-15 分钟背景音;每首都给「🎧 听全曲」跳 Apple Music。要真·全曲需要付费授权或换 YouTube 嵌入(可做,但会打断游戏画面)。 |
| 「本土乐种关键词是你选的,会不会有主观偏差?」 | 会有。关键词是公认乐种名(fado/samba/mbalax/演歌…),但选哪几个是我的判断。为降低杂音,加了排序:曲风标签命中乐种名 +3、世界音乐/民谣类 +2、轻音乐/配乐类 -3,同一歌手最多 2 首。仍会偶有杂音(如搜 MPB 撞到 BGM 类曲目)。 |
| 「小城市没有国家字段,会不会认错国家?」 | 会。2585 个小城市数据无国家字段,用「最近一个有国家名的城市」兜底(≤900km),面板上标注「(按最近国家判定)」。边境城市可能判到邻国。 |
| 「中国大陆用户能不能听?」 | 试听音频域名是 audio-ssl.itunes.apple.com,大陆访问不稳定;榜单本身也无大陆数据。诚实结论:大陆网络下这个功能体验会打折。 |
可证伪锚点:如果 30 天后再测,itunes.apple.com/{cc}/rss/topsongs 接口若不再返回 access-control-allow-origin:* 或停服,本功能的热榜频道即失效(地域特色/这座城走 search 接口,独立)。届时的备选是 Deezer chart API 或 MusicBrainz+YouTube。
| 文件 | 说明 |
|---|---|
web/terminal/travel-2d/radio.js | 🆕 新增(约 460 行):国家映射表(170+)+ 本土乐种关键词表 + 三频道取数 + 播放器 + 宝箱 + 背包 |
web/terminal/travel-2d/rpg.js | 加钩子:🎶 宝箱实体/点击/生成/箭头指路、进城面板电台块、战报音乐行 |
web/terminal/travel-2d/rpg.html | 加载 radio.js、顶栏 🎵 收藏计数、📻 当地电台按钮 |
web/terminal/musiccup/index.html | 新增「🌍 各国热歌世界杯」35 国实时榜开赛 |
数据等级:热榜与曲目 = E1(苹果官方接口实时返回,2026-07-25 实测);本土乐种关键词表 = 我的整理(公认乐种名,非编造数据);榜单可用性逐国清单 = E1(70 国实测)。