如何通过苹果脚本修复 "original file could not be found" 错误

How to fix "original file could not be found" error via apple script

我的音乐库有问题。 有些歌曲我无法播放,因为它们在本地找不到。 这是我在播放特定歌曲时收到的错误消息示例:

The song ... could not be used because the original file could not be found. Would you like to locate it?

我只需按 Cancel 即可通过 Apple Music 服务匹配歌曲。 这样我就可以播放歌曲了。

已讨论此问题 here,尽管不是以自动方式进行。因此,我想找到一个自动化的解决方案。

为此,我采用了通过播放每首歌曲来循环播放我的曲库的方法。 默认情况下,如果找不到歌曲,脚本会自动跳到下一首歌曲。 但是,我希望脚本能够处理“找不到文件”错误并按 Cancel

不幸的是,我目前的尝试没有奏效:

-- Play first song in library (turn off shuffle and repeat)
set i to 4000 --number of songs in library
repeat while i > 0
    tell application "Music" to play (next track)
    tell application "System Events"
        key code 53
    end tell
    set i to i - 1
end repeat

如何强制脚本处理这些弹出错误?

注意:如果您有任何建议,我也愿意接受任何其他更有效的解决方案来解决我的问题。我决定不选择 Locate 选项,因为它需要更多时间,无论如何我会在稍后阶段从我的磁盘中删除所有未引用的歌曲。

更新版本。以下脚本不播放曲目,并在曲目损坏时以编程方式单击“取消”按钮。就像 OP 手动修复曲目工作流程所描述的那样:

tell application "Music"
    activate -- required
    tell source "Library"
        repeat with nextTrack in tracks
            try
                with timeout of 2 seconds
                    set theResult to play (contents of nextTrack)
                end timeout
                theResult
            on error
                delay 1
                tell application "System Events" to tell process "Music" to tell window 1 to if UI element "Cancel" exists then click UI element "Cancel"
            end try
            stop
        end repeat
    end tell
end tell