801 字
4 分钟
一个免费音乐网站的上线
gemini-aiAI 摘要
Gemini 2.5 Pro

起因#

很早以前,我做过一个叫「清音乐」的免费在线音乐网站。那时候完全是小白水平:

  • UI 直接抄的「清 Tab」的主页,加了个播放页
  • 用 SVG 透镜滤镜实现玻璃拟态,Edge 一开只剩 15FPS
  • 几千行过程式代码塞在一个 HTML 里,改一个样式全站爆炸
  • 靠免费 API,隔三差五就挂

暑假的时候我试图重构它,结果翻了翻代码当场自闭,直接放弃。

但神奇的是,这一坨代码居然是我所有网站里流量最高的(当时还没建博客呢)——在必应站长工具里显示能排到「在线免费音乐」相关词的前几名(现在应该没了)。这让我意识到:大家真的很需要一个干净、好看、不登录也能听、登录后还能永久收藏的免费音乐网站

如今市面上的免费音乐站要么 UI 像 2010 年,要么强制登录,要么后端跑路只剩个空壳。于是我决定:重做一次,这次要做得“好用”且“好看”。

新项目诞生#

用了一周时间,正好也是吃上了Gemini 3的发布,全新的 THW Music 上线了。

WARNING

本项目目前使用 ElysiumStack 公开的 ElysiumMeting 免费音乐API,在此致以最诚挚的感谢!

NOTE

我只是把 API 反代到了自己的子域名 meting.tianhw.top ,我不想给公益API太大压力,如果成了我会通过Docker自建API服务,但我的服务器在洛杉矶,网速不是很行,届时可能影响体验,先看看网站流量吧

地址:https://music.tianhw.top

这次最大的进步#

老版本(清音乐)新版本(THW Music)
无持久化存储,依靠浏览器本地存储用 Supabase 实现完整注册/登录 + 收藏永久同步
玻璃拟态 SVG 滤镜,巨卡纯 CSS + Tailwind 实现 WinUI 风格 Mica/Acrylic 效果,丝滑
歌词滚动卡顿逐句高亮 + 可拖动进度 + 全屏沉浸式歌词页
主题固定用 ColorThief 实时从专辑封面取色,动态主题换色
各种全局变量,屎山代码完整模块化 + 自定义事件总线,结构清晰
CF Pages,国内抽风Netlify 大陆优化

技术栈一览#

  • 样式:Tailwind CSS + 手写 WinUI 风格 Mica 毛玻璃 + CSS 变量动态主题
  • 动画:GSAP(只用了 Timeline 和轻量 tween)
  • 颜色提取:ColorThief
  • 音乐源:ElysiumMeting→ EdgeOne CDN 反代 → meting.tianhw.top
  • 认证与数据库:Supabase
  • 部署:Netlify

功能展示#

WARNING

目前的登录/注册还没有验证码的步骤,各位大佬手下留情,上一次的便签墙还能招来XSS攻击我是没想到的😅

  1. 注册/登录后解锁收藏:收藏夹跨设备同步
  2. 动态主题:每换一首歌,UI 主色调自动跟随专辑封面变化
  3. 歌词体验
    • 逐句高亮 + 平滑滚动
    • 全屏沉浸式歌词页(侧边栏自动隐藏)

体验#

目前,此项目已经部署在 Netlify 上,点击 https://music.tianhw.top 即可体验!

有 bug 或建议欢迎在下方的评论区提,我看到都会回。

一个免费音乐网站的上线
https://tianhw.top/posts/thwmusic/
作者
THW
发布于
2025-11-24
许可协议
CC BY-NC-SA 4.0