Bagaimana cara memilih kualitas video dari youtube-dl?


255

Saya telah menginstal youtube-dl di 14.04 saya.

Saya dapat mengunduh video dengan mengikuti perintah,

$ youtube-dl [youtube-link]

Tapi saya ingin tahu cara memilih kualitas piksel video youtube yang tersedia ( yaitu 1080p, 720p, 480p, dll ) .

Dalam deskripsi perangkat lunak mereka mengatakan itu mungkin (ditunjukkan pada gambar di bawah), tetapi bagaimana melakukannya ..

ss


1
Deskripsi di atas sudah usang. Dari manhalaman: "youtube-dl sekarang default untuk mengunduh kualitas tertinggi yang tersedia seperti yang dilaporkan oleh YouTube, dalam beberapa kasus akan menjadi 1080p atau 720p."
Jos

1
Perhatikan bahwa YouTube telah menggunakan semacam perlindungan yang mencegah alat unduhan mengunduh (atau bahkan melihat) versi 1080p, tetapi Anda masih dapat mengunduh semua resolusi lain hingga dan termasuk 720p.
thomasrutter

Saya tahu saya agak terlambat ke pesta, tapi inilah pengalaman saya: askubuntu.com/a/1097056/327339 . Gunakan -f bestopsi.
Gabriel Staples

Jawaban:


360

Untuk mengunduh video, Anda mengetik URL setelah perintah seperti:

youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Untuk memilih kualitas video , pertama gunakan -Fopsi untuk daftar format yang tersedia, berikut ini sebuah contoh,

youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Inilah hasilnya:

