如何使用youtube-dl下载最佳视频以及最佳兼容音频?


20

我想使用类似-f bestvideo+best audio whose extension is compatible with the video extension这样的格式选择器,这样就不必将它们混合到mkv(WARNING: Requested formats are incompatible for merge and will be merged into mkv.)中。

注意:我知道-f best,但我不想要。我要确保音频和视频的最佳质量,同时确保它们兼容。怎么做?


1
也许这问题的答案将是有益的:askubuntu.com/q/806258/57576
andrew.46

@ andrew.46感谢您尝试提供帮助,但是链接并没有太大帮助。它描述了针对特定扩展集的情况。而就我而言,我对扩展很灵活-我只希望它们兼容。例如,webm视频和opus音频文件(生成一个.webm文件)对我来说完全可以。
和平编码员

Answers:


33

您可以使用以下方法下载最佳的视频和音频:

youtube-dl -f bestvideo+bestaudio "link to youtube video"

如果那给你一个错误,请尝试以下方法:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 "link to youtube video"

在这里,您分别下载了最佳的视频和音频,然后合并为一个mp4文件。您也可以更改合并视频的输出格式。

祝好运!


谢谢!但是我已经知道了。正如我在评论中解释的那样,不想将选择格式限制为特定格式。因此,-f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio'如果webm扩展名为,最好使用来下载最佳视频。无论如何,请+1以寻求帮助。
和平编码员

6

旧问题,但首先要在google上回答,所以:

通过定义以下函数,它为我工作(也可以将其放置在中~/.bashrc):

youtube-dl_video_and_audio_best_no_mkv_merge () {
  video_type=$(youtube-dl -F "$@" | grep "video only" | awk '{print $2}' | tail -n 1)
  case $video_type in
    mp4)
      youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]' "$@";;
    webm)
      youtube-dl -f 'bestvideo[ext=webm]+bestaudio[ext=webm]' "$@";;
    *)
      echo "new best videoformat detected, please check it out! -> aborted";;
  esac
}

现在您可以下载

youtube-dl_video_and_audio_best_no_mkv_merge "https://www.youtube.com/watch?v=*******" "https://https://www.youtube.com/watch?v=********"

来源:自己创造


2
请注意,函数名称在技术上无效,特别是破折号和加号。因此,使用该功能可能会遇到问题,尤其是将其导出时。我建议将其设置为脚本(因为它不必是一个函数),然后将名称更改为youtube-dl_video_and_audio_best_no_mkv_merge
wjandrea

@wjandrea:shell函数名称中的破折号是有效的(因为它们通常适用于命令)。我不知道导出功能。
大卫·佛斯特

@DavidFoerster是的,Bash接受无效的函数名称,但不能导出它们。如果尝试,则会收到错误消息not a valid identifier
wjandrea
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.