如何将我在Hugo博客上使用过的所有youtube视频归档?

问题描述

我有一个Hugo网站/博客内容以markdown编写,并且添加了一些youtube嵌入式视频。我希望保留视频的离线存档,以防任何youtube视频被删除。如何存档已链接博客的youtube视频?

解决方法

一旦安装了youtube-dl(例如brew install youtube-dl),就可以运行此单行代码(适用于MacOS,但也可以在Linux或WSL上运行)。

这适用于使用这种形式的Hugo型youtube嵌入

{{< youtube 1UdI_eoDPKQ >}}

这里是单线:

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