我可以下载一个系列的第一集。
yutube-dl https://www.bilibili.com/video/av90163846?p=1 现在我想下载这个系列的所有剧集。
for i in $(seq 1 55)
do
yutube-dl https://www.bilibili.com/video/av90163846?p=$i
done 除了第一集之外,其他所有情节都无法下载,它们都包含相同的错误信息,如下所示:
[BiliBili] 90163846: Downloading webpage
[BiliBili] 90163846: Downloading video info page
[download] 【合集300集全】地道美音 美国中小学教学 自然科学 社会常识-90163846.flv has already been downloaded请试一试,看看发生了什么,然后如何修复?
@Christos,奇怪的事情发生在你的代码上:
for i in $(seq 1 55)
do
youtube-dl https://www.bilibili.com/video/av90163846?p=$i -o "%(title)s-%(id)s-$i.%(ext)s"
done它当然可以在bilibili上下载视频,但是所有下载的视频都有不同的名字和相同的内容,所有的内容都和第一集一样,试着检查一下,你就会发现这个事实。
发布于 2020-03-05 16:51:45
发生此错误是因为youtube-dl在文件名的?之后忽略URI参数,因此它试图下载的下一个文件与前一个文件的名称相同,并且由于文件已经具有该名称而失败。解决方案是使用--output模板文件系统选项来设置一个文件名,它将使用变量i在其名称中包含一个索引。
文件系统选项 -o,--输出模板输出文件名模板,请参阅“输出模板”中的所有信息 输出模板
-o选项允许用户为输出文件名指定模板。 基本用法是在下载单个文件时不设置任何模板参数,比如在youtube-dl -o funny_video.flv "https://some/video"中。但是,它可能包含在下载每个视频时将被替换的特殊序列。可以根据python字符串格式化操作对特殊序列进行格式化。例如,%(NAME)s或%(NAME)05d。为了澄清,这是一个百分比符号,后面是括号中的名称,然后是格式化操作。允许的名称以及序列类型如下:id(字符串):视频标识符title(字符串):视频标题url(字符串):视频网址ext(字符串):视频文件扩展名 ..。
对于您的情况,要在输出文件名中使用i,可以使用以下内容:
for i in $(seq 1 55)
do
youtube-dl https://www.bilibili.com/video/av90163846?p=$i -o "%(title)s-%(id)s-$i.%(ext)s"
done它将使用title、id、用于索引的i变量和用于视频扩展的ext。
您可以检查输出模板变量以获得定义文件名的更多选项。
更新
显然,bilibili.com使用了一些Javascript来设置视频播放器并获取视频文件。没有办法,所以您可以提取整个播放列表使用youtube-dl。我建议你使用开箱即用的安妮。它有所有主要操作系统的安装程序,您可以像这样使用它来下载整个播放列表:
annie -p https://www.bilibili.com/video/av90163846如果只想下载到55个视频,可以使用-end 55 cli选项,如下所示:
annie -end 55 -p https://www.bilibili.com/video/av90163846可以使用
-start、-end或-items选项指定列表的下载范围: -start播放列表视频从(默认的1) -end播放列表视频开始到-items播放列表视频项目下载。用逗号分隔: 1,5,6,8-10 只适用于bilibili播放列表: 每一集的-eto文件名不包括播放列表标题
如果只想获取播放列表的信息而不下载文件,请使用-i命令行选项,如下所示:
annie -i -p https://www.bilibili.com/video/av90163846将输出如下内容:
Site: 哔哩哔哩 bilibili.com
Title: 【合集300集全】地道美音 美国中小学教学 自然科学 社会常识 P1 【001】Parts of Plants
Type: video
Streams: # All available quality
[64] -------------------
Quality: 高清 720P
Size: 308.24 MiB (323215935 Bytes)
# download with: annie -f 64 ...
[32] -------------------
Quality: 清晰 480P
Size: 201.57 MiB (211361230 Bytes)
# download with: annie -f 32 ...
[16] -------------------
Quality: 流畅 360P
Size: 124.75 MiB (130809508 Bytes)
# download with: annie -f 16 ...
Site: 哔哩哔哩 bilibili.com
Title: 【合集300集全】地道美音 美国中小学教学 自然科学 社会常识 P2 【002】Life Cycle of a Plant
Type: video
Streams: # All available quality
[64] -------------------
Quality: 高清 720P
Size: 227.75 MiB (238809781 Bytes)
# download with: annie -f 64 ...
[32] -------------------
Quality: 清晰 480P
Size: 148.96 MiB (156191413 Bytes)
# download with: annie -f 32 ...
[16] -------------------
Quality: 流畅 360P
Size: 94.82 MiB (99425641 Bytes)
# download with: annie -f 16 ...https://stackoverflow.com/questions/60506532
复制相似问题