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

如何定期导出Photos.app收藏的照片/视频及解决Automator脚本报错

嘿,我来帮你逐个解决这些关于Photos.app的问题~

1. 手动导出所有已收藏照片/影片为ZIP文件

这个操作很直接,跟着步骤走就行:

  • 打开Photos.app,左侧边栏找到并点击已收藏(没看到侧边栏的话按Cmd+Shift+S调出)
  • 按Cmd+A全选所有已收藏内容
  • 点击顶部菜单栏的文件 > 导出 > 导出X项(X是你选中的内容数量)
  • 在导出设置窗口里,按需调整:比如选「原始」格式保证画质,勾选「导出包含视频」,然后选择一个保存位置(建议在桌面新建一个专门的文件夹,比如「收藏导出」)
  • 导出完成后,找到这个文件夹,右键点击它选择压缩「收藏导出」,系统会自动生成对应的ZIP文件
2. 每周自动导出的调度方案(Apple Script + Automator + 日历)

要实现定期自动导出,我们可以组合AppleScript、Automator和Mac日历来完成,操作不算复杂:

第一步:编写导出逻辑的AppleScript

打开「脚本编辑器」(在「应用程序/实用工具」文件夹里),粘贴下面的代码,记得把exportPath和zipPath换成你自己的路径(比如"/Users/你的用户名/Desktop/每周收藏导出/"):

set exportPath to "/Users/你的用户名/Desktop/每周收藏导出/原始文件/"
set zipPath to "/Users/你的用户名/Desktop/每周收藏导出/本周收藏.zip"

-- 自动创建导出目录(不存在的话)
do shell script "mkdir -p " & quoted form of exportPath

tell application "Photos"
    -- 获取所有已收藏的媒体项目
    set favoriteItems to every media item where favorite is true
    -- 导出原始文件到指定目录
    export favoriteItems to POSIX file exportPath using originals yes
end tell

-- 压缩导出的文件为ZIP(覆盖已存在的旧ZIP)
do shell script "ditto -c -k --sequesterRsrc --keepParent " & quoted form of exportPath & space & quoted form of zipPath

点击脚本编辑器的「编译」按钮(锤子图标)确认没有语法错误,然后把它保存为应用程序格式(比如命名为「自动导出收藏内容」)。

第二步:设置每周定时运行

  1. 打开「日历」app,新建一个事件
  2. 给事件起个名字(比如「自动导出收藏照片」),在「重复」选项里选「每周」,设置你想要的运行时间(比如每周日凌晨2点,避开使用电脑的时段)
  3. 点击「提醒」下拉菜单,选「自定义」,然后点击「添加提醒」,选择「打开文件」,找到你刚才保存的AppleScript应用
  4. 把事件的「显示为」设置为「繁忙」,这样到点日历就会自动触发这个应用运行

如果你觉得日历不够灵活,也可以用launchd来配置定时任务,但操作相对复杂,日历的方式对普通用户更友好。

3. 解决Automator修改AppleScript语法的报错问题

这个坑我之前也踩过!Automator的「运行AppleScript」动作有时候会自动调整语法,把using originals true改成with using originals,导致脚本跑不起来。这里有两个靠谱的解决办法:

办法一:调整脚本语法适配Automator

把脚本里的导出语句改成Automator能识别的格式,也就是把using originals yes换成with using originals:

export favoriteItems to POSIX file exportPath with using originals

修改后直接在Automator的「运行AppleScript」动作里使用,Automator就不会再乱改这行代码了。

办法二:让Automator直接调用外部脚本

如果还是有问题,你可以把AppleScript单独保存为.scpt格式(比如在脚本编辑器里保存为「导出收藏脚本.scpt」),然后在Automator里添加「运行Shell脚本」动作,输入下面的命令来调用这个脚本:

osascript "/Users/你的用户名/路径/导出收藏脚本.scpt"

这样Automator就不会碰你的脚本内容,直接执行它,完美避开语法被修改的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:56:16