使用youtube-dl下载youtube播放列表,跳过现有文件


22

我想知道是否可以使用youtube-dl跳过现有文件将youtube播放列表下载为mp3 。我正在使用此命令:

youtube-dl --continue --ignore-errors --no-overwrites --extract-audio --audio-format mp3 --output "%(title)s.%(ext)s" [path here]

而且,即使我将其设置为不覆盖,它也会从头开始重新下载所有内容。这可能吗?


即使重新下载,即使没有设置该选项,它通常也会默认情况下跳过写入文件的步骤
mchid

好的,如果我将下载的视频和mp3文件保留在一起,则跳过功能可以正常工作。不完全是我需要的,但是还可以。
战士

Answers:


45

使用--download-archive FILE youtube-dl选项时,它会读取文件并添加到文件列表中,以免再次下载。每次成功下载文件时,该视频ID都会添加到中FILE

您可以按以下方式使用它:

youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" [path here]

它会重新下载您上次没有保留的视频,因为它会创建列表。您现在可以删除它们。

如果您的MP3文件使用默认格式命名为,则%(title)s-%(id)s.%(ext)s可以通过在bash终端中downloaded.txt从youtube 创建%(id)s如下内容来避免重新下载:

for n in *.mp3
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.mp3$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

1
有价值的答案在这里。它解决了我的问题。谢谢。
战士

这是-cwix什么
bteo

2
-cwix--continue --no-overwrites --ignore-errors --extract-audio
马丁

1
值得一提的是,虽然youtube-dl可以完美地在YouTube上使用,但它也可以与其他网站(例如Soundcloud)一起使用,因为该-x选项似乎会中断输出。如果要从音频源下载,则可以安全地删除该标志。
christianbundy

2

这真的很有帮助。如果对任何人都有用,我修改了代码以创建现有的下载列表,以将文件夹中的所有文件包括在内。如果使用--extract-audio--audio-quality "best"标志下载音频,则很有用

for n in *.*
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.*$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

我相信大多数人都可以自己解决这个问题,但是并不是每个人都对bash脚本有所了解。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.