Скачивание нескольких файлов с помощью youtube-dl

45

Я использую youtube-dl для загрузки файлов с YouTube. Я пытался загрузить несколько файлов, но у меня ничего не вышло. Мне нужно открывать несколько терминалов и начинать заново каждый раз, когда я хочу скачать видео.

Можете ли вы помочь мне загрузить несколько файлов с помощью одного окна терминала, просто упомянув все URL-адреса одновременно? Я использую Ubuntu 12.04 64-bit.

Mecha-Unix
источник
1
Не ответ на ваш вопрос, но другие могут наткнуться на это. Если видео связаны каким-либо образом, помните, что youtube-dl может загружать все видео из плейлиста, пользователя или канала.
Деннис
см. ответ ниже (не самый популярный в настоящее время), предлагающий просто добавить пробел между URL-адресами, и все готово.
Гота

Ответы:

54

Ярлыки

Если все видео находятся в одном и том же списке воспроизведения или на одном и том же канале, вы можете сэкономить время с помощью следующих ярлыков.

Playlist

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.

Видео не в том же плейлисте или канале

Сначала создайте пакетный файл, который представляет собой текстовый файл, содержащий список URL-адресов видео с YouTube, которые вы хотите загрузить. URL-адреса должны быть расположены в списке, содержащем только один URL-адрес и ничего больше в каждой строке, с новой строкой для каждого URL-адреса в списке. Сохраните командный файл с именем, которое легко запомнить, например, batch-file.txt. Если все файлы находятся в одном списке воспроизведения, канале или веб-странице пользователя на 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

Вы можете поместить URL-адреса один за другим, с пробелом между ними. Youtube-dl будет загружать их последовательно. Это немного проще, чем создание командного файла.

Обратите внимание на --help говорит 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
coreyb
источник
1
Лучший ответ на мой взгляд! Очень просто!
Гота
5

Шаг 1: перейдите на рабочий стол и создайте текстовый документ с именемlist(или любым другим именем). Скопируйте и вставьте URL-адреса, если файлы, которые вы хотите загрузить в файл, по одному 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. См. Часто задаваемые вопросы youtube-dl .
phihag
3

Если у вас несколько URL-адресов для видео, просто добавьте их в один плейлист в свой плейлист YouTube, создав новый или используя существующий.

Затем используйте команду ниже.

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

Опция --yes-playlistзагрузит список воспроизведения, если URL ссылается на видео и список воспроизведения.

Это самый простой и быстрый вариант, который я нашел для загрузки сотен видео с веб-сайта, на который были добавлены ссылки с YouTube.

user669330
источник
Это полезно для загрузки большого количества видео с одного канала. Вы можете использовать незарегистрированный плейлист, чтобы не делать его публичным
qwr
3

Для загрузки нескольких видео вы можете использовать эту структуру. Это похоже на ответ @ coreyb с добавлением, что вы можете использовать его в другом месте в bash, например с echo. Вот два способа:

фигурные скобки

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

Повторите последнюю команду без последнего аргумента

youtube-dl -f FORMAT url1; !:- url2; !:-url...
XUI
источник
3

самое простое решение было бы сделать скрипт bash, как это

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

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

просто скопируйте и вставьте ссылки на видео в этот txt-файл в папку документов с каждым URL-адресом видео в новой строке и запустите этот скрипт, он будет загружать видео один за другим. По умолчанию -f 18опция для видео 360p

Шантану Бедаджна
источник
1

Введите команду, а затем введите &&и введите следующую команду, например:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
user859198
источник
1

Попробуйте с помощью скрипта bash:

while read LL ; do youtube-dl "$LL" ; done < your_file
totolezero
источник
1

Тема по-прежнему актуальна, поэтому:

  • Получите ссылку на YouTube.
  • Удалить первый видео параметр, начинающийся с ?
  • используйте как это :-)

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

Это работает для меня.

студень
источник