1

Я пытаюсь передать выходные данные из youtube-dl в xargs как я хотел бы назвать загруженный файл с названием, извлеченным из первой команды. Однако у меня проблемы с этим. Команда, которую я использую, выглядит следующим образом;

youtube-dl --get-title "Youtube URI" | xargs youtube-dl -o {} "YouTube URI"

2 ответа2

3

Чтобы ответить на конкретный вопрос о xargs , вам нужно указать, что вы хотите использовать заполнитель {} :

youtube-dl --get-title "Youtube URI" |\
    xargs -I{} youtube-dl -o {} "Youtube URI"

Смотрите man xargs для получения дополнительной информации, и какие ключи также подразумеваются под -I .

Поскольку это только один аргумент, было бы проще использовать подстановку:

youtube-dl -o "$(youtube-dl --get-title "Youtube URI")" "Youtube URI"

Обратите внимание, что эти конструкции дадут вам файл без соответствующего расширения файла.

Как уже упоминалось, самый простой способ выполнить вашу реальную задачу - использовать встроенную опцию именования заголовков:

youtube-dl -t "Youtube URI"

как описано в man youtube-dl . Это также даст правильное расширение файла для видео файла.

2

Я читал справочные страницы youtube-dl: то, что вы пытаетесь сделать, гораздо проще, вам просто нужен флаг -t, - title.

youtube-dl --title "Youtube URL"

или же

youtube-dl -t "Youtube URL"

http://dev.man-online.org/man1/youtube-dl/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .