Tải xuống nhiều tệp bằng youtube-dl


45

Tôi sử dụng youtube-dl để tải xuống các tệp từ YouTube. Tôi đã thử tải xuống nhiều tập tin, nhưng nó không hoạt động. Tôi phải mở nhiều thiết bị đầu cuối và bắt đầu lại mỗi lần tôi muốn tải xuống video.

Bạn có thể giúp tôi tải xuống nhiều tệp với một cửa sổ đầu cuối bằng cách chỉ đề cập đến tất cả các URL cùng một lúc không? Tôi sử dụng Ubuntu 12.04 64-bit.


1
Không phải là một câu trả lời cho câu hỏi của bạn nhưng những người khác có thể vấp ngã về điều này. Nếu các video có liên quan theo một cách nào đó, hãy nhớ rằng youtube-dl có thể tải xuống tất cả các video từ danh sách phát, người dùng hoặc kênh.
Dennis

xem câu trả lời bên dưới (không phải là câu trả lời nhiều nhất hiện nay) gợi ý chỉ cần thêm khoảng trắng giữa url và bạn đã hoàn tất.
gota

Câu trả lời:


54

Phím tắt

Nếu tất cả các video nằm trong cùng một danh sách phát hoặc cùng một kênh, bạn có thể tiết kiệm thời gian bằng cách sử dụng các phím tắt sau.

Danh sách phát

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

... ví dụ , nơi <url-of-playlist>được thay thế bằng URL của danh sách phát và thay thế FORMATbằng bất kỳ định dạng video có sẵn nào 18. Bạn có thể sử dụng -Ftùy chọn để xem tất cả các định dạng hợp lệ như thế này:

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

Tải xuống một phần của danh sách phát từ đầu đợt này đến hết đợt khác

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

... ví dụ , nơi <url-of-playlist>được thay thế bằng URL của danh sách phát, thay thế FORMATbằng bất kỳ định dạng video có sẵn nào 18, và NUMBERlà số lượng video trong danh sách phát để bắt đầu / kết thúc tải xuống tại.

Kênh

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

... ví dụ , nơi <url-of-channel>được thay thế bằng URL của kênh và thay thế FORMATbằng bất kỳ định dạng video có sẵn nào 18.

Video không nằm trong cùng danh sách phát hoặc kênh

Trước tiên, hãy tạo một tệp bó là tệp văn bản chứa danh sách URL của video từ YouTube mà bạn muốn tải xuống. Các URL phải được sắp xếp trong một danh sách chỉ có một URL và không có gì khác trên mỗi dòng, với một dòng mới cho mỗi URL trong danh sách. Lưu tệp bó với một tên dễ nhớ như batch-file.txt. Nếu nhiều tệp trên cùng một danh sách phát, kênh hoặc trang web người dùng trong YouTube, bạn có thể tạo tệp văn bản với danh sách có tất cả các liên kết trên trang đó bằng cách chạy lệnh sau:

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

Từ thiết bị đầu cuối chạy:

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

Đây là lệnh cơ bản, tuy nhiên bạn cũng cần thêm các định dạng của video mà bạn muốn tải xuống nếu không bạn có thể thấy mình tải xuống các video có định dạng mà bạn không muốn. Vì vậy, trước tiên hãy mô phỏng bản tải xuống của bạn để xem định dạng bạn muốn có sẵn không:

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

Nếu định dạng video không có sẵn, bạn sẽ nhận được thông báo lỗi cho biết : requested format not available. Nếu định dạng video khả dụng, bạn sẽ không nhận được bất kỳ thông báo lỗi nào khi bạn sử dụng --simulatetùy chọn. Bạn cũng có thể thêm tùy chọn -F để xem tất cả các định dạng hợp lệ như thế này:

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

Trong lệnh thứ ba, tôi đã sử dụng định dạng video flv 360p phổ biến :
-f 34. Bạn có thể thích thử định dạng video flv 480p bằng cách sử dụng -f 35. Vì vậy, sau khi bạn đã thêm định dạng video mà bạn muốn vào lệnh, lệnh sẽ trở thành một cái gì đó như thế này:

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

