Я использую youtube-dl для загрузки файлов с YouTube. Я попытался загрузить несколько файлов, но это не работает для меня. Мне нужно открыть несколько терминалов и начать заново каждый раз, когда я хочу загрузить видео.
Можете ли вы помочь мне загрузить несколько файлов с помощью одного окна терминала, просто указав сразу все URL-адреса? Я использую Ubuntu 12.04 64-bit.
Вы можете поместить URL-адреса один за другим с промежутком между ними. Youtube-dl будет загружать их последовательно.
Обратите внимание, что -help говорит youtube-dl --help Usage: youtube-dl [options] url [url...]
Пример ввода:
corey in /media/Media/Videos$ 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
наиболее простым решением будет создание сценария 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-адресом видео в новой строке и запустите это script наиболее простым решением будет создание скрипта bash, подобного этому По умолчанию опция -f 18 предназначена для видео 360p
Если все видео находятся в одном и том же списке воспроизведения или том же канале, вы можете сэкономить время, используя следующие ярлыки.
youtube-dl -f FORMAT -ci <url-of-playlist>
... где <url-of-playlist> заменяется URL-адресом плейлиста и заменяет FORMAT любым доступным видеоформатом, например 18.
youtube-dl -f FORMAT -ci --playlist-start NUMBER <url-of-playlist>
... где <url-of-playlist> заменяется URL-адресом плейлиста, замените FORMAT на любой доступный формат видео, например 18, а NUMBER - номер видео
youtube-dl -f FORMAT -citw -v <url-of-channel>
... где <url-of-channel> заменяется URL-адресом канала и заменяет FORMAT любым доступным видео Например, 18.
Сначала создайте командный файл, который представляет собой текстовый файл, содержащий список URL-адресов видео с YouTube, вы хотите скачать. URL-адреса должны быть упорядочены в списке, имеющем только один URL-адрес, и ничем больше в каждой строке, с новой строкой для каждого URL-адреса в списке. Сохраните командный файл с именем, которое легко запомнить как batch-file.txt. Если несколько файлов находятся на одной и той же веб-странице на YouTube, вы можете создать текстовый файл со списком со всеми ссылками на этой странице, выполнив следующую команду:
lynx --dump -listonly "URL-of-YouTube-webpage" > 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 -cit -f 35 --batch-file='/path/to/batch-file.txt'
Примечания:
Я не добавил --simulate option для последней команды, поэтому эта команда будет выполнена для реального.
Если у вас несколько URL-адресов видео, просто добавьте их в один список воспроизведения в свой список воспроизведения YouTube, создав новый или используя существующий.
Затем используйте команду ниже.
youtube-dl -f FORMAT --yes-playlist [url-of-playlist]
Опция --yes-playlist загрузит список воспроизведения, если URL-адрес относится к видео и списку воспроизведения.
Это самый простой и быстрый вариант, который я нашел для своей цели загрузки сотен видео с веб-сайта у которого были видеоролики, связанные с YouTube.
шаг 1: перейдите на рабочий стол и создайте текстовый документ с именем list (или любым другим именем). Скопируйте и вставьте URL-адреса, если файлы, которые вы хотите загрузить в файл, по одному URL на строку
шаг 1: откройте терминал и перейдите на рабочий стол
cd Desktop
шаг 1: , чтобы загрузить файлы в вашем списке, введите (замените list соответственно, если вы назвали свой файл чем-то другим)
youtube-dl -a list
] шаг 1:
Запустить эту команду
youtube-dl -citk –format mp4 –yes-playlist VIDEO_PLAYLIST_LINK
-c возобновить частично загруженные файлы -i игнорировать любые ошибки. -t используйте название видео в качестве имени файла. -k сохраняйте видео на диске после завершения последующей обработки. --format mp4 сохранить видеофайлы в формате MP4. --yes-playlist подтверждает, что следующий URL-адрес указывает на список воспроизведения видео. Чтобы загрузить несколько видеороликов, вы можете использовать эту структуру. Это похоже на ответ @ coreyb с добавлением, что вы можете использовать его в другом месте в bash, например, с эхом. Вот два способа:
Брекеты
youtube-dl -f FORMAT {url1,url2,url...}
Брекеты
youtube-dl -f FORMAT url1; !:- url2; !:-url...
Вы можете поместить URL-адреса один за другим с промежутком между ними. Youtube-dl будет загружать их последовательно.
Обратите внимание, что -help говорит youtube-dl --help Usage: youtube-dl [options] url [url...]
Пример ввода:
corey in /media/Media/Videos$ 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
наиболее простым решением будет создание сценария 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-адресом видео в новой строке и запустите это script наиболее простым решением будет создание скрипта bash, подобного этому По умолчанию опция -f 18 предназначена для видео 360p
Если все видео находятся в одном и том же списке воспроизведения или том же канале, вы можете сэкономить время, используя следующие ярлыки.
youtube-dl -f FORMAT -ci <url-of-playlist>
... где <url-of-playlist> заменяется URL-адресом плейлиста и заменяет FORMAT любым доступным видеоформатом, например 18.
youtube-dl -f FORMAT -ci --playlist-start NUMBER <url-of-playlist>
... где <url-of-playlist> заменяется URL-адресом плейлиста, замените FORMAT на любой доступный формат видео, например 18, а NUMBER - номер видео
youtube-dl -f FORMAT -citw -v <url-of-channel>
... где <url-of-channel> заменяется URL-адресом канала и заменяет FORMAT любым доступным видео Например, 18.
Сначала создайте командный файл, который представляет собой текстовый файл, содержащий список URL-адресов видео с YouTube, вы хотите скачать. URL-адреса должны быть упорядочены в списке, имеющем только один URL-адрес, и ничем больше в каждой строке, с новой строкой для каждого URL-адреса в списке. Сохраните командный файл с именем, которое легко запомнить как batch-file.txt. Если несколько файлов находятся на одной и той же веб-странице на YouTube, вы можете создать текстовый файл со списком со всеми ссылками на этой странице, выполнив следующую команду:
lynx --dump -listonly "URL-of-YouTube-webpage" > 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 -cit -f 35 --batch-file='/path/to/batch-file.txt'
Примечания:
Я не добавил --simulate option для последней команды, поэтому эта команда будет выполнена для реального.
Если у вас несколько URL-адресов видео, просто добавьте их в один список воспроизведения в свой список воспроизведения YouTube, создав новый или используя существующий.
Затем используйте команду ниже.
youtube-dl -f FORMAT --yes-playlist [url-of-playlist]
Опция --yes-playlist загрузит список воспроизведения, если URL-адрес относится к видео и списку воспроизведения.
Это самый простой и быстрый вариант, который я нашел для своей цели загрузки сотен видео с веб-сайта у которого были видеоролики, связанные с YouTube.
шаг 1: перейдите на рабочий стол и создайте текстовый документ с именем list (или любым другим именем). Скопируйте и вставьте URL-адреса, если файлы, которые вы хотите загрузить в файл, по одному URL на строку
шаг 1: откройте терминал и перейдите на рабочий стол
cd Desktop
шаг 1: , чтобы загрузить файлы в вашем списке, введите (замените list соответственно, если вы назвали свой файл чем-то другим)
youtube-dl -a list
] шаг 1:
Запустить эту команду
youtube-dl -citk –format mp4 –yes-playlist VIDEO_PLAYLIST_LINK
-c возобновить частично загруженные файлы -i игнорировать любые ошибки. -t используйте название видео в качестве имени файла. -k сохраняйте видео на диске после завершения последующей обработки. --format mp4 сохранить видеофайлы в формате MP4. --yes-playlist подтверждает, что следующий URL-адрес указывает на список воспроизведения видео. Чтобы загрузить несколько видеороликов, вы можете использовать эту структуру. Это похоже на ответ @ coreyb с добавлением, что вы можете использовать его в другом месте в bash, например, с эхом. Вот два способа:
Брекеты
youtube-dl -f FORMAT {url1,url2,url...}
Брекеты
youtube-dl -f FORMAT url1; !:- url2; !:-url...