Youtube-dl ile en iyi uyumlu ses ile birlikte en iyi video nasıl indirilir?


21

Ben böyle bir şey bir biçim seçici kullanmak istiyorum -f bestvideo+best audio whose extension is compatible with the video extensionböylece mkv (WARNING: Requested formats are incompatible for merge and will be merged into mkv. ) .

Not: Bunu biliyorum -f bestve bunu istemiyorum. Uyumlu olmalarını sağlarken hem ses hem de video için mümkün olan en iyi kaliteyi istiyorum. Bu nasıl yapılır?


1
Belki de bu soru ve cevap faydalı olacaktır: askubuntu.com/q/806258/57576
andrew.46

@ andrew.46 Yardım etmeye çalıştığınız için teşekkürler, ancak bağlantı pek yardımcı olmadı. Belirli bir uzantı kümesini hedeflediğinizde senaryo açıklanır. Halbuki benim durumumda, uzantılarımla esnekim - sadece uyumlu olmalarını istiyorum. Örneğin, bir dosyaya neden olan bir webmvideo ve opusses dosyası .webmbenim için mükemmel.
Barışçıl Kodlayıcı

Yanıtlar:


34

En iyi video ve sesi aşağıdakileri kullanarak indirebilirsiniz:

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

Bu size bir hata verirse, aşağıdakileri deneyin:

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

Burada en iyi video ve sesi ayrı ayrı indirir ve sonra bu durumda mp4 dosyasına birleştirirsiniz. Birleştirilen videodaki çıktı biçimini de değiştirebilirsiniz.

İyi şanslar!


Teşekkürler! Ama bunu zaten biliyorum. Ben açıklandığı gibi benim yorumum , ben belirli bir birine benim seçim biçimini sınırlandırmak istemiyoruz. Bu nedenle, kullanmak -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio', webmuzantıya sahipse en iyi videoyu indirmeyebilir . Neyse, yardım etmeye çalıştığın için +1.
Barışçıl Kodlayıcı

! Bu seçenek için ffmpeg kurulmalıdır
babygame0ver

6

eski soru, ancak google'da ilk cevap, yani:

Aşağıdaki işlevi tanımlayarak, benim için çalıştı (ayrıca yerleştirmek de mümkündür ~/.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
}

şimdi ile indirebilirsiniz

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

Kaynak: kendi yaratımı


2
İşlev adının teknik olarak geçerli olmadığını, özellikle tire ve artı işaretini unutmayın. Bu nedenle, özellikle dışa aktarma işlevini kullanırken sorun yaşayabilirsiniz. Ben bir komut dosyası haline (çünkü bir işlev olması gerekmiyor) yapmak ve adı gibi bir şey değiştirmek için tavsiye ederim youtube-dl_video_and_audio_best_no_mkv_merge.
wjandrea

@wjandrea: Kabuk işlevi adlarındaki tire işaretleri geçerlidir (genel olarak komutlar için olduğu gibi). Dışa aktarılan fonksiyonlar hakkında bir fikrim yok.
David Foerster

@DavidFoerster Evet, Bash geçersiz işlev adlarını kabul eder, ancak dışa aktaramaz. Eğer denerseniz, bir hata alırsınız,not a valid identifier
wjandrea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.