[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution  note 
140         m4a       audio only  DASH audio , audio@128k (worst)
160         mp4       144p        DASH video , video only
133         mp4       240p        DASH video , video only
134         mp4       360p        DASH video , video only
135         mp4       480p        DASH video , video only
136         mp4       720p        DASH video , video only
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

Kualitas terbaik adalah 22 jadi gunakan -f 22daripada -Fmengunduh video MP4 dengan resolusi 1280x720 seperti ini:

youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Atau secara opsional menggunakan bendera berikut untuk secara otomatis mengunduh trek audio dan video terbaik yang tersedia sebagai satu file:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Jika Anda menemukan kesalahan apa pun selama proses muxing atau masalah dengan pemilihan kualitas video, Anda dapat menggunakan salah satu dari perintah berikut:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

atau seperti yang ditunjukkan Gabriel Staples di sini , perintah berikut biasanya akan memilih resolusi kualitas video file tunggal terbaik yang sebenarnya alih-alih kecepatan bit kualitas video:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Perintah-perintah ini akan memastikan Anda mengunduh video mp4 dan audio m4a kualitas tertinggi dari video sebagai satu file atau akan menggabungkannya kembali menjadi satu mp4 (menggunakan ffmpegdalam kasus saya). Jika ffmpegatau avconvtidak tersedia, youtube-dlharus kembali ke satu file -f best optiondaripada default.

Klik di sini untuk informasi lebih rinci dan beberapa contoh berbeda.

Juga, klik untuk melihat jawaban terkait ini oleh Gabriel Staples.


Sumber: www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

Sumber: github.com/rg3/youtube-dl


5
Pastikan Anda tidak memilih DASH. Itu tidak akan bisa dimainkan!
ps95

@ prakharsingh95 audio DASH hanya dapat dikonversi ke format gelombang atau mp3 standar menggunakan gnac atau perangkat lunak serupa.
mchid

1
Maksud saya DASH Video. Saya mencoba mengunduh 4K, tetapi itu semua dalam DASHformat ( DASHmemungkinkan youtube untuk mempertahankan bandwidth). Ini sangat berbeda, kebanyakan tidak bisa dimainkan.
ps95

1
@ prakharsingh95 Ya jika Anda bisa melihat mp4 menggunakan VLC karena VLC memungkinkan Anda untuk menyinkronkan video dengan file terpisah untuk audio. Saya belum mencobanya. Sudahkah Anda mencoba mengonversi file mp4 dari unduhan DASH ke format avi? Saya pikir mereka serupa.
mchid

2
Iya. Dash tentu saja dapat dimainkan, tetapi Anda harus menyamakan aliran dengan sesuatu seperti avconv. Terlalu lambat untuk 4K.
ps95

110

Anda dapat mengunduh 1080p menggunakan youtube-dl, tetapi Anda perlu melakukan sedikit pekerjaan tambahan. Biasanya itu hanya akan mengunduh 720p sebagai maksnya bahkan jika Anda dapat melihat 1080p di youtube.com.

Jalankan dengan -Funtuk melihat format yang tersedia:

youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

171         webm      audio only  DASH audio  115k , audio@128k (44100Hz), 2.59MiB (worst)
140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 3.02MiB
141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 5.99MiB
160         mp4       256x144     DASH video  111k , 12fps, video only, 2.56MiB
247         webm      1280x720    DASH video 1807k , 1fps, video only, 23.48MiB
136         mp4       1280x720    DASH video 2236k , 24fps, video only, 27.73MiB
248         webm      1920x1080   DASH video 3993k , 1fps, video only, 42.04MiB
137         mp4       1920x1080   DASH video 4141k , 24fps, video only, 60.28MiB
43          webm      640x360
18          mp4       640x360
22          mp4       1280x720    (best)

pemberitahuan yang youtube-dltelah menandai opsi terakhir 1280x720 sebagai kualitas 'terbaik' dan itulah yang akan diunduh secara default, tetapi baris yang dimulai dengan 137 sebenarnya berkualitas lebih tinggi 1920x1080. Youtube telah memisahkan aliran video dan audio untuk saluran berlabel DASH sehingga kita juga perlu memilih audio dengan kualitas terbaik yang dalam hal ini adalah saluran yang dimulai dengan 141. Kemudian kita jalankan youtube-dllagi kali ini dengan menetapkan audio dan video:

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

dan itu akan mengunduh video 1080p dan menggabungkannya dengan audio berkualitas tinggi. Itu juga harus secara otomatis menghapus bagian yang diunduh terpisah. Metode ini sedikit kerja ekstra, tetapi akan memberi Anda hasil terbaik.


11
terima kasih banyak, tidak tahu tentang 137 + 141
whitesiroi

3
Contoh Anda dan lainnya menyajikan pilihan mudah untuk audio - yaitu, untuk kualitas tinggi, pilihlah yang dengan nilai bitrate tertinggi. Saya baru-baru namun mendapati diriku dihadapkan dengan pilihan antara DASH audio , opus @160katau DASH audio 126k , audio@128k (44100Hz), 1.79MiBatau DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Saya harus memilih tetapi tidak yakin tentang kualitas, atau mungkin kompatibilitas.
user643722

1
Hal terbaik tentang youtube-dl adalah multi-platform. Solusi ini tidak hanya bekerja di Linux, tetapi juga di Mac dan Windows. Terima kasih!
Antony

2
Saat ini ini adalah default, tetapi hanya jika Anda memiliki avconv (libav) atau ffmpeg diinstal untuk melakukan konversi file. Untuk Windows, Anda ingin mengatur --ffmpeg-locationdi %APPDATA%\youtube-dl\config.txtke direktori tempat avconv / ffmpeg diinstal. Jika Anda memiliki sistem low-end yang mungkin Anda inginkan -f bestvideo[fps<=30]+bestaudiodi sana, untuk menghindari video 60fps.
GreenReaper

29

Untuk memilih resolusi tertentu, Anda dapat menentukan ukuran dan kualitas audio sehingga mereka dipilih secara otomatis - jadi untuk 480p :

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

dengan bestvideo[height<=720]+bestaudio/best[height<=720]untuk 720p dll. Ini dapat ditambahkan ke file konfigurasi di ~/.config/youtube-dl/config(atau bahkan /etc/youtube-dl.conf) sehingga Anda tidak mendapatkan unduhan yang terlalu besar:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

Anda dapat menggunakan --ignore-configjika Anda ingin menonaktifkan file konfigurasi untuk menjalankan youtube-dl tertentu.

Harap dicatat bahwa cukup sering harus mengunduh video dan audio steam terpisah dan menggabungkannya.

Untuk lebih banyak contoh lihat youtube-dldoucmentation .


1
Saya mempunyai masalah di mana segmen yang berbeda dari video yang sama memiliki kode format yang berbeda untuk resolusi yang sama (misalnya hls-1476 untuk video 1 dari 2 dan hls-1665 untuk video 2 dari 2 di mana keduanya 540p) jadi saya tidak bisa hanya menggunakan "-f hls-1476" atau "-f hls-1665" atau saya akan "ERROR: format yang diminta tidak tersedia" Contoh perintah Anda membantu saya mengambil apa yang saya inginkan.
ssnobody

1
+1 untuk~/.config/youtube-dl/config
Marinos

10

Beberapa opsi lain untuk mengunduh video kualitas terbaik selain yang disebutkan di sini tergantung pada kenyamanan Anda diberikan di bawah ini:

Unduh format mp4 terbaik yang tersedia atau yang terbaik lainnya jika tidak ada mp4 yang tersedia

$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'

Unduh format terbaik yang tersedia tetapi tidak lebih baik dari 480p

$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

Unduh format video terbaik saja tetapi tidak lebih besar dari 50 MB

$ youtube-dl -f 'best[filesize<50M]'

Unduh format terbaik yang tersedia melalui tautan langsung melalui protokol HTTP / HTTPS

$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'

Referensi:

Langsung dari halaman youtube-dl github


Bagaimana cara menggabungkan ext=mp4 && height<=480 && filesize<50M?
mrgloom

6

Script bash wrapper yang meminta format, yang mencakup semua terjemahan yang tersedia, termasuk hanya audio, hanya video, dan kemudian streaming video / audio dengan mpv.

Menerima baik URL youtube absolut dan ID video.

#!/ usr/bin/env bash
# Download youtube video with desired quality

# youtube-dl accepts both fully qualified URLs and video id's such as AQcQgfvfF1M

url="$*"

echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT

echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")

Output sampel :

    yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
    [youtube] Dax_tnZRExc: Downloading webpage
    [youtube] Dax_tnZRExc: Downloading video info webpage
    [youtube] Dax_tnZRExc: Extracting video information
    [youtube] Dax_tnZRExc: Downloading MPD manifest
    [info] Available formats for Dax_tnZRExc:
    format code  extension  resolution note
    139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
    249          webm       audio only DASH audio   50k , opus @ 50k, 271.91KiB
    250          webm       audio only DASH audio   70k , opus @ 70k, 366.63KiB
    171          webm       audio only DASH audio  118k , vorbis@128k, 652.50KiB
    140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
    251          webm       audio only DASH audio  130k , opus @160k, 705.84KiB
    160          mp4        256x144    DASH video  109k , avc1.4d400c, 13fps, video only, 703.64KiB
    278          webm       256x144    144p  111k , webm container, vp9, 25fps, video only, 439.72KiB
    242          webm       426x240    240p  243k , vp9, 25fps, video only, 623.95KiB
    133          mp4        426x240    DASH video  252k , avc1.4d4015, 25fps, video only, 1.54MiB
    134          mp4        640x360    DASH video  388k , avc1.4d401e, 25fps, video only, 1.24MiB
    243          webm       640x360    360p  458k , vp9, 25fps, video only, 1.19MiB
    135          mp4        854x480    DASH video  761k , avc1.4d401e, 25fps, video only, 2.40MiB
    244          webm       854x480    480p  893k , vp9, 25fps, video only, 2.00MiB
    136          mp4        1280x720   DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
    247          webm       1280x720   720p 1754k , vp9, 25fps, video only, 3.94MiB
    137          mp4        1920x1080  DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
    248          webm       1920x1080  1080p 2792k , vp9, 25fps, video only, 8.09MiB
    17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
    36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
    43           webm       640x360    medium , vp8.0, vorbis@128k
    18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
    22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)
    Please enter the desired format #

