Youtube-dl के साथ कई फाइलें डाउनलोड करना


45

मैं YouTube से फ़ाइलों को डाउनलोड करने के लिए youtube-dl का उपयोग करता हूं। मैंने कई फाइलें डाउनलोड करने की कोशिश की है, लेकिन यह मेरे लिए काम नहीं कर रही है। मुझे एक वीडियो डाउनलोड करने के लिए कई बार टर्मिनल खोलना होगा और हर बार नए सिरे से शुरुआत करनी होगी।

क्या आप एक बार में सभी URL का उल्लेख करके एक सिंगल टर्मिनल विंडो के साथ कई फाइलें डाउनलोड करने में मेरी मदद कर सकते हैं? मैं Ubuntu 12.04 64-बिट का उपयोग करता हूं।


1
आपके प्रश्न का उत्तर नहीं लेकिन अन्य लोग इस पर ठोकर खा सकते हैं। यदि वीडियो किसी तरह से संबंधित हैं, तो याद रखें कि youtube-dl एक प्लेलिस्ट, उपयोगकर्ता या चैनल से सभी वीडियो डाउनलोड कर सकता है।
डेनिस

नीचे दिए गए उत्तर को देखें (वर्तमान में सबसे अधिक अपवित्र नहीं) केवल यूआरएल के बीच एक स्थान जोड़ने का सुझाव दे रहे हैं और आप कर रहे हैं।
gota

जवाबों:


54

शॉर्टकट

यदि सभी वीडियो एक ही प्लेलिस्ट या एक ही चैनल में हैं, तो आप निम्न शॉर्टकट का उपयोग करके समय बचा सकते हैं।

प्लेलिस्ट

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>

... जहां <url-of-playlist>प्लेलिस्ट के URL द्वारा प्रतिस्थापित किया जाता है और FORMATउदाहरण के लिए किसी भी उपलब्ध वीडियो प्रारूप के साथ प्रतिस्थापित किया जाता है 18। आप -Fइस तरह के सभी मान्य प्रारूपों को देखने के लिए विकल्प का उपयोग कर सकते हैं :

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

बैच के अंत से बैच के अंत तक एक प्लेलिस्ट का हिस्सा डाउनलोड करें

youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>  

... जहां <url-of-playlist>प्लेलिस्ट के URL द्वारा प्रतिस्थापित किया जाता है FORMAT, उदाहरण के लिए 18, किसी भी उपलब्ध वीडियो प्रारूप के साथ प्रतिस्थापित किया NUMBERजाता है , और डाउनलोडिंग शुरू / समाप्त करने के लिए प्लेलिस्ट में वीडियो की संख्या होती है।

चैनल

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

... जहां <url-of-channel>चैनल के URL द्वारा प्रतिस्थापित किया जाता है और FORMATउदाहरण के लिए किसी भी उपलब्ध वीडियो प्रारूप के साथ प्रतिस्थापित किया जाता है 18

वीडियो एक ही प्लेलिस्ट या चैनल में नहीं

सबसे पहले एक बैच फ़ाइल बनाएं जो एक टेक्स्ट फ़ाइल है जिसमें YouTube से वीडियो के URL की सूची है जिसे आप डाउनलोड करना चाहते हैं। URL को एक सूची में व्यवस्थित किया जाना चाहिए जिसमें सूची में प्रत्येक URL के लिए एक नई पंक्ति के साथ केवल एक URL और प्रत्येक पंक्ति में और कुछ न हो। बैच फ़ाइल को ऐसे नाम से सहेजें, जो बैच-फाइल की तरह याद रखना आसान है। यदि YouTube में एकाधिक फ़ाइलें एक ही प्लेलिस्ट, चैनल या उपयोगकर्ता वेबपेज पर हैं, तो आप एक सूची के साथ एक पाठ फ़ाइल उत्पन्न कर सकते हैं जिसमें निम्न कमांड चलाकर उस पृष्ठ के सभी लिंक हैं:

sudo apt install jq  
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt

टर्मिनल रन से:

youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'

