使用 youtube-dl 下载多个文件

Mec*_*nix 63 youtube downloads

我使用 youtube-dl 从 YouTube 下载文件。我尝试下载多个文件,但对我不起作用。每次我想下载视频时,我都必须打开多个终端并重新开始。

你能帮我通过一个终端窗口一次性提到所有的 URL 来下载多个文件吗?我使用 Ubuntu 12.04 64 位。

kar*_*rel 65

快捷方式

如果所有视频都在同一个播放列表或同一个频道中,您可以使用以下快捷方式来节省时间。

播放列表

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>
Run Code Online (Sandbox Code Playgroud)

... where<url-of-playlist>由播放列表的 URL 替换并替换FORMAT为任何可用的视频格式,例如18. 您可以使用该-F选项查看所有有效格式,如下所示:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
Run Code Online (Sandbox Code Playgroud)

从批处理开始到批处理结束下载播放列表的一部分

youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>  
Run Code Online (Sandbox Code Playgroud)

...其中<url-of-playlist>由播放列表的 URL 替换,替换FORMAT为任何可用的视频格式,例如18NUMBER是播放列表中开始/结束下载的视频编号。

渠道

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
Run Code Online (Sandbox Code Playgroud)

... where<url-of-channel>由频道的 URL 替换并替换FORMAT为任何可用的视频格式,例如18.

不在同一播放列表或频道中的视频

首先创建一个批处理文件,该文件是一个文本文件,其中包含您要下载的 YouTube 视频 URL 列表。这些 URL 应该排列在一个列表中,每行只有一个 URL,没有其他内容,列表中的每个 URL 都有一个新行。使用易于记忆的名称(如 batch-file.txt)保存批处理文件。如果多个文件都在 YouTube 中的同一播放列表、频道或用户网页上,您可以通过运行以下命令生成一个文本文件,其中包含该页面上的所有链接的列表:

sudo apt install jq  
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt
Run Code Online (Sandbox Code Playgroud)

从终端运行:

youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
Run Code Online (Sandbox Code Playgroud)

这是基本命令,但是您还需要添加要下载的视频格式,否则您可能会发现自己下载的视频格式不是您想要的。所以首先模拟你的下载,看看你想要的格式是否可用:

youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
Run Code Online (Sandbox Code Playgroud)

如果视频格式不可用,您将收到一条错误消息:requested format not available. 如果视频格式可用,则在使用该--simulate选项时不会收到任何错误消息。您还可以添加 -F 选项以查看所有有效格式,如下所示:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
Run Code Online (Sandbox Code Playgroud)

在第三个命令中,我使用了常见的 flv 360p 视频格式:
-f 34. 您可能更喜欢使用 .flv 480p 视频格式-f 35。因此,在将所需的视频格式添加到命令后,命令将变为如下所示:

youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'
Run Code Online (Sandbox Code Playgroud)

笔记:

我没有--simulate在最后一个命令中添加选项,所以这个命令会被真正执行。


cor*_*eyb 38

您可以一个接一个地放置网址,中间留一个空格。Youtube-dl 将按顺序下载它们。这比制作批处理文件要简单一些。

注意 --help 说 youtube-dl --help Usage: youtube-dl [options] url [url...]

样本输入:

youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo
Run Code Online (Sandbox Code Playgroud)

示例输出:

    [youtube] Setting language
    [youtube] fqULJBBEVQE: Downloading video webpage
    [youtube] fqULJBBEVQE: Downloading video info webpage
    [youtube] fqULJBBEVQE: Extracting video information
    [download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
    [download] 100% of 238.14MiB in 36:54
    [youtube] vDbbz-BdyYc: Downloading video webpage
    [youtube] vDbbz-BdyYc: Downloading video info webpage
    [youtube] vDbbz-BdyYc: Extracting video information
    [download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
    [youtube] OrIFaWJ9Glo: Downloading video webpage
    [youtube] OrIFaWJ9Glo: Downloading video info webpage
    [youtube] OrIFaWJ9Glo: Extracting video information
    [download] Got server HTTP error. Retrying (attempt 1 of 20)...
    [download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
    [download] 100% of 553.10MiB in 42:17
Run Code Online (Sandbox Code Playgroud)


小智 12

从 YouTube 下载多个文件

  1. 转到您的桌面并制作一个名为list(或任何其他名称)的文本文档。如果要下载文件,请将 URL 复制并粘贴到文件中,每行一个 URL。

  2. 打开终端并转到桌面

    cd ~/Desktop
    
    Run Code Online (Sandbox Code Playgroud)
  3. 要下载列表中的文件,请键入(list如果您将文件命名为其他名称,请相应地替换)

    youtube-dl -a list
    
    Run Code Online (Sandbox Code Playgroud)

下载 YouTube播放列表

运行这个命令

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
Run Code Online (Sandbox Code Playgroud)
  • -c 恢复部分下载的文件
  • -i 忽略任何错误。
  • -t 使用视频标题作为文件名。
  • -k 后期处理完成后,将视频保留在磁盘上。
  • --format mp4 将视频文件另存为 MP4 文件。
  • --yes-playlist 确认后面的 URL 指向视频播放列表。

  • `-citk` 非常具有误导性,可能会导致错误。`-c` 强制恢复,即使它没有多大意义。默认已经是继续。`-i` 可能没问题,但请注意您可能会错过某些视频的错误。`-t` 已经是默认值,已弃用。`-k` 对 `-f mp4` 没有意义。有关更多详细信息,请参阅 [youtube-dl 常见问题解答](https://github.com/rg3/youtube-dl/blob/master/README.md#do-i-always-have-to-pass--citw)。 (2认同)

MrM*_*ees 7

youtube-dl -cit --format=mp4 --batch-file=./list-of-youtube-videos-link.txt结合https://askubuntu.com/a/947676/481688https://askubuntu.com/a/334097/481688解决方案对我有用。我在这里独立记录它,而不是将来再次滚动多个答案。

  • --batch-file=./list-of-youtube-videos-link.txt包含 YouTube 链接列表的文件
  • --format=mp4需要 mp4 格式输出
  • -c恢复部分下载的文件
  • -i忽略任何错误。
  • -t使用视频标题作为文件名。


Sha*_*jna 5

最直接的解决方案是制作一个像这样的 bash 脚本

#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt

while read -r line
do
    cd ~/Desktop/TilakDa/
    youtube-dl -f 18 "$line"
done
exec < "$terminal"
Run Code Online (Sandbox Code Playgroud)

只需将 txt 文件中的视频链接复制并粘贴到文档文件夹中,每个视频 url 都在一个新行中,然后运行此脚本 ,它将逐个下载视频 默认情况下,该-f 18选项适用于 360p 视频