Jika Anda ingin mengunduh video sebagai lawan streaming, cukup hapus mpv --cache=1024bagian dan tanda dolar dengan tanda kurung.


2

Cara mendapatkan kualitas video terbaik .

Jawaban ini di sini, dengan suara terbanyak, seharusnya tepat untuk memberikan Anda kualitas video terbaik yang tersedia, tetapi .... tidak. bestvideo+bestaudiotampaknya hanya memilih video terbaik dan audio terbaik dari opsi yang hanya video dan audio saja , lalu menggabungkan keduanya. Perhatikan bahwa ini juga tampaknya identik dengan perilaku default youtube-dl. Namun, pada video yang saya lihat, kualitas terbaik adalah file tunggal yang telah digabungkan yang sudah dalam format dengan gabungan video dan audio. The bestvideo+bestaudiopilihan TIDAK pilih file kualitas 720p terbaik ini karena itu hanya mencari terpisah video dan file audio. Detail di bawah ini.

Larutan? Mintalah ia mengambil file tunggal terbaik yang berisi video dan audio sekaligus, dengan ini:

youtube-dl -f best https://youtu.be/FWGC9SqA3J0

Singkatnya: gunakan -f bestopsi, BUKAN -f bestvideo+bestaudiopilihan!

Bukti:

