Câu hỏi Làm cách nào để chọn chất lượng video từ youtube-dl?


Tôi đã cài đặt youtube-dl trong 14.04 của tôi.

Tôi có thể tải video bằng cách làm theo lệnh,

$ youtube-dl [youtube-link]

Nhưng tôi muốn biết cách chọn chất lượng pixel có sẵn của video trên youtube (tức là 1080p, 720p, 480p, v.v.).

Trong phần mềm mô tả họ nói nó có thể (thể hiện trong hình dưới đây), nhưng làm thế nào để làm ..

ss


183
2018-06-21 10:03


gốc


Mô tả ở trên đã lỗi thời. Từ man trang: "youtube-dl hiện mặc định tải xuống chất lượng cao nhất hiện có theo báo cáo của YouTube, sẽ là 1080p hoặc 720p trong một số trường hợp." - Jos
Lưu ý rằng YouTube đã sử dụng một số loại bảo vệ giúp ngăn tải xuống các công cụ tải xuống (hoặc thậm chí nhìn thấy) phiên bản 1080p, nhưng bạn vẫn có thể tải xuống tất cả các độ phân giải khác tối đa và bao gồm 720p. - thomasrutter


Các câu trả lời:


Để tải xuống video, bạn nhập URL sau lệnh như sau:

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

Để chọn chất lượng video, trước tiên hãy sử dụng -F tùy chọn liệt kê các định dạng có sẵn, dưới đây là một ví dụ,

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

Đây là đầu ra:

[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)

Chất lượng tốt nhất là 22 nên dùng -f 22 thay vì -F để tải xuống video MP4 có độ phân giải 1280x720 như sau:

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

Hoặc là tùy ý sử dụng các cờ sau để tự động tải xuống các bản âm thanh và video tốt nhất có sẵn:

youtube-dl -f bestvideo+bestaudio "http://www.youtube.com/watch?v=P9pzm5b6FFY"

Nếu bạn gặp phải lỗi trong quá trình kết hợp, hãy thử làm như sau:

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

Lệnh đó sẽ đảm bảo bạn tải xuống video mp4 chất lượng cao nhất và âm thanh m4a từ video và hợp nhất chúng lại thành một mp4 duy nhất (sử dụng ffmpeg trong trường hợp của tôi).

Nguồn: http://www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html


269
2018-06-21 10:19



Hãy chắc chắn rằng bạn không chọn DASH. Điều đó sẽ không thể chơi được! - ps95
@ prakharsingh95 âm thanh DASH chỉ có thể được chuyển đổi sang dạng sóng chuẩn hoặc định dạng mp3 bằng gnac hoặc phần mềm tương tự. - mchid
y tôi la DASH Video. Tôi đã cố tải xuống 4K, nhưng đó là tất cả trong DASH định dạng (DASH cho phép youtube duy trì băng thông). Nó hoàn toàn khác, nó hầu như không thể phát được. - ps95
@ prakharsingh95 Yeah nếu bất cứ điều gì bạn có thể có thể xem mp4 bằng cách sử dụng VLC như VLC cho phép bạn đồng bộ video với một tập tin riêng biệt cho âm thanh. Tôi đã không thử nó mặc dù. Bạn đã thử chuyển đổi tệp mp4 từ tải xuống DASH sang định dạng avi chưa? Tôi nghĩ chúng giống nhau. - mchid
Vâng. Dash là tất nhiên có thể chơi được, nhưng bạn cần phải mux các dòng với một cái gì đó như avconv. Quá chậm cho 4K. - ps95


Bạn có thể tải xuống 1080p bằng youtube-dl, nhưng bạn cần làm thêm một chút. Thông thường, nó sẽ chỉ tải xuống 720p ở mức tối đa ngay cả khi bạn có thể xem 1080p trên youtube.com.

Chạy với -F để xem các định dạng có sẵn:

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)

thông báo rằng youtube-dl đã dán nhãn tùy chọn cuối cùng 1280x720 là chất lượng 'tốt nhất' và đó là những gì nó sẽ tải xuống theo mặc định, nhưng dòng bắt đầu bằng 137 thực sự là chất lượng cao hơn 1920x1080. Youtube đã tách luồng video và âm thanh cho các dòng có nhãn DASH nên chúng tôi cũng cần chọn âm thanh chất lượng cao nhất trong trường hợp này là dòng bắt đầu bằng 141. Sau đó, chúng tôi chạy youtube-dl một lần nữa, lần này chỉ định âm thanh và video:

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

và nó sẽ tải xuống video 1080p và tự động hợp nhất video đó với âm thanh chất lượng cao nhất. Nó cũng sẽ tự động xóa các phần tải xuống riêng biệt. Phương pháp này là một chút công việc phụ, nhưng sẽ giúp bạn có được kết quả tốt nhất.


