Youtube-dl के साथ सबसे अच्छा संगत ऑडियो के साथ सबसे अच्छा वीडियो कैसे डाउनलोड करें?


21

मैं एक प्रारूप चयनकर्ता का उपयोग करना चाहता हूं जो कुछ इस तरह -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.) में muxed होने की आवश्यकता नहीं है ।

नोट: मैं जानता हूं -f bestऔर मैं ऐसा नहीं चाहता। मैं यह सुनिश्चित करते हुए ऑडियो और वीडियो दोनों के सर्वोत्तम संभव गुण चाहता हूं कि वे संगत हों। उसको कैसे करे?


1
शायद यह सवाल और जवाब उपयोगी होगा: askubuntu.com/q/806258/57576
andrew.46

@ andrew.46 मदद करने की कोशिश करने के लिए धन्यवाद, लेकिन लिंक ज्यादा मदद नहीं था। जब आप किसी विशिष्ट एक्सटेंशन सेट को लक्षित कर रहे हैं तो यह परिदृश्य का वर्णन करता है। जबकि मेरे मामले में, मैं अपने एक्सटेंशन के साथ लचीला हूं - मैं बस उन्हें संगत होना चाहता हूं। उदाहरण के लिए, एक webmवीडियो और एक opusऑडियो फ़ाइल, जिसके परिणामस्वरूप एक .webmफ़ाइल मेरे लिए पूरी तरह से ठीक है।
शांतिप्रिय कोडर

जवाबों:


34

आप उपयोग करके सबसे अच्छा वीडियो और ऑडियो डाउनलोड कर सकते हैं:

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।
शांतिपूर्ण कोडर

! ffmpeg को इस विकल्प के लिए स्थापित किया जाना चाहिए
babygame0ver

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: शेल फ़ंक्शन नामों में डैश मान्य हैं (जैसा कि वे सामान्य रूप से आदेशों के लिए हैं)। मैं निर्यात कार्यों के बारे में नहीं जानता।
डेविड फ़ॉस्टर

@DavidFoerster हां, बैश अमान्य फ़ंक्शन नामों को स्वीकार करता है, लेकिन उन्हें निर्यात नहीं कर सकता। यदि आप कोशिश करते हैं, तो आपको एक त्रुटि मिलती है,not a valid identifier
wjandrea
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.