masukkan deskripsi gambar di sini

Lebih khusus, lihat di bawah untuk hasil menjalankan

youtube-dl -F https://youtu.be/FWGC9SqA3J0

untuk melihat video apa yang tersedia untuk diunduh:

gabriel ~ $ youtube-dl -F https://youtu.be/FWGC9SqA3J0
[youtube] FWGC9SqA3J0: Downloading webpage
[youtube] FWGC9SqA3J0: Downloading video info webpage
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[info] Available formats for FWGC9SqA3J0:
format code  extension  resolution note
139          m4a        audio only DASH audio   50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 2.30MiB
249          webm       audio only DASH audio   51k , opus @ 50k, 2.34MiB
250          webm       audio only DASH audio   62k , opus @ 70k, 2.85MiB
171          webm       audio only DASH audio  103k , vorbis@128k, 4.68MiB
251          webm       audio only DASH audio  109k , opus @160k, 5.10MiB
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 6.13MiB
160          mp4        256x138    DASH video  108k , mp4_dash container, avc1.4d400b, 24fps, video only
134          mp4        640x348    DASH video  142k , mp4_dash container, avc1.4d401e, 24fps, video only, 3.42MiB
133          mp4        426x232    DASH video  242k , mp4_dash container, avc1.4d400c, 24fps, video only
136          mp4        1280x694   DASH video  473k , mp4_dash container, avc1.4d401f, 24fps, video only, 8.01MiB
135          mp4        854x464    DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 1.63MiB
36           3gp        320x174    small , mp4v.20.3, mp4a.40.2, 2.98MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 7.44MiB
18           mp4        640x348    medium , avc1.42001E, mp4a.40.2@ 96k, 8.54MiB
22           mp4        1280x694   hd720 , avc1.64001F, mp4a.40.2@192k (best) 

Perhatikan bahwa baris 22 mengatakan "(terbaik)" di ujung kanannya. Ini adalah satu-satunya pilihan yang menawarkan kualitas hd720, yang merupakan kualitas terbaik yang bisa saya dapatkan ketika menonton video ini di browser web di YouTube. Ini adalah yang paling jelas dan memiliki definisi terbaik. Ketika saya menggunakan salah satu perintah yang direkomendasikan oleh jawaban teratas:

youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0

ATAU:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0

Saya berakhir dengan video yang kualitasnya lebih rendah / resolusi lebih rendah, dan memiliki ukuran file yang lebih besar. Saya tidak mengerti persisnya, tetapi -f bestpilihannya adalah satu-satunya yang benar-benar memberi saya resolusi terbaik.

