30天音乐雷达:用cli3/cli打造你的专属Spotify专辑发行日历
你是否曾错过关注乐队的新专辑发布?是否在海量推荐中难以筛选真正感兴趣的新歌?本文将展示如何通过cli3/cli的New Releases功能,构建个性化的音乐发行日历,让你轻松掌握关注艺人的最新动态。读完本文,你将能够:设置自定义时间范围的发行提醒、筛选专辑/单曲/播客内容、一键管理已浏览发行信息。
功能概述:New Releases是什么?
New Releases是cli3/cli项目中的一个自定义应用(Custom App),位于CustomApps/new-releases/目录下。该功能通过分析用户关注的艺人和播客,自动聚合指定时间范围内的新发布内容,并以日历式界面展示。核心特性包括:
- 多维度内容筛选:支持专辑、单曲、EP、播客等内容类型过滤
- 时间范围控制:可选择30/60/90/120天内的发行内容
- 个性化展示:支持相对日期(如"3天前")或绝对日期显示
- 交互优化:包含一键播放、忽略内容、撤销操作等功能
安装与启用
确保已安装cli3/cli主程序,安装方法可参考项目README.md。New Releases作为内置应用,默认路径为CustomApps/new-releases/,包含以下核心文件:
- 主逻辑:index.js
- 界面组件:Card.js
- 设置面板:Settings.js
启用步骤:
- 打开Spotify客户端
- 进入cli3/cli菜单,选择"自定义应用"
- 找到"New Releases"并启用
- 首次使用会请求访问你的关注列表权限
核心功能详解
发行日历界面
应用启动后,默认展示30天内的新发行内容,按日期分组展示。每个内容卡片包含:
- 专辑/播客封面图
- 标题及艺术家信息
- 发行类型(专辑/单曲/EP等)
- 播放按钮和忽略按钮
自定义设置
点击界面右上角设置按钮,可打开配置面板Settings.js,主要选项包括:
| 设置项 | 说明 | 默认值 |
|---|---|---|
| Time range | 内容时间范围筛选 | 30天 |
| Relative date | 使用相对日期显示 | 关闭 |
| Show type | 显示内容类型标签 | 开启 |
| Show track count | 显示曲目数量 | 开启 |
| Fetch new music | 获取音乐内容 | 开启 |
| Fetch new podcast | 获取播客内容 | 关闭 |
高级操作
忽略不感兴趣的内容:点击卡片右上角的"×"按钮可忽略该发行,避免重复展示。忽略记录保存在本地存储中,可在设置中通过"Reset dismissed releases"恢复。
快速操作菜单:右键点击内容卡片,可打开操作菜单,包含:
- 播放专辑/播客
- 查看艺术家页面
- 添加到收藏
- 详细信息
代码解析:实现原理
数据获取流程
index.js中定义了数据获取的核心逻辑:
async function fetchTracks() {
const artistList = await getArtistList();
Spicetify.showNotification(`Fetching releases from ${artistList.length} artists`);
const requests = artistList.map(async (obj) => {
return await getArtistEverything(obj).catch((err) => {
console.debug("Could not fetch all releases", err);
});
});
return await Promise.all(requests);
}
上述代码通过getArtistList()获取用户关注的艺术家,再通过getArtistEverything()获取每位艺术家的所有发行内容,最后根据时间范围过滤结果。
卡片组件设计
Card.js实现了内容展示卡片,核心代码:
class Card extends react.Component {
play(event) {
Spicetify.Player.playUri(this.uri, this.context);
event.stopPropagation();
}
closeButtonClicked(event) {
removeCards(this.props.uri);
// 显示撤销通知
}
render() {
// 卡片UI渲染逻辑
}
}
每个卡片包含播放按钮、忽略按钮和艺术家链接,支持拖拽操作和右键菜单。
使用技巧与最佳实践
-
定期更新时间范围:每月初将时间范围调整为30天,确保不错过当月新发行
-
组合使用内容筛选:
- 工作日:仅开启"专辑"和"EP"筛选
- 周末:开启"播客"和"单曲"选项
-
恢复误操作:忽略重要发行后,可通过顶部"undo"按钮撤销操作
-
性能优化:关注艺术家超过100位时,建议适当增大时间范围以减少请求次数
常见问题解决
Q: 为什么有些关注艺术家的新专辑没有显示?
A: 检查Settings.js中的内容类型过滤,确保未勾选"Compilations"(合辑)选项,部分专辑可能被归类为合辑。
Q: 时间范围设置为120天但只显示了60天内容?
A: 这是Spotify API的限制,单个请求最多返回60天数据。可分两次查看:先设为60天,再设为120天查看更早内容。
Q: 如何默认只显示专辑?
A: 修改Settings.js中的默认配置,将"single-ep"设为false。
总结
New Releases功能通过智能聚合和个性化筛选,解决了音乐爱好者追踪新发行内容的痛点。结合cli3/cli的扩展能力,还可进一步定制更多功能,如添加通知提醒、导出发行日历等。完整实现代码可参考CustomApps/new-releases/目录下的源代码,欢迎贡献改进建议。
通过合理配置和使用这个工具,你将不再错过关注艺术家的任何新作品,让音乐发现变得更加高效和个性化。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




