【问题标题】:Youtube - downloading a playlist - youtube-dlYoutube - 下载播放列表 - youtube-dl
【发布时间】:2018-07-03 11:48:51
【问题描述】:

我正在尝试从playlist下载所有视频:

我为此使用 youtube-dl,命令是:

youtube-dl -citk –format mp4 –yes-playlist https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2

但这只会下载第一个视频。不知道我做错了什么。

【问题讨论】:

    标签: youtube youtube-dl


    【解决方案1】:

    基本上,解决此问题的方法可能是简单地将& 符号替换为其编码版本%26

    对于那些通过 PHP 解决这个问题的人(例如shell_exec()),解决方案可能是 str_replace("&", "%26", $shell_command);

    【讨论】:

      【解决方案2】:

      经过多次尝试,我找到了最佳解决方案。

      安装使用;

      对于 Windows 用户:

      脚本:

      youtube-dl --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 160K --output "%(title)s.%(ext)s" --yes-playlist https://www.youtube.com/playlist?list={your-youtube-playlist-id}
      
      • own offical site.下载youtube-dl.exe文件
      • own offical site 下载ffmpeg 以将webm 转换为mp3。(Recomended build version)
      • 提取所有 zip 文件并将 youtube-dl.exe、ffmpeg.exe 和 ffprobe.exe 文件移动到您要下载 mp3 文件的文件夹中。
      • 在同一文件夹中打开 CMD(Windows Terminal)。
      • 替换脚本 {your-youtube-playlist-id} 参数您的 youtube 播放列表 ID。
      • 运行脚本。

      对于 macOS/Linux 用户:

      脚本:

      youtube-dl --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 160K --output "%(title)s.%(ext)s" --yes-playlist 'https://www.youtube.com/playlist?list={your-youtube-playlist-id}'
      
      • 打开终端,如果您没有brew,请安装它。 (Linux 用户可以跳过此步骤。)
      • 运行 brew install youtube-dl ffmpeg 并安装 youtube-dl 和 ffmpeg 以将 webm 转换为 mp3。 (安装可能需要更长的时间来安装其他依赖项。)(对于 linux 用户:sudo apt-get install youtube-dl ffmpeg
      • 在要下载 mp3 文件的文件夹中打开终端。
      • 替换脚本 {your-youtube-playlist-id} 参数您的 youtube 播放列表 ID。
      • 运行脚本。

      【讨论】:

      • 成功了。但只需要传入播放列表 ID
      【解决方案3】:

      下载播放列表时您可能会发现一些有用的命令

      下载播放列表

      youtube-dl <playlist link>
      

      最佳质量的视频和最佳质量的音频(合并)+ 首选分辨率

      youtube-dl -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
      

      如果 1080p 可用,此命令将下载 1080p 分辨率的视频,否则它将下载次佳(小于 1080p)分辨率。在这里,您可以使用 480 或 720 等来代替 1080。

      注意:请确保安装了“FFmpeg”,否则视频和音频将无法合并。

      最佳质量视频和最佳质量音频(合并)+首选分辨率+在文件名上添加视频上传日期

      youtube-dl -o "[%(upload_date)s] %(title)s.%(ext)s" -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]'  <playlist link>
      

      最佳质量视频和最佳质量音频(合并)+首选分辨率+在文件名中添加视频上传日期+在文件名中添加上传者名称

      youtube-dl -o "[%(upload_date)s] %(title)s [%(uploader)s].%(ext)s" -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
      

      字幕

      最佳质量的视频和最佳质量的音频(合并)+首选分辨率+下载自动生成的字幕

      youtube-dl --write-auto-sub -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]'  <playlist link>
      

      最佳质量的视频和最佳质量的音频(合并)+首选分辨率+下载视频创作者上传的字幕

      youtube-dl --write-sub -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' <playlist link>
      

      最佳质量视频和最佳质量音频合并 + 首选分辨率 + 下载视频创作者上传的特定语言的字幕

      youtube-dl --write-sub --sub-lang en -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]'  <playlist link>
      

      【讨论】:

        【解决方案4】:

        最简单的做法是创建一个file.txt 文件并传递链接url 链接这样:

        https://www.youtube.com/watch?v=5Lj1BF0Kn8c&list=PL9YFoJnn53xyf9GNZrtiraspAIKc80s1i
        

        确保在终端中包含-a 参数:

        youtube-dl -a file.txt
        

        【讨论】:

          【解决方案5】:

          您的链接不是播放列表。

          正确的播放列表 URL 如下所示:

          https://www.youtube.com/playlist?list=PLHSdFJ8BDqEyvUUzm6R0HxawSWniP2c9K
          

          您的网址只是某个播放列表OF的第一个视频。它包含https://www.youtube.com/watch? 而不是https://www.youtube.com/playlist?

          通过点击视频列表右侧的播放列表标题来选择播放列表并使用此 URL。

          【讨论】:

            【解决方案6】:

            我已经尝试了以上所有方法,但没有一个可以解决我的问题。我通过更新旧版本的 youtube-dl 来下载播放列表来修复它。 更新它

            sudo youtube-dl -U
            

            youtube-dl -U
            

            使用上述命令成功更新后

            youtube-dl -cit https://www.youtube.com/playlist?list=PLttJ4RON7sleuL8wDpxbKHbSJ7BH4vvCk
            

            【讨论】:

            • 如果不允许自动更新(删除已安装的),请使用:sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dlsudo chmod a+rx /usr/local/bin/youtube-dl
            【解决方案7】:

            从 url 中删除 v=...&amp; 部分,只保留 list=... 部分。主要问题是特殊字符&amp;,由shell 解释。

            您也可以在命令中引用您的“url”。

            更多信息在这里(例如):

            https://askubuntu.com/questions/564567/how-to-download-playlist-from-youtube-dl

            【讨论】:

              【解决方案8】:

              在 shell 中,&amp; 是一个特殊字符,建议 shell 在后台启动所有直到 & 的进程。为避免此行为,您可以将 URL 放在引号中。请参阅youtube-dl FAQ 了解更多信息。

              还要提防-citk。除了-i,这些选项几乎没有意义。请参阅youtube-dl FAQ 了解更多信息。甚至-f mp4 看起来也很奇怪。

              所以你想要的是:

              youtube-dl -i -f mp4 --yes-playlist 'https://www.youtube.com/watch?v=7Vy8970q0Xc&list=PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2'
              

              或者,您可以只使用播放列表 ID:

              youtube-dl -i PLwJ2VKmefmxpUJEGB1ff6yUZ5Zd7Gegn2
              

              【讨论】:

              • 这个 C:\Users\lenovo\Desktop\New 文件夹怎么样>youtube-dl -i PLD07B2225BB40E582 [youtube:playlist] PLD07B2225BB40E582:正在下载网页 [download] 正在下载播放列表:PLD07B2225BB40E582 [youtube:playlist]播放列表 PLD07B2225BB40E582: 正在下载 0 个视频 [下载] 已完成下载播放列表: PLD07B2225BB40E582 //表示下载完成但没有下载任何内容。
              • @userqrqh123 这听起来像是一个不同的问题。继续ask it!添加-v 选项时不要忘记包含输出,因为这对于确定问题所在至关重要。 youtube-dl -i PLD07B2225BB40E582 对我来说很好。
              • @userqrqh123 正如我所说,评论不是讨论与您无关的问题的地方。请改为提问。在该问题中,请务必包含添加-v 时获得的输出。此外,您可能应该确定您现在看到的两个输出中的哪一个 - 它们明显不同。
              • youtube-dl -x -i 帮助我将播放列表转换为音频!
              • 我也用过--no-check-certificate
              猜你喜欢
              • 2021-07-13
              • 2017-12-12
              • 2020-11-08
              • 2021-02-05
              • 2019-06-10
              • 1970-01-01
              • 2016-12-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多