Berikut beberapa tangkapan layar:

  1. Menggunakan opsi kualitas rendah yang -f bestvideo+bestaudio diterima di sini sebagai jawaban yang benar (ATAU hanya menggunakan opsi default:) youtube-dl https://youtu.be/FWGC9SqA3J0:

    • masukkan deskripsi gambar di sini
    • Perhatikan betapa kaburnya ikon di bagian atas, dan betapa sulitnya membaca adalah jendela terbuka dan kata-kata kecil di dalamnya!
    • Ini jauh lebih buruk daripada kualitas yang saya dapatkan ketika menonton online di YouTube langsung di browser.
    • Opsi ini juga membutuhkan lebih banyak memori karena beberapa alasan: video tersebut berukuran 18.0 MB, dan butuh waktu lebih lama bagi sistem saya untuk mengunduh dan menggabungkan kembali (audio + video) daripada -f bestopsi di bawah ini, yang hanya harus melakukan satu unduhan dan tanpa penggabungan kembali karena sudah satu file.
  2. Menggunakan opsi kualitas yang lebih tinggi -f best yang saya rekomendasikan:

    • masukkan deskripsi gambar di sini
    • Perhatikan seberapa jelas ikon kecil di bagian atas dan font kecil di jendela!
    • Ini adalah resolusi yang identik dengan apa yang saya dapatkan ketika menonton dalam resolusi tertinggi yang mungkin secara langsung di browser di YouTube.
    • Opsi ini juga membutuhkan lebih sedikit memori karena beberapa alasan: video adalah 14,8 MB.

Bacaan tambahan:

Lihat man youtube-dldetailnya.


1
aneh bahwa saya melihat daftar opsi 1920x1080, tetapi opsi 1280x720 (hd720) masih mengatakan "terbaik"
nmz787

Semua tangkapan layar Anda menunjukkan beberapa barang elektronik.
localhost

@ localhost, benar. Itu semua tangkapan layar dari URL video whos yang Anda lihat di semua cuplikan kode saya di seluruh pos: youtu.be/FWGC9SqA3J0 .
Gabriel Staples

@GabrielStaples Aah. Ya, itu masuk akal. Maaf soal itu.
localhost

Apakah tidak aneh, bahwa angka tertinggi di sisi kiri tidak sesuai dengan jumlah piksel tertinggi di layar dalam contoh kode Anda dari format yang tersedia?
Ben

0

Saya seorang penghemat disk, jadi saya mengunduh video format 1280 x 720,
karena 4kvideo mengambil lebih banyak ukuran hard disk saya.
Jadi saya menambahkan youtube-dl~ /. file bashrc seperti yang diberikan di bawah ini

Mengatur pekerjaan -

buka terminal dan jenis

  • nano ~/.bashrc
    sekarang pergi ke bagian paling bawah file dan tambahkan perintah di bawah ini
  • alias yt='youtube-dl -if best'
  • simpan file dengan menekan Ctrl olalu tekanEnter
  • keluar dari file dengan menekan Ctrl x
  • dan perintah run terakhir source ~/.bashrcdi terminal

Eksperimen -

Buka terminal dan ketik
yt https://www.youtube.com/watch?v=puPUJlV1-W4
Itu akan mulai mengunduh video dengan kualitas terbaik.

Penjelasan -
Bash memungkinkan kita untuk mendefinisikan alias yang bertindak seperti pintasan ke perintah bash
dalam kasus kita, kita mendefinisikan alias sebagai -
alias yt = 'youtube-dl -i f best' di
mana yt adalah perintah pintas untuk 'youtube-dl' yang memberikan kelegaan
jari kita mengetik perintah panjang.
Anda dapat menulis apa pun di tempat yt .
Aku menetapkan bendera -i di yang berartiyoutube-dl -if best

Ini akan berlanjut pada kesalahan pengunduhan, misalnya untuk melewatkan video yang tidak tersedia di daftar putar


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.