Как сделать так, чтобы пакетный файл повторял команду до тех пор, пока видео, которое я хочу загрузить с помощью youtube-dl, не станет LIVE? - PullRequest
0 голосов
/ 23 января 2019

Я хочу использовать youtube-dl, который основан на командах и должен быть открыт через CMD.Проблема в том, что я хочу загружать прямые трансляции, и они всегда начинаются с одного и того же URL, который я могу вставить в свой пакетный файл.Я хочу, чтобы пакетный файл повторял команду cmd /K "E:\YouTube\youtube-dl.exe -f best [URL]" (которая открывает файл .exe с -f best [URL]) до тех пор, пока видео можно будет загрузить.

В настоящее время у меня есть толькоПакетный файл с этим:

cmd /K "E:\YouTube\youtube-dl.exe -f best [URL]"

Когда прямая трансляция находится в автономном режиме, он говорит «ОШИБКА: видео недоступно» , поэтому я хочу, чтобы пакет повторял эту команду до тех пор, пока трансляция не начнетсяв прямом эфире, и я смогу загрузить его немедленно.

Можно ли, например, сделать что-то вроде этого: если ответ для cmd /K "E:\YouTube\youtube-dl.exe -f best [URL]" равен "ERROR: Video is unavailable", повторить его?

Я не очень разбираюсь в этих вопросах, поэтому понятия не имею, что искать.

1 Ответ

0 голосов
/ 25 января 2019

Итак, если я понимаю ваш вопрос ...

1) Вам нужно взять ffmpeg для загрузки потока.

2) Пожалуйста, поставьте ffmpeg.exe + youtube-dl.exe , а также file.bat в той же папке

Также, пожалуйста, заполните бесплатночтобы увидеть этот ответ о прямой трансляции с помощью ffmpeg + youtube-dl live transcoding download

И, извините, мой ограниченный английский.

@echo off & setlocal enabledelayedexpansion 

:: for work, you need to set manually the variable _link : 

set _link=your link add here 

:: or, use argument command line to parse the link: 

if ".\%~1/." neq ".\/." set "_link=%~1"

:_loop

call :_yd_dl && echo/ Downloading is done^^!!

goto :eof

:_yd_dl

youtube-dl "!_link!" -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" -o "%%^(title^)s.%%^(ext^)s" 
if not !errorlevel! == 0 goto :_loop

exit /b
...