Mengunduh banyak file dengan youtube-dl

45

Saya menggunakan youtube-dl untuk mengunduh file dari YouTube. Saya sudah mencoba mengunduh banyak file, tetapi tidak berhasil untuk saya. Saya harus membuka banyak terminal dan mulai lagi setiap kali saya ingin mengunduh video.

Dapatkah Anda membantu saya mengunduh banyak file dengan satu terminal terminal hanya dengan menyebutkan semua URL sekaligus? Saya menggunakan Ubuntu 12.04 64-bit.

Mecha-Unix
sumber
1
Bukan jawaban untuk pertanyaan Anda tetapi orang lain mungkin tersandung pada ini. Jika beberapa video terkait, ingatlah bahwa youtube-dl dapat mengunduh semua video dari daftar putar, pengguna, atau saluran.
Dennis
lihat jawaban di bawah ini (bukan yang paling banyak dipilih saat ini) menyarankan hanya menambahkan ruang antara url dan Anda selesai.
gota

Jawaban:

54

Pintasan

Jika semua video ada dalam daftar putar yang sama atau saluran yang sama, Anda dapat menghemat waktu dengan menggunakan cara pintas berikut.

Daftar putar

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

... di mana <url-of-playlist>diganti oleh URL daftar putar dan ganti FORMATdengan format video yang tersedia, misalnya 18. Anda dapat menggunakan -Fopsi untuk melihat semua format yang valid seperti ini:

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

Unduh bagian daftar putar dari awal batch hingga akhir batch

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

... di mana <url-of-playlist>diganti oleh URL daftar putar, ganti FORMATdengan format video yang tersedia, misalnya 18, dan NUMBERmerupakan jumlah video dalam daftar putar untuk memulai / mengakhiri pengunduhan di.

Saluran

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

... di mana <url-of-channel>diganti oleh URL saluran dan ganti FORMATdengan format video yang tersedia, misalnya 18.

Video tidak ada dalam daftar putar atau saluran yang sama

Pertama-tama buat file batch yang merupakan file teks yang berisi daftar URL video dari YouTube yang ingin Anda unduh. URL harus diatur dalam daftar yang hanya memiliki satu URL dan tidak ada yang lain di setiap baris, dengan baris baru untuk setiap URL dalam daftar. Simpan file batch dengan nama yang mudah diingat seperti batch-file.txt. Jika beberapa file semuanya ada di daftar putar, saluran, atau halaman web pengguna yang sama di YouTube, Anda dapat membuat file teks dengan daftar yang memiliki semua tautan di halaman itu dengan menjalankan perintah berikut:

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

Dari terminal run:

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

Ini adalah perintah dasar, namun Anda juga perlu menambahkan format video yang ingin Anda unduh atau Anda dapat mengunduh video dengan format yang tidak Anda inginkan. Jadi, pertama-tama, simulasikan unduhan Anda untuk melihat apakah format yang Anda inginkan tersedia:

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

Jika format video tidak tersedia Anda akan mendapatkan pesan error yang mengatakan: requested format not available. Jika format video tersedia, Anda tidak akan mendapatkan pesan kesalahan saat menggunakan --simulateopsi. Anda juga dapat menambahkan opsi -F untuk melihat semua format yang valid seperti ini:

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

Dalam perintah ketiga saya telah menggunakan umum flv 360p video format:
-f 34. Anda mungkin lebih suka mencoba format video flv 480p dengan menggunakan -f 35. Jadi setelah Anda menambahkan format video yang Anda inginkan ke perintah, perintahnya menjadi seperti ini:

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

Catatan:

Saya tidak menambahkan --simulateopsi ke perintah terakhir, jadi perintah ini akan dieksekusi nyata.

karel
sumber
18

Anda dapat menempatkan url satu demi satu, dengan spasi di antaranya. Youtube-dl akan mengunduhnya secara berurutan. Ini sedikit lebih sederhana daripada membuat file batch.

Perhatikan kata --help youtube-dl --help Usage: youtube-dl [options] url [url...]

Input sampel:

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

Output sampel:

    [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
coreyb
sumber
1
Jawaban terbaik menurut saya! Sangat sederhana!
gota
5

langkah 1: pergi ke desktop Anda dan buat dokumen teks bernamalist(atau nama lain). Salin dan tempel URL jika file yang ingin Anda unduh ke dalam file, satu URL per baris

langkah 2: buka terminal dan pergi ke desktop

cd Desktop

langkah 3: untuk mengunduh file di daftar Anda, ketik (gantilistsesuai jika Anda memberi nama file Anda sesuatu yang lain)

youtube-dl -a list

Untuk mengunduh saluran YouTube

Jalankan perintah ini

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c melanjutkan file yang diunduh sebagian
  • -i abaikan kesalahan apa pun.
  • -t gunakan judul video sebagai nama file.
  • -k simpan video pada disk setelah post-processing selesai.
  • --format mp4 simpan file video sebagai file MP4.
  • --yes-playlist menegaskan bahwa URL yang mengikuti menunjuk ke daftar putar video.
Ahmed Ismail
sumber
1
-citksangat menyesatkan, dan dapat menyebabkan kesalahan. -cPasukan melanjutkan, bahkan jika itu tidak masuk akal. Default sudah untuk melanjutkan. -imungkin baik-baik saja, tetapi berhati-hatilah bahwa Anda mungkin kehilangan kesalahan pada beberapa video. -tsudah menjadi standar, dan sudah usang. -ktidak masuk akal dengan -f mp4. Lihat FAQ youtube-dl untuk lebih jelasnya.
phihag
3

Jika Anda memiliki beberapa URL video, tambahkan saja dalam satu daftar putar ke dalam Daftar Putar YouTube Anda dengan membuat yang baru atau menggunakan yang sudah ada.

Kemudian gunakan perintah di bawah ini.

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

Opsi --yes-playlistakan mengunduh daftar putar, jika URL merujuk ke video dan daftar putar.

Ini adalah opsi paling sederhana dan tercepat yang saya temukan untuk tujuan saya mengunduh ratusan video dari situs web yang memiliki video yang ditautkan dari YouTube.

user669330
sumber
Ini berguna untuk mengunduh banyak video dari saluran yang sama. Anda dapat menggunakan daftar putar yang tidak terdaftar untuk tidak menjadikannya publik
qwr
3

Untuk mengunduh banyak video, Anda dapat menggunakan struktur ini. Ini mirip dengan respons @ coreyb dengan tambahan yang dapat Anda gunakan di tempat lain di bash, misalnya dengan gema. Berikut ini dua cara:

Kawat gigi

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

Ulangi perintah terakhir tanpa argumen terakhir

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

solusi paling mudah adalah membuat skrip bash seperti ini

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

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

cukup salin dan tempel tautan video dalam file txt itu di folder dokumen dengan setiap url video di baris baru dan jalankan skrip ini, itu akan mengunduh video satu per satu. Secara default -f 18pilihannya adalah untuk video 360p

Shantanu Bedajna
sumber
1

Ketik perintah dan kemudian ketik &&dan ketik perintah selanjutnya seperti:

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

Coba dengan skrip bash:

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

Topik masih relevan, jadi:

  • Dapatkan tautan YouTube Anda.
  • Hapus parameter video pertama yang dimulai dengan ?
  • gunakan seperti ini :-)

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

Ini bekerja untuk saya.

Studen
sumber