1

Я хочу передать URL для mplayer.
но не вижу, как инкапсулировать 1-й вывод с двойными кавычками (в противном случае mplayer выдает ошибки)

это не верно

youtube-dl.exe -g http://www.youtube.com/watch?v=sNPVt3cMkT0 | mplayer

Соответствующий?
https://stackoverflow.com/questions/14952295/set-output-of-a-command-as-a-variable-with-pipes

Другой вариант - запись / чтение из временного файла.

2 ответа2

1

Вы не хотите передавать результат в mplayer, вместо этого вы хотите предоставить результат в качестве аргумента, например так:

for /f "delims=" %A in ('youtube-dl.exe -g "http://www.youtube.com/watch?v=sNPVt3cMkT0"') do @mplayer "%%A"

Если используется внутри пакетного файла, то все проценты удваиваются, поэтому %A становится %%A

0

Я погуглил страницу руководства mplayer ; из того, что я могу сказать, он принимает URI в качестве аргументов. Как я уже упоминал в комментариях, вам нужно процитировать URI YouTube. Вам также нужно будет заключить в кавычки подстановку команд, чтобы оболочка тоже не пыталась развернуть это в имена файлов. Вы хотите что-то вроде этого:

mplayer "$(youtube-dl --get-url 'https://www.youtube.com/watch?v=sNPVt3cMkT0')"

(--get-url эквивалентен -g ; для ясности я изменил его для тех, кто не знаком с youtube-dl .)

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