CMD; youtube-dl: сохранить имя выходного файла как переменную
Как сохранить выходное имя файла и расширение в качестве переменной после загрузки фильма с помощью youtube-dl и использовать его позже в пакете CMD? Ниже приведен пример команды для загрузки видео с YouTube в текущий каталог, где URL
это URL видео.
youtube-dl URL
Сохраните выходное имя файла в переменной с именем my_variable
,
Редактировать: чтобы быть совершенно конкретным, я хочу скачать видео с youtube-dl, используя простой командный файл cmd, который в конце предоставит команду CHOICE с возможностью открыть выходной файл с MPC-HC.
Мне нужен метод помещения в переменную вывода
youtube-dl --get-filename -o "%(title)s.%(ext)s" URL
так что я могу использовать его позже для следующей строки
"C:\Program Files\MPC-HC\mpc-hc64.exe" "D:\Downloads\%my_variable%" /play
3 ответа
Следующая команда загружает видео YouTube и называет его тем же заголовком, что и на YouTube, за которым следует расширение загруженного видео.
youtube-dl -o "%(title)s.%(ext)s" URL
Следующая команда загружает только заголовок и расширение видео и отображает результат в следующей строке после команды.
youtube-dl --get-filename -o "%(title)s.%(ext)s" URL
Следующая команда в пакетном файле Windows загружает только заголовок и расширение видео и сохраняет результат в переменной с именем my_variable
,
for /f "delims=" %%a in ('youtube-dl --get-filename -o "%(title)s.%(ext)s" URL') do @set my_variable=%%a
Во всех трех командах вы также можете использовать несколько URL-адресов, разделенных пробелами, вместо одного URL-адреса. Вы также можете использовать --batch-file FILE
возможность заменить URL-адреса списком URL-адресов, хранящихся в пакетном файле (например, FILE
).
Set "YLink=PASTE_LINK_HERE"
"%~dp0youtube-dl.exe" --get-filename %YLink%>%tmp%\LnkNE.txt
"%~dp0youtube-dl.exe" -e --get-title %YLink%>%tmp%\LnkNO.txt
"%~dp0youtube-dl.exe" --get-description %YLink%>%tmp%\LnkD.txt
:: Set /p Below copies First Line Only
Set /p NameOnly=<%tmp%\LnkNO.txt
Set /p NameExt=<%tmp%\LnkNE.txt
Set /p DescOnly=<%tmp%\LnkD.txt
echo NameOnly: %NameOnly%
timeout 2 >nul
echo NameExt: %NameExt%
timeout 2 >nul
echo DescOnly:
for /F "usebackq tokens=*" %%A in ("%Tmp%\LnkD.txt") do (echo %%A)
pause
Сейчас я не могу комментировать «карел», поэтому для Windows с youtube-dl.exe в какой-то папке:
for /f "delims=" %%a in ('%~d0"%~p0"youtube-dl.exe --get-filename -o "%%(title)s.%%(ext)s" https://www.youtube.com/watch^?v^=O1abcdefgh') do set my_variable=%%a
Окна. Загрузите видео и аудио в лучшем качестве на рабочий стол с оригинальным названием и URL-адресом, взятым из буфера обмена.
setlocal enabledelayedexpansion
for %%I in (powershell.exe) do if "%%~$PATH:I" neq "" (
set getclip=powershell "Add-Type -AssemblyName System.Windows.Forms;$tb=New-Object System.Windows.Forms.TextBox;$tb.Multiline=$true;$tb.Paste();$tb.Text"
)
for /f "delims=" %%I in ('%getclip% ^| findstr /n "^"') do (
set "line=%%I" & set "line=!line:*:=!"
)
set "psCommand="[Environment]::GetFolderPath('DesktopDirectory')""
for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "Desktop=%%I"
%~d0"%~p0"youtube-dl.exe -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" -o "!Desktop!\%%(title)s.%%(ext)s" !line!