核心用法
whatisxlistening-to 是一套面向 Last.fm 用户的完整音乐数据工具链,包含 CLI 与 Web Dashboard 两大模块。
CLI 功能:通过 ./lastfm 命令实现初始化配置、实时查询(now)、统计概览(stats)、近期记录(recent)、全量历史下载(backfill)、增量同步(sync)及本地数据库检索(search)。数据持久化至 SQLite,支持离线查询。
Web Dashboard:基于 Docker/Kubernetes 部署的个人音乐展示页,提供实时播放状态、历史浏览、统计卡片及 REST API。支持时区配置与自定义显示名称,适合作为个人主页组件或社交媒体签名档。
显著优点
1. 完整数据主权:backfill 命令可下载全部历史记录至本地,避免云端服务限制
2. 双模架构:CLI 满足快速查询需求,Dashboard 满足可视化展示需求
3. 部署灵活:单容器 Docker 运行或 K8s 集群部署均可,配置简洁
4. API 完备:提供 /api/now、/api/stats 等端点,便于第三方集成
5. 测试覆盖 100%:代码质量有保障
潜在缺点与局限性
- 依赖 Last.fm 服务:API 可用性、速率限制及数据准确性完全受限于 Last.fm
- 非官方集成:需用户自行创建 API Key,无 OAuth 流程,配置门槛存在
- 功能边界明确:仅支持 Last.fm,不支持 Spotify、Apple Music 等直接连接
- 无用户认证:Dashboard 为公开访问(依赖部署环境的安全策略)
适合人群
- 重度 Last.fm 用户,希望备份个人音乐数据
- 开发者/博主,需要展示「正在听什么」的实时状态
- 自托管爱好者,追求数据本地化与可控性
常规风险
- API Key 泄露:
config.json或环境变量中明文存储密钥,需妥善保管 - 公开 Dashboard 暴露隐私:若部署至公网,历史播放记录可被他人查看
- 数据同步延迟:Last.fm 本身存在 3-5 分钟 scrobble 延迟,非实时精准
使用建议
建议结合反向代理(如 Nginx/Caddy)添加基础访问控制,并定期执行 backfill 以确保本地数据完整性。