youtube-dlで互換性のある最高のオーディオとともに最高のビデオをダウンロードするにはどうすればよいですか?


19

-f bestvideo+best audio whose extension is compatible with the video extensionmkv(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ファイルは完全に問題ありません。
Peaceful Coder

回答:


32

以下を使用して、最高のビデオとオーディオをダウンロードできます。

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。
Peaceful Coder

6

古い質問ですが、グーグルで最初の回答なので、

次の関数を定義すると、それは私にとってはうまくいきました(それをに置くことも可能です~/.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 2017年

@wjandrea:シェル関数名のダッシュは有効です(一般的なコマンドの場合と同様)。エクスポートされた関数についてはわかりません。
David Foerster

@DavidFoersterはい、Bashは無効な関数名を受け入れますが、エクスポートすることはできません。実行しようとすると、エラーが発生しますnot a valid identifier
wjandrea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.