Ghi chú:

Tôi đã không thêm --simulatetùy chọn vào lệnh cuối cùng, vì vậy lệnh này sẽ được thực thi thực sự.


18

Bạn có thể đặt các url lần lượt, với một khoảng trống ở giữa. Youtube-dl sẽ tải chúng liên tục. Điều này đơn giản hơn một chút so với việc tạo một tệp bó.

Lưu ý --help nói youtube-dl --help Usage: youtube-dl [options] url [url...]

Đầu vào mẫu:

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

Đầu ra mẫu:

    [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
Câu trả lời tốt nhất theo ý kiến ​​của tôi! Rất đơn giản!
gota

5

Bước 1: đi đến máy tính để bàn của bạn và tạo một tài liệu văn bản được gọilist(hoặc bất kỳ tên nào khác). Sao chép và dán URL nếu tệp bạn muốn tải xuống tệp, một URL trên mỗi dòng

Bước 2: mở terminal và vào màn hình nền

cd Desktop

Bước 3: để tải xuống các tệp trong danh sách của bạn, hãy nhập (thay thế cholistphù hợp nếu bạn đặt tên tệp của mình một cái gì đó khác)

youtube-dl -a list

Để tải xuống một kênh YouTube

Chạy lệnh này

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c tiếp tục tập tin tải xuống một phần
  • -i bỏ qua bất kỳ lỗi nào
  • -t sử dụng tiêu đề video làm tên tập tin
  • -k giữ video trên đĩa sau khi xử lý xong.
  • --format mp4 lưu các tập tin video dưới dạng tập tin MP4.
  • --yes-playlist xác nhận rằng URL theo sau trỏ đến danh sách phát video.

1
-citklà rất sai lệch, và có thể dẫn đến lỗi. -clực lượng tiếp tục, ngay cả khi nó không có ý nghĩa nhiều. Mặc định là đã tiếp tục. -icó thể ổn, nhưng hãy cẩn thận rằng bạn có thể bỏ lỡ lỗi trên một số video. -tđã là mặc định và không dùng nữa. -kkhông có ý nghĩa với -f mp4. Xem Câu hỏi thường gặp về youtube-dl để biết thêm chi tiết.
phihag

3

Nếu bạn có nhiều URL video, chỉ cần thêm chúng trong một danh sách phát vào Danh sách phát YouTube của bạn bằng cách tạo một URL mới hoặc sử dụng một URL hiện có.

Sau đó sử dụng lệnh dưới đây.

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

Tùy chọn --yes-playlistsẽ tải xuống danh sách phát, nếu URL đề cập đến video và danh sách phát.

Đây là tùy chọn đơn giản và nhanh nhất tôi tìm thấy cho mục đích tải xuống hàng trăm video từ một trang web có video được liên kết từ YouTube.


Điều này hữu ích để tải xuống rất nhiều video từ cùng một kênh. Bạn có thể sử dụng danh sách phát chưa được liệt kê để không công khai
qwr

3

Để tải xuống nhiều video, bạn có thể sử dụng cấu trúc này. Nó tương tự như phản hồi của @ coreyb với việc bổ sung rằng bạn có thể sử dụng nó ở nơi khác trong bash, ví dụ như với echo. Đây là hai cách:

Niềng răng

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

Lặp lại lệnh cuối cùng mà không có đối số cuối cùng

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

3

giải pháp đơn giản nhất sẽ là tạo một tập lệnh bash như thế này

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

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

chỉ cần sao chép và dán các liên kết video trong tệp txt đó vào thư mục tài liệu với mỗi url video trong một dòng mới và chạy tập lệnh này, nó sẽ tải xuống từng video một theo mặc định, -f 18tùy chọn này dành cho video 360p


1

Nhập lệnh và sau đó nhập &&và nhập lệnh tiếp theo như:

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

1

Thử với bash script:

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

1

Chủ đề vẫn có liên quan, vì vậy:

  • Nhận liên kết YouTube của bạn.
  • Xóa tham số video đầu tiên bắt đầu bằng ?
  • sử dụng như thế này :-)

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

Điều này làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.