首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >youtube-dl:在播放列表中下载youtube视频info.json,忽略archive.txt中指定的视频。

youtube-dl:在播放列表中下载youtube视频info.json,忽略archive.txt中指定的视频。
EN

Stack Overflow用户
提问于 2019-07-23 16:29:51
回答 1查看 7K关注 0票数 3

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

代码语言:javascript
运行
复制
youtube-dl -i --write-info-json --skip-download --download-archive archive.txt {youtube-playlist-url}  

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

--skip-download不下载视频

--下载存档archive.txt archive.txt包含一个已经下载的视频ids列表,所以youtube-dl将不再下载这些视频。

但是,包含--跳过下载参数的youtube-dl会导致视频id没有添加到archive.txt,这意味着yt只在下载视频后才向archive.txt添加视频id。这两个命令(--跳过下载和下载存档archive.txt)能够一起运行吗?或者还有其他的方法来完成它呢?

EN

回答 1

Stack Overflow用户

发布于 2019-07-24 11:50:02

只有当视频被下载时,yt才会在archive.txt中添加一个条目。因此,我认为您的用例不可能仅仅通过yt实现。

然而,这种行为可以通过某种命令行魔法来实现,

代码语言:javascript
运行
复制
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 --跳过-下载-写-info-json-下载-存档archive.txt {youtube-播放列表-url}将下载播放列表视频.info.json数据,archive.txt中的video_ids除外。

to /dev/tty将将youtube-dl输出流到stdout,并将其输送到下一个命令。

grep "info将视频描述元数据写入JSON到:“将从yt-dl输出中获得包含下载的.info.json文件名的行。

gawk '{ match($0,/-(a-zA-Z0-9_-+).info.json/,arr);if(arr1 != "")打印"youtube "arr1 }'将从文件名以youtube {video_id}格式打印视频。

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

下面是运行该命令时发生的情况,

除在info.json中的视频外,还可直接下载播放列表中的视频的archive.txt,并将下载的info.json视频id附加到archive.txt中。因此,如果再次运行相同的命令,yt将在播放列表中下载所有视频的info.json,但archive.txt中提到的视频ids除外。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57168566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档