我如何让 youtube-dl 返回播放列表的创建者?

我如何让 youtube-dl 返回播放列表的创建者?

我可以使用youtube-dl选项--dump-jsonjq获取上传器视频

uploader=$(youtube-dl --dump-json "$video_url" | jq -r '.uploader')

有没有办法让播放列表以类似的方式?

youtube-dl -j "$playlist_url"

返回视频列表,但不返回有关播放列表创建者的信息。

答案1

正如@Seth在他的回答中所建议的那样,我可以使用--skip-download--output选项。经过一番试验,我发现--output选项不会在json数据中添加任何额外信息。但是,youtube-dl像这样调用:

youtube-dl --skip-download --playlist-end 1 --output '%(playlist_uploader)s/%(title)s.%(ext)s' "$playlist_url"

确实会创建一个以播放列表上传器名称命名的文件夹。我可以使用find以下命令获取此文件夹:

find . -type d -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "

就像建议的那样回答一个问题stackoverflow.com。这比@Seth 建议的还要迂回,但确实解决了我的问题。

答案2

有点绕,但您可以将其包含在输出名称或类似名称中,因为它似乎是一个受支持的变量。

自述

  • 播放列表(字符串):包含视频的播放列表的名称或 ID
  • playlist_index(数字):播放列表中视频的索引,根据播放列表的总长度用前导零填充
  • playlist_id(字符串):播放列表标识符
  • playlist_title(字符串):播放列表标题
  • playlist_uploader (字符串):播放列表上传器的全名
  • playlist_uploader_id (string):播放列表上传者的昵称或 id

使用--external-downloader您可能能够使用脚本。根据输出,您可能还可以使用--skip-download--simulate。理论上,使用 中的变量-o应该将其包含在 json 中。

相关内容