applescript 是 macos 原生自动化语言,可直接控制支持它的应用(如 music、spotify)实现播放、音量调节等操作,需配置权限、激活应用、处理错误并支持跨应用协同与扩展。

AppleScript 是 macOS 原生支持的自动化语言,专为精确控制应用程序而设计。它不依赖第三方工具,只要目标应用提供 AppleScript 支持(如 Music、QuickTime Player、Spotify 等),就能直接发送指令完成播放、暂停、切换、音量调节等操作。关键在于权限配置、应用状态管理与脚本健壮性设计。
权限与运行前提必须到位
macOS Mojave 及之后系统对自动化有严格限制。若脚本执行失败,大概率是权限未开启:
- 前往「系统设置 → 隐私与安全性 → 自动化」,确保「脚本编辑器」和目标应用(如 Music、Spotify)都被勾选
- 脚本中建议显式激活目标应用,避免因后台未运行导致命令失效:
tell application "Music" to activate - 第三方播放器(如 Spotify)需确认其 AppleScript 字典是否开放——可通过「脚本编辑器 → 文件 → 打开词典」并拖入 Spotify 应用来验证
核心媒体控制脚本写法
不同场景对应不同逻辑结构,但都遵循“告诉应用→执行动作→处理反馈”三步原则:
使用 inotes CLI 从终端管理 Apple Notes。当需要在 macOS 的 Notes.app 中列出、读取、创建、编辑、删除或搜索备忘录时使用。
- 基础播放控制:用 playpause 切换状态,next track / previous track 跳转,无需判断当前播放状态
- 音量精细调节:使用 set sound volume to X(X 为 0–100 整数),也可先 get sound volume 获取当前值再做增减
- 获取当前信息:可读取 current track's name、artist、duration 等属性,用于日志记录或条件判断
- 错误防护机制:包裹关键操作在 try ... on error ... end try 中,防止因应用未响应或网络延迟中断整个流程
跨应用协同与进阶扩展
单一脚本可串联多个应用行为,形成更实用的工作流:
- 用 do shell script 调用系统命令(如 afplay 播放本地音频),补充 AppleScript 不支持的格式
- 结合「自动操作」(Automator)封装 AppleScript 为菜单项或快捷键触发的服务,无需打开脚本编辑器
- 通过 Node.js 工具(如 spotify-node-applescript)将 AppleScript 控制能力暴露为 HTTP 接口,实现网页端或智能家居联动
- 搭配 Background Music 这类虚拟音频设备工具,让 AppleScript 控制的不只是播放状态,还能动态调整各应用独立音量或触发智能暂停
常见问题快速排查
脚本看似正确却无反应?优先检查这几项:
- 目标应用是否已启动(特别是 Spotify,有时最小化后 AppleScript 无法通信)
- 脚本中应用名称拼写是否准确(例如 “Music” 不是 “iTunes”,“QuickTime Player” 包含空格)
- 是否在「系统设置 → 辅助功能 → 指针控制 → 仅使用键盘控制」关闭状态下启用 GUI Scripting(如需模拟点击)
- 尝试在脚本末尾加 display alert "Done" 测试是否执行到该行,定位卡点










