article_image

编注:自动化往往涉及许多背景知识以及移植思路,但为避免破坏作者简练的行文风格,这些信息均以脚注形式给出。如无特别说明,本文的脚注均为编辑所加。——Minja

在 iOS 设备上想要下载各路网络视频,一直以来都是个难题。我家里有台 Mac mini 作为家庭服务器长期开机运行,于是我就想到了远程调用 Mac mini 上的 Downie 来下载视频,并将视频存储至 iCloud 中,迂回地解决此问题。

该方案的缺陷也很明显,若希望立刻将视频下载至本地,就需要有一台 macOS 设备持续运行。若安装了该方案的 macOS 设备并未持续运行,则视频将在此 macOS 设备下次开机时进行下载。1

此自动化流程需要用到以下 App:

Alt text
NB4rTz5

DLV.shortcut 快捷指令下载

Hazel 规则下载

Shortcuts 配置

iOS 及 macOS 设备均需要安装 DLV.shortcut 快捷指令(DLV 为 Download Videos 下载视频的缩写), 其作用在于:

  1. 在 iOS 设备上,通过 sharesheet 或快捷指令主程序内直接运行的方式,将视频链接写入至 DLV.txt 文件中;
  2. 在 macOS 设备上,经由 Hazel 调用快捷指令读取 DLV.txt 文件内的视频链接,再通过 AppleScript 调用 Downie 下载视频,同时 DLV.txt 文件内的视频链接清空以便下次再读取。
Alt text
VZTzdoK

我将 DLV.txt 存放于 iCloud 的 Shortcuts 文件夹内(上图左),便于 iOS 设备上的 Shortcuts 快捷指令写入视频链接。其在 macOS 设备上的完整文件路径是 /Users/se7en/Library/Mobile Documents/iCloud~is~workflow~my~workflows/Documents/DLV.txt。各位读者下载 DLV.shortcut 快捷指令后,需要在 macOS 平台打开此快捷指令,并将上述文件路径中的用户名 se7en 改为自己的用户名(上图右)。

在 DLV.shortcut 中,我使用了 AppleScript 来清空 DLV.txt 文件,原因在于 macOS 平台 Shortcuts 快捷指令自带的动作存在 bug, 可能会无法清空文件。

Hazel 配置

编注:Hazel 本身不负责下载,而是用于监控文件,下载操作最终是 Downie 完成的。读者如果没有 Hazel,也可以另寻触发方式。
Alt text
nfN3yKB

即使没有长期开机运行的 macOS 设备,也可以随时在 iOS 设备上使用 DLV.shortcut 快捷指令添加视频链接。如上图红框中的 Hazel 规则所示,触发条件只和文件名、文件体积大小有关,当 macOS 设备开机时,Hazel 将开始检查 DLV.txt 内的视频链接,执行下载任务。

在 Hazel 动作中,我使用了 AppleScript 来运行 DLV.shortcut, 而没有使用 Hazel 自带的 Run Shortcut 动作,原因在于 macOS 可能出现不授权 Hazel 运行 Shortcuts 快捷指令的情况,从而导致流程被打断。


  1. 在收到 Se7en 的投稿前,我(Minja)和 Hum 也分别独立设计了类似方案。但我们都意识到,如果电脑没有正常响应——比如家里网络不佳或者停电——下载流程就无法推进,因此我个人对这个方案持保守态度,至今仍放在草稿中,没有发布。而 Se7en 则考虑到了电脑失联的状况,如果电脑没有马上工作,仍然可以把下载任务暂存在文件中,等电脑联网后继续下载。
  2. Hazel 的用途是监控 iCloud 中的链接列表文件,如有新增,则创建下载任务。没有 Hazel 的读者也可以考虑 Keyboard Maestro 或 Automator,不过触发方式就要改成一个文件里面存放一条下载链接,因为它们不能识别文件体积变动,无法检测到新增了哪些链接。前一条注释提到的文章中,我日后可能会发布。
  3. Downie 是一款强大的下载工具,可以下载包括 YouTube 和 Bilibili 在内的多个网站的视频。用手机远程下载的一个典型场景就是,偶尔看到一个不错的视频,但是它体积太大,在手机上没有合适的下载工具或者流量吃不消(那些下载类的 Shortcuts 动作,遇到大文件就很容易崩溃),于是调用电脑帮忙下载。不过,只要能够通过 URL Scheme 或脚本快速创建下载任务——之所以推荐这两种方式,是因为它们相对可靠,而模拟键鼠操作的 GUI Scripting 在远程场景下很难控制——下载工具其实没有特别限制。
  4. Action 是一款 Shortcuts 辅助工具,类似 Toolbox Pro,提供了很多额外的 Shortcuts 模块。本文用到的是其去重模块,用于检测下载链接文件中的重复项。Actions 体积小巧,并且免费。