Я использую Ubuntu 16.04 LTS. Я хочу загрузить некоторые видео YouTube. Я узнал об инструменте командной строки youtube-dl
от этого вопроса. Как упомянуто Yasser, с помощью команды,
youtube-dl youtube.com/videolink --format mp4
Я могу загрузить те видеофайлы в mp4 формате.
Теперь я хочу загрузить десять видео с различных каналов. У меня есть текстовый файл со ссылками YouTube и именами, которыми я хочу сохранить их. Текстовый файл с именем data.txt
похож,
http://youtube.com/link1 name1
http://youtube.com/link2 name2
http://youtube.com/link3 name3
......... ......
......... ......
http://youtube.com/link10 name10
Теперь я хочу работать youtube-dl
управляйте только однажды так, чтобы это взяло аргументы от того текстового файла автоматически, и сохраните их с необходимыми именами.
Если у меня есть только ссылки в data.txt
, т.е.
http://youtube.com/link1
http://youtube.com/link2
http://youtube.com/link3
.........
.........
http://youtube.com/link10
Я могу загрузить видео с помощью команды только однажды с опцией -a
,
youtube-dl --format mp4 -a data.txt
Но я не мог переименовать их одновременно. От man
страница youtube-dl
Я нашел, что существует опция --output
установить имя файла.
Как я мог сделать это?
Если Вы только переименовываете файлы, потому что Вам не нравится стиль, которым youtube-dl
называет их, то можно использовать --output
(или -o
) с шаблоном для настройки способа, которым он называет все файлы от метаданных YouTube.
, Например, -o %(title)s.%(ext)s
заставит это не учитывать идентификаторы YouTube от всех имен файлов.
существует много опций, которые могут зависеть от Вашей версии youtube-dl
, таким образом, полное изложение на этом может быть найдено на терминале путем ввода:
man youtube-dl
/OUTPUT
<час> Однако, если Вы действительно хотите назвать каждый файл индивидуально, Вы могли бы вместо этого работать youtube-dl
однажды за каждой строкой в текстовом файле как это:
(while read URL NAME; do [ "$URL" ] && youtube-dl --format mp4 -o "$NAME" "$URL"; done) < data.txt
Для каждой строки, разделение это на первом показе одной или нескольких вкладок и пробелов в URL и ИМЯ, затем если строка не является пробелом, передает их youtube-dl
. Если строка просто будет иметь URL, то файл не будет переименован.
Ваше решение состоит в том, чтобы использовать config
файл. На Linux и OS X, конфигурационный файл в масштабе всей системы расположен в /etc/youtube-dl.conf
и пользователь широкий конфигурационный файл в ~/.config/youtube-dl/config
. Обратите внимание, что конфигурационным файлом по умолчанию может не существовать так, Вы, возможно, должны создать его сами. У меня не было никого в моем ~/.config
, таким образом, я должен был создать свой конфигурационный файл. Там можно передать любой аргумент, который Вы обычно использовали бы со встроенной командой в youtube-dl. Хороший вариант использования является аутентификацией с .netrc
файл и общее использование являются выходным форматом. Здесь является демонстрационным config
файл:
#Authentication with .netrc file
--netrc
# Save all videos in a directory named vimeo in your home directory
-o "~/Vimeo/%(title)s %(upload_date)s i%(id)s.%(ext)s"
# Download best format available via direct link over HTTP/HTTPS protocol
-f '(bestvideo+bestaudio/best)[protocol^=http]'
# Simple file name
--restrict-filenames
Можно использовать --ignore-config
если Вы хотите отключить конфигурационный файл для конкретного выполненного youtube-dl. В сущности, точно так же, как Вы используете -a
переключитесь на пакетную загрузку, можно использовать config
файл для пакетной обработки переименовывает загрузки и тонны других настроек, если Вы желаете. Все документируется с хорошими примерами в документации чиновника youtube-dl, особенно прочитайте КОНФИГУРАЦИЮ и ПРОИЗВЕДИТЕ ШАБЛОННЫЕ разделы.