79
2018-01-24 21:59



cảm ơn bạn rất nhiều, không biết về 137 + 141 - whitesiroi
Ví dụ của bạn và những người khác trình bày các lựa chọn dễ dàng cho âm thanh - nghĩa là, đối với chất lượng cao, hãy chọn giá trị có giá trị bitrate cao nhất. Tuy nhiên gần đây tôi thấy mình phải đối mặt với một sự lựa chọn giữa DASH audio , opus @160k hoặc là DASH audio 126k , audio@128k (44100Hz), 1.79MiB hoặc là DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Tôi phải chọn nhưng không chắc chắn về chất lượng, hoặc có lẽ là khả năng tương thích. - user643722
Điều tốt nhất về youtube-dl là nó là đa nền tảng. Giải pháp này không chỉ hoạt động trên Linux, mà còn trên Mac và Windows. Cảm ơn bạn! - Antony
Ngày nay, đây là mặc định, nhưng chỉ khi bạn đã cài đặt avconv (libav) hoặc ffmpeg để thực hiện chuyển đổi tệp. Đối với Windows, bạn muốn đặt --ffmpeg-location trong %APPDATA%\youtube-dl\config.txt vào thư mục chứa avconv / ffmpeg. Nếu bạn có một hệ thống cấp thấp, bạn có thể muốn -f bestvideo[fps<=30]+bestaudio trong đó là tốt, để tránh video 60fps. - GreenReaper


Để chọn độ phân giải cụ thể, bạn có thể chỉ định kích thước và chất lượng âm thanh để chúng được chọn tự động - vì vậy cho 480p:

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

với bestvideo[height<=720]+bestaudio/best[height<=720] cho 720p vv. Điều này có thể được thêm vào tệp cấu hình tại ~/.config/youtube-dl/config (hoặc thậm chí /etc/youtube-dl.conf) để bạn không tải xuống quá khổ:

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

Bạn có thể dùng --ignore-config nếu bạn muốn tắt tệp cấu hình cho một lần chạy youtube-dl cụ thể.

Xin lưu ý rằng khá thường xuyên nó sẽ phải tải về một video riêng biệt và âm thanh hơi nước và hợp nhất chúng.

Để biết thêm ví dụ, hãy xem youtube-dl's doucmentation.


15
2017-12-31 09:47



Tôi đã gặp sự cố trong đó các phân đoạn khác nhau của cùng một video có mã định dạng khác nhau cho cùng độ phân giải (ví dụ: hls-1476 cho video 1/2 và hls-1665 cho video 2 trong tổng số 2 là 540p) vì vậy tôi không thể sử dụng "-f hls-1476" hoặc "-f hls-1665" hoặc tôi nhận được "L ERI: định dạng được yêu cầu không khả dụng" Ví dụ về lệnh của bạn đã giúp tôi lấy lại những gì tôi muốn. - ssnobody
+1 cho ~/.config/youtube-dl/config - Marinos An


Một kịch bản lệnh bash wrapper sẽ nhắc nhở định dạng, bao gồm tất cả các phiên bản có sẵn, bao gồm chỉ âm thanh, chỉ video.

Chấp nhận cả URL youtube tuyệt đối và 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")

Đầu ra mẫu:

    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 #

Nếu bạn muốn tải xuống video trái ngược với luồng, chỉ cần xóa video mpv --cache=1024một phần và ký hiệu đô la có dấu ngoặc đơn.


3
2018-06-29 13:27





Một số tùy chọn khác để tải xuống các video có chất lượng tốt nhất khác với video được đề cập ở đây tùy thuộc vào sự thuận tiện của bạn được đưa ra dưới đây:

Tải xuống định dạng mp4 tốt nhất hiện có hoặc bất kỳ định dạng nào tốt nhất nếu không có mp4

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

Tải xuống định dạng tốt nhất có sẵn nhưng không tốt hơn 480p

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

Tải xuống định dạng video tốt nhất nhưng không lớn hơn 50 MB

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

Tải xuống định dạng tốt nhất có sẵn thông qua liên kết trực tiếp qua giao thức HTTP / HTTPS

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

Tài liệu tham khảo:

Trực tiếp từ trang github youtube-dl


1
2017-08-17 13:58





Theo mặc định, youtube-dl sẽ chọn chất lượng tốt nhất.


-3
2017-12-29 16:26



Có, theo readme Bạn cũng có (các) tùy chọn để chọn định dạng mong muốn, xem tại đây: github.com/rg3/youtube-dl/blob/master/… - AjayKumarBasuthkar