唐巧的博客

利用 Automator 自动化你的工作

字数统计: 719阅读时长: 2 min
2020/03/25

开端

最近需要压缩一些 MP3 和 MP4 的大小。首先我在网上搜了一下相关的 App,试了好几个都没有理想的,于是我就想用 ffmpeg 或许更方便一些。

安装好 ffmpeg 之后,我搜了一下,找到了相关的压缩指令:

压缩 MP3

ffmpeg -i source.mp3 -map 0:a:0 -b:a 96k dest.mp3

压缩 MP4:

ffmpeg -i source.mp4 -vcodec libx265 -crf 26 dest.mp4

于是,我很快就完成了相关的压缩。

存档和同步

不过,我发现这些指令参数都很长,我很可能下次用的时候还是记不住要查询。于是,我想到了 Dash

Dash 是为程序员提供的一个文档查找工具,同时它还有一个代码片段(Snippets)功能,可以帮助你保存和查询常用的代码片段。

我首先把这些命令放到了我的 Dash 的 Snippets 里,这样我以后只需要输入 mp3 或者 compress 或者 ffmpeg 即可调出这条命令(如下图)。

我的 Dash 的存储目录是在 Dropbox 下,于是这条命令自动同步到了我所有的电脑中。

Automator

但是这样的使用还是不够方便,因为我还是需要切换到命令行来输入这些指令,我想以后能不能我在 mp3 或 mp4 文件上点击右键,就自动出现相关的压缩指令呢?于是我想到了 Mac 自带的 Automator

Automator 可以帮你将一些自动化的流程转换成右键菜单甚至是 App。

首先在 Application 目录下找到 Automator 并启动它。然后选择新建一个 Quick Action:

接着,设置 workflow 只在音频文件的右键菜单中出现,也只在 Finder 中生效。

接下来进行 3 步:

  • 拖入一个 「Run Shell Script」模块
  • 将「Pass input」设置成 as arguments
  • 在 Shell 中填入以下内容
# 输入文件
fileName=$1
# 输出文件名
targetName=${fileName:0:-4}"-compressed.mp3"

/usr/local/bin/ffmpeg -i $fileName -map 0:a:0 -b:a 96k $targetName

编辑完成之后保存。找一个 MP3 文件测试,在 finder 中右键已经可以出现我们想到的菜单了:

以下是最终的操作效果图(用 EZGif 生成):

运行状态

像这种运行时间挺长的执令,其实可以在系统的顶部状态栏看到一个滚动的小齿轮,点击即可看到运行状态:

备份

~~Service 是保存在本地的,我们还是要备份一下,直接复制到 Dropbox 同步盘即可: cp -r ~/Library/Services/* ~/Dropbox/Service-backup/ ~~

可以直接将 workflow 文件保存到 iCloud 上:

小结

DashAutomator 是你自动化命令的好帮手,再借助 Dropbox、iCloud 等云盘将它们同步到你所有的电脑,你就可以随时随地使用这些命令。

祝大家玩得开心~

CATALOG
  1. 1. 开端
  2. 2. 存档和同步
  3. 3. Automator
  4. 4. 运行状态
  5. 5. 备份
  6. 6. 小结