求编写iTunes脚本:按歌曲评分分类至播放列表后清除评分
需求可行性与实现方案
可行性判断
完全可行。iTunes(包括macOS Catalina及以后的Music应用)开放了对媒体库内容、播放列表、歌曲元数据(含评分)的脚本控制接口,能够完整实现你描述的「读取评分→分类到对应播放列表→清除评分」全流程。
推荐实现工具
首选AppleScript(适用于macOS),这是苹果官方为系统应用(含iTunes/Music)设计的原生脚本语言,语法贴合媒体库操作逻辑,无需额外依赖。若在Windows平台,可使用VBScript或AutoHotkey,但功能覆盖与易用性不如AppleScript。
具体实现建议
- 先完成iPod Classic与iTunes的评分同步,确保评分数据已导入iTunes媒体库
- 提前创建5个对应1-5星的播放列表,名称需与脚本内定义一致
- 核心逻辑步骤:
- 遍历iTunes中所有带有非零评分的歌曲
- 根据评分值(1-5星)将歌曲添加到对应播放列表
- 将该歌曲的评分重置为0星
- AppleScript示例片段:
tell application "iTunes" -- 匹配提前创建的播放列表名称 set ratingPlaylists to {"1星歌曲", "2星歌曲", "3星歌曲", "4星歌曲", "5星歌曲"} -- 遍历所有带评分的库内歌曲 repeat with aTrack in (every track of library playlist 1 whose rating > 0) set trackRating to rating of aTrack -- iTunes评分以0-100数值存储,1星=20,5星=100,计算对应列表索引 set listIndex to (trackRating div 20) if listIndex ≥ 1 and listIndex ≤ 5 then add aTrack to playlist (item listIndex of ratingPlaylists) -- 清除歌曲评分 set rating of aTrack to 0 end if end repeat end tell
- 注意事项:
- 运行脚本前备份iTunes媒体库,避免误操作丢失数据
- 若使用macOS Catalina及以后版本,将脚本中的
"iTunes"替换为"Music"即可兼容新应用 - 确保播放列表名称与脚本内定义完全匹配,否则会触发匹配错误
内容的提问来源于stack exchange,提问作者Albert Hoek
相关产品推荐
相关产品推荐

