Skip to content

使用 IINA 和 youtube dl 观看网页视频

Collider LI edited this page Dec 6, 2018 · 4 revisions


IINA 自 v0.0.5 起支持 youtube-dl

youtube-dl 是什么

youtube-dl 是一个命令行软件,可以下载 YouTube.com 和很多 其他网站 的视频。通过 youtube-dl,你可以在观看在线视频的同时享受到 IINA 的几乎所有功能。

IINA 中的 youtube-dl

原理

IINA 直接使用 mpv 自带的 ytdl_hook.lua 脚本。此脚本会在视频加载时自动运行,在 PATH 中查找 youtube-dl 的可执行文件并尝试调用它。

如何使用 youtube-dl

  1. 偏好设置 > 网络 > youtube-dl 中启用 youtube-dl(默认启用)。
  2. 以任意方式打开 URL,如:
  • 菜单中的 文件 > 打开 URL…
  • 将 URL 拖进 IINA 的窗口,或 Dock 图标0.0.10+
  • 使用浏览器插件(从 偏好设置 > 实用工具 下载)

为何会无法打开视频

IINA 自带了 youtube-dl 的可执行文件,并随每次发布更新,所以你可以直接使用它;但由于 youtube-dl 更新频繁,有时 IINA 自带的版本对于某些网站会解析失败,即提示「无法打开文件或流」。

如果你有能力,请参考 使用你自己的 youtube-dl 一节。

使用你自己的 youtube-dl

Youtube-dl 更新非常迅速。IINA 会在每次发布时更新自带的 youtube-dl,但多数情况下很难跟上它的进度。在自带的 youtube-dl _由于版本太老_无法加载视频时,你可以使用自定义的 youtube-dl 文件。要安装最新的 youtube-dl, 建议使用 homebrew(请确认安装了 homebrew):

brew install youtube-dl

安装后,你可以这样找到 youtube-dl 的路径:

which youtube-dl

然后在偏好设置中的 自定义 youtube-dl 路径 中填上含有 youtube-dl 的文件夹。请不要在路径中包含 youtube-dl本身。如果你用 homebrew 的默认安装,你应该填入

/usr/local/bin/

IINA 仅仅会在运行时将此路径加入PATH 来使 mpv 的 ytdl-hook 搜索到可执行文件,并不会对此路径做任何检查。

如果你发现使用自己的 youtube-dl 时任何视频都无法打开,可能你的 youtube-dl 安装出现了问题。由于运行时你填写的路径会在 PATH 首位,mpv 将优先使用 /usr/local/bin(如果你填写了标准 brew 安装路径)中的 python,所以请确认 homebrew 中装有一个可用的 python。

能否下载视频?

IINA (mpv) 不支持下载。请参考 youtube-dl 的文档,使用它在命令行中直接下载视频。

为 youtube-dl 设置参数

你可以在 偏好设置 > 网络 > youtube-dl 中为 youtube-dl 设置参数。参数会被传递到 mpv 的 ytdl-raw-options 选项,所以请自行处理参数中的 空格和特殊字符

设置代理

你可以给 youtube-dl 设置 proxy 参数,然而它只会在获取视频真实地址时有用,IINA 在播放时仍然需要代理。

推荐的方案是在 偏好设置 > 网络 > 网络 中设置 HTTP 代理,此选项会对 youtube-dl 和 mpv 的播放(即 FFmpeg)均生效。此选项的值会被设置为 http_proxy 环境变量。当然,IINA 只支持 HTTP 代理。

you-get?

很多国内用户希望使用 you-get 代替 youtube-dl。暂时 IINA 还不支持 you-get,以后或许能加入。如果你有能力,可以为 IINA 或 mpv 写 you-get 的支持脚本并提出 pull request。