यह मूल आदेश है, हालाँकि आपको उन वीडियो के प्रारूपों को भी जोड़ना होगा जिन्हें आप डाउनलोड करना चाहते हैं या फिर आप अपने आप को उन प्रारूपों के साथ वीडियो डाउनलोड कर सकते हैं जो आप नहीं चाहते थे। तो पहले अपने डाउनलोड का अनुकरण करें कि क्या आप चाहते हैं कि प्रारूप उपलब्ध है:

youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'

यदि वीडियो प्रारूप उपलब्ध नहीं है, तो आपको एक त्रुटि संदेश मिलेगा जो कहता है requested format not available:। यदि वीडियो प्रारूप उपलब्ध है, तो --simulateविकल्प का उपयोग करने पर आपको कोई त्रुटि संदेश नहीं मिलेगा । आप इस तरह के सभी मान्य प्रारूपों को देखने के लिए -F विकल्प भी जोड़ सकते हैं:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

तीसरे कमांड में मैंने सामान्य flv 360p वीडियो प्रारूप का उपयोग किया है
-f 34:। आप का उपयोग करके flv 480p वीडियो प्रारूप की कोशिश करना पसंद कर सकते हैं -f 35। इसलिए आपके द्वारा कमांड में इच्छित वीडियो प्रारूप जोड़ने के बाद, कमांड कुछ इस तरह बन जाती है:

youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'

टिप्पणियाँ:

मैंने --simulateअंतिम कमांड में विकल्प नहीं जोड़ा था , इसलिए इस कमांड को वास्तविक के लिए निष्पादित किया जाएगा।


18

आप बीच में एक जगह के साथ, एक के बाद एक, उरोज रख सकते हैं। Youtube-dl उन्हें क्रमिक रूप से डाउनलोड करेगा। यह बैच फ़ाइल बनाने की तुलना में थोड़ा सरल है।

सूचना - thehelp का कहना है youtube-dl --help Usage: youtube-dl [options] url [url...]

नमूना इनपुट:

youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo

