如何使用 youtube-dl 以相反的顺序获取播放列表索引?

ntr*_*r42 3 python youtube 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
Run Code Online (Sandbox Code Playgroud)

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

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

Tom*_*del 8

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

首先解决你的反向问题:
有一个参数--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
Run Code Online (Sandbox Code Playgroud)

让我知道它是否有效并执行您想要的操作。