如何使用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文件

解决方法

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

首先解决您的反向问题:
有一个参数--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

让我知道它是否有效,并满足您的需求。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...