gpt4 book ai didi

youtube-dl:通过忽略 archive.txt 中指定的视频,将 youtube 视频 info.json 下载到播放列表中

转载 作者:行者123 更新时间:2023-12-04 01:05:00 25 4
gpt4 key购买 nike

我正在尝试通过 youtube-dl 为 youtube 播放列表中的所有视频下载 json 元数据(不是视频)。我还想在再次运行相同的命令时忽略为播放列表中的视频下载已下载的 json 元数据。所以,这是我尝试过的命令,

youtube-dl -i --write-info-json --skip-download --download-archive archive.txt {youtube-playlist-url}  

--write-info-json 写入视频info.json

--skip-download不要下载视频

--download-archive archive.txt archive.txt 包含已下载视频 ID 的列表,因此 youtube-dl 不会再次下载这些视频

但是,在 youtube-dl 中包含 --skip-download 参数会导致视频 ID 未添加到 archive.txt,这表明 yt-dl 仅在下载视频后将视频 ID 添加到 archive.txt。这两个命令(--skip-download & --download-archive archive.txt)可以一起运行吗?还是有其他方法可以实现?

最佳答案

yt-dl 仅在下载视频时才会在 archive.txt 中添加一个条目。所以,我认为您的用例不能仅通过 yt-dl 来实现。

不过,这种行为可以使用一些命令行魔法来实现,

youtube-dl --skip-download --write-info-json --download-archive archive.txt https://www.youtube.com/playlist\?list\=PLMCXHnjXnTnuFUfiWF4D0pYmJsMROz4sA |tee /dev/tty|grep "\[info] Writing video description metadata as JSON to:" |gawk '{ match($0, /-([a-zA-Z0-9_-]+)\.info\.json/, arr); if(arr[1] != "") print "youtube "arr[1] }' >> archive.txt

youtube-dl --skip-download --write-info-json --download-archive archive.txt {youtube-playlist-url} 将下载播放列表视频 .info.json 数据,除了对于 archive.txt 中的 video_ids

tee/dev/tty 会将 youtube-dl 输出流式传输到标准输出,并将其通过管道传送到下一个命令

grep "[info] Writing video description metadata as JSON to:" 将从 yt-dl 输出中获取包含下载的 .info.json 文件名的行

gawk '{ match($0,/-([a-zA-Z0-9_-]+).info.json/, arr); if(arr[1] != "") print "youtube "arr[1] }' 将从文件名中以 youtube {video_id} 格式打印 videoid

>> archive.txt 将输出连接到 archive.txt 文件

这是运行该命令时发生的情况,
下载播放列表中视频的 info.json,除了 archive.txt 中的视频,还将下载的 info.json 视频 ID 附加到 archive.txt。因此,如果您再次运行相同的命令,yt-dl 将下载播放列表中所有视频的 info.json,但 archive.txt 中提到的视频 ID 除外

关于youtube-dl:通过忽略 archive.txt 中指定的视频,将 youtube 视频 info.json 下载到播放列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com