Я попытался загрузить плейлист по вашему вопросу, и я получил то же сообщение об ошибке, что и вы. Вместо того, чтобы обновить youtube-dl, который работает нормально, я перешел на страницу вашего плейлиста, скопировал URL-адрес и выполнил следующие команды из терминала:
Результатом этих команд был список всех ссылок на этой веб-странице. Я создал пакетный файл со списком URL-адресов всех видео в нем (только видео, а не других ссылок), каждый видео-URL в новой строке. После этого я мог скачать все видео одной командой, следуя этим инструкциям.
Создайте пакетный файл, который представляет собой текстовый файл, содержащий список URL-адресов видео с YouTube, которые вы хотите загрузить. URL-адреса должны быть расположены в списке, содержащем только один URL-адрес и ничего больше в каждой строке, с новой строкой для каждого URL-адреса в списке. Сохраните командный файл с именем, которое легко запомнить, например, batch-file.txt. Если все файлы находятся на одной веб-странице пользователя, канала или списка воспроизведения на YouTube, вы можете создать текстовый файл со списком, содержащим все ссылки на этой странице, выполнив следующую команду:
youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | 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 -f 35 -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'
Я не добавил --simulate
опцию в последнюю команду, поэтому эта команда будет выполнена по-настоящему.