You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用AppleScript向Apple Music资料库加歌会出现容量异常?

AppleScript 实现向Apple Music资料库添加当前播放曲目功能异常

核心问题现象

  • 初始脚本通过调用duplicate方法将当前播放曲目currentTrack复制到Apple Music的Library(资料库)时,资料库存在「现有曲目总数+1」的隐性容量上限
  • 每次通过脚本的duplicate方法添加新曲目后,该容量上限不会同步增长,后续无法继续通过脚本添加新曲目;仅当删除资料库内任意一个已有条目、释放1个容量位后,才能再添加1首新曲目
  • 若通过Apple Music客户端手动向资料库添加曲目,容量上限会正常更新,更新后即可继续通过AppleScript脚本添加曲目

初始实现代码

tell application "Music"
    set currentTrack to current track
    duplicate currentTrack to source "Library"
end tell

阶段性测试结果

可部分实现需求的JXA代码片段

  • duplicate方法属于异步操作,执行后仅返回true,不会返回已添加的曲目对象,因此代码中加入delay语句等待操作完成,目前暂未找到更优的同步实现方案
  • 该片段额外实现了标记曲目为喜爱、修改已添加曲目评分的功能
var music = Application("Music")
var app = Application.currentApplication()
app.includeStandardAdditions = true

var track = music.currentTrack
track.loved = true

var myLib = music.sources['Library']
track.duplicate({ to: myLib })

delay(4)

myLib.tracks().find(t => t.name() === track.name() && t.artist() === track.artist()).rating = 100

JXA代码的场景限制

  • 上述JXA代码存在适用场景边界:通过Create Station...(创建电台)功能播放曲目时代码失效,仅在播放*浏览(Browse)*板块下任意播放列表内的曲目时可正常运行
  • 初步验证规律:只有隶属于播放列表的曲目才能通过该脚本方式添加到Library中
  • 属性对比结果:同一首歌分别在创建电台播放、从其他播放列表播放时,databaseID和persistentId两类ID属性均不一致,推测该ID差异是导致场景适配异常的核心原因

成因参考

已检索到相关技术博客资料,其中对上述问题的成因有较多对应说明。


内容的提问来源于stack exchange,提问作者KadoBOT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:48:22