首页 > 解决方案 > 如何使用 youtube-dl 以相反的顺序获取播放列表索引?

问题描述

有一个包含 3012 个视频的播放列表。我想下载这个播放列表的前 100 个视频,实际上是最近的 100 个视频,所以我想%(playlist_index)s从 3012 到 2913 开始,而不是从 1 到 100。

我现在拥有的只是一个基本的 shell 脚本:

youtube-dl --yes-playlist "www.youtube.com/playlist?list=3xAMpLe_iD" -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" --download-archive archive.txt

我想反向跟踪视频顺序,因为下周可能有 4 个新视频,然后当我下载这些视频时,编号应该是 3016 到 3013,因为它将来自同一个播放列表。

我没有使用 youtube-dl python 脚本的经验,但你可能会回答,就好像我知道基础知识一样。另外,如何在同一个脚本中获取--download-archive命名为值的文件?%(playlist)s

标签: pythonyoutubeyoutube-dl

解决方案


有多种方法可以做到这一点。

首先解决您的反向问题:
有一个参数--playlist-reverse
它将使用列表推导[::-1]来反转。然后,这将以相反的顺序下载文件。
但是,即使您使用%(playlist_index)s.
假设它可能会开始下载,3012但这应该是它将被存储的索引,3012但我还没有测试过。
因此,您可能需要使用%(autonumber)s它,因为它会根据队列顺序对您的曲目进行编号。请注意,它将从 1 开始编号。
为避免这种情况,您可以指定起始编号--autonumber-start

现在到你的第二个问题 - 从正确的点开始。
--playlist-start
但是你必须明确告诉从哪里开始。在你的情况下3012
--playlist-end
再次,您必须准确指定它。在你的情况下2913
最终,--playlist-items您可能正在寻找什么。

所以你的命令看起来像这样

youtube-dl --yes-playlist "www.youtube.com/playlist?list=3xAMpLe_iD" -o "%(playlist)s/%(autonumber)s - %(title)s.%(ext)s" --autonumber-start 3012 --playlist-items 100 --download-archive archive.txt

让我知道它是否有效并做你想要的。


推荐阅读