我怎样才能将我在我的 Hugo 博客上使用过的所有 YouTube 视频存档?

How can I make an archive of all the youtube videos that I've used on my Hugo blog?

我有一个 Hugo website/blog,内容是用 markdown 编写的,我还添加了几个嵌入的 youtube 视频。我想保留视频的离线存档,以防任何 YouTube 视频被删除。如何将我在博客上链接的 YouTube 视频存档?

安装 youtube-dl(例如 brew install youtube-dl)后,您可以 运行 这个 one-liner(为 MacOS 构建,但可能也适用于 Linux 或 WSL).

这适用于 Hugo-type youtube 嵌入,它使用这种形式

{{< youtube 1UdI_eoDPKQ >}}

这是one-liner:

find . -type f -name "*.md" -exec grep -r 'youtube' {} + | awk -F "{{" '{print $NF}' | sed 's/ >}}//g' | sed 's/< youtube//g' | xargs youtube-dl --id

这会将视频下载到本地目录。

步骤

  • find: 获取$cwd子文件夹下的所有.md(markdown)文件(递归)
  • grep:在那些降价文件中找到“youtube”的所有实例
  • awk:拆分大括号上的行,取最后一个元素
  • sed,sed:删除除 youtube 视频 ID 之外的所有内容
  • youtube-dl: 下载视频id列表到$cwd