नमूना उत्पादन:

    [youtube] Setting language
    [youtube] fqULJBBEVQE: Downloading video webpage
    [youtube] fqULJBBEVQE: Downloading video info webpage
    [youtube] fqULJBBEVQE: Extracting video information
    [download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
    [download] 100% of 238.14MiB in 36:54
    [youtube] vDbbz-BdyYc: Downloading video webpage
    [youtube] vDbbz-BdyYc: Downloading video info webpage
    [youtube] vDbbz-BdyYc: Extracting video information
    [download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
    [youtube] OrIFaWJ9Glo: Downloading video webpage
    [youtube] OrIFaWJ9Glo: Downloading video info webpage
    [youtube] OrIFaWJ9Glo: Extracting video information
    [download] Got server HTTP error. Retrying (attempt 1 of 20)...
    [download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
    [download] 100% of 553.10MiB in 42:17

1
मेरी राय में सबसे अच्छा जवाब! बहुत आसान!
gota

5

चरण 1: अपने डेस्कटॉप पर जाएं औरlist(या किसी अन्य नाम)नामक एक टेक्स्ट दस्तावेज़ बनाएं। जिन फ़ाइलों को आप फ़ाइल में डाउनलोड करना चाहते हैं, उन्हें प्रति URL एक पंक्ति में कॉपी और पेस्ट करें

चरण 2: खुले टर्मिनल और डेस्कटॉप पर जाएं

cd Desktop

चरण 3: अपनी सूची की फ़ाइलों को डाउनलोड करने के लिए, टाइप करें (listयदि आपने अपनी फ़ाइल को कुछ और नाम दिया है तो उसी के अनुसारबदलें)

youtube-dl -a list

YouTube चैनल डाउनलोड करने के लिए

यह आदेश चलाएँ

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c आंशिक रूप से डाउनलोड की गई फ़ाइलों को फिर से शुरू करें
  • -i किसी भी त्रुटि को अनदेखा करें।
  • -t फ़ाइल नाम के रूप में वीडियो शीर्षक का उपयोग करें।
  • -k पोस्ट-प्रोसेसिंग समाप्त होने के बाद वीडियो को डिस्क पर रखें।
  • --format mp4 MP4 फ़ाइलों के रूप में वीडियो फ़ाइलों को बचाओ।
  • --yes-playlist पुष्टि करता है कि URL जो किसी वीडियो प्लेलिस्ट की ओर इशारा करता है।

1
-citkबहुत भ्रामक है, और त्रुटियों को जन्म दे सकता है। -cसेना फिर से शुरू, भले ही यह बहुत मतलब नहीं है। डिफ़ॉल्ट पहले से ही जारी है। -iठीक हो सकता है, लेकिन सावधान रहें कि आप कुछ वीडियो में त्रुटियों को याद कर सकते हैं। -tपहले से ही डिफ़ॉल्ट है, और पदावनत। -kसाथ कोई मतलब नहीं है -f mp4। देखें यूट्यूब-डीएल पूछे जाने वाले प्रश्न अधिक जानकारी के लिए।
फ़िहाग

3

यदि आपके पास एक से अधिक वीडियो URL हैं, तो उन्हें एक नया बनाने या किसी मौजूदा का उपयोग करके अपनी YouTube प्लेलिस्ट में एक प्लेलिस्ट में जोड़ें।

फिर नीचे कमांड का उपयोग करें।

youtube-dl -f FORMAT --yes-playlist [url-of-playlist]

विकल्प --yes-playlistप्लेलिस्ट को डाउनलोड करेगा, अगर यूआरएल वीडियो और एक प्लेलिस्ट को संदर्भित करता है।

यह एक वेबसाइट से सैकड़ों वीडियो डाउनलोड करने के अपने उद्देश्य के लिए मुझे मिला सबसे सरल और तेज विकल्प है, जिसमें YouTube से वीडियो लिंक किए गए थे।


यह एक ही चैनल से बहुत सारे वीडियो डाउनलोड करने के लिए उपयोगी है। आप इसे सार्वजनिक नहीं करने के लिए एक असूचीबद्ध प्लेलिस्ट का उपयोग कर सकते हैं
क्यूआर

3

कई वीडियो डाउनलोड करने के लिए आप इस संरचना का उपयोग कर सकते हैं। यह @ coreyb की प्रतिक्रिया के समान है इसके अलावा आप इसे bash में कहीं और उपयोग कर सकते हैं, उदाहरण के लिए इको के साथ। यहाँ दो तरीके हैं:

ब्रेसिज़

youtube-dl -f FORMAT {url1,url2,url...}

अंतिम तर्क के बिना अंतिम कमांड को दोहराएं

youtube-dl -f FORMAT url1; !:- url2; !:-url...

3

सबसे सीधा समाधान इस तरह से एक बश स्क्रिप्ट बना देगा

#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt

while read -r line
do
    cd ~/Desktop/TilakDa/
    youtube-dl -f 18 "$line"
done
exec < "$terminal"

बस एक नई लाइन में प्रत्येक वीडियो url के साथ दस्तावेज़ फ़ोल्डर में उस txt फ़ाइल में वीडियो लिंक कॉपी और पेस्ट करें और इस स्क्रिप्ट को चलाएं यह वीडियो को एक-एक करके डाउनलोड करेगा डिफ़ॉल्ट रूप से -f 18विकल्प 360p वीडियो के लिए है


1

कमांड टाइप करें और फिर टाइप करें &&और अगला कमांड टाइप करें:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 

1

बैश स्क्रिप्ट के साथ प्रयास करें:

while read LL ; do youtube-dl "$LL" ; done < your_file

1

विषय अभी भी प्रासंगिक है, इसलिए:

  • अपना YouTube लिंक प्राप्त करें।
  • से शुरू होने वाला पहला वीडियो पैरामीटर निकालें ?
  • इस तरह का उपयोग करें :-)

    youtube-dl.exe --yes-playlist https://www.youtube.com/watch?list=yourlistlink
    

यह मेरे लिए काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.