Как выглядит пакетный файл YT-DLP для MS-DOS, который принимает URL-адреса, скопированные в буфер обмена?

Пожалуйста, просмотрите командный файл ниже.

Цель

... значит запустить yt-dlp в пакетном файле, который затем выдаст меню с шестью опциями:

  • yt-dlp "%temp_file%"
  • yt-dlp -f лучший "%temp_file%"
  • yt-dlp --write-sub "%temp_file%"
  • yt-dlp --sub-lang в "%temp_file%"
  • yt-dlp -cit "%temp_file%"
  • yt-dlp -x --audio-format mp3 "%temp_file%"

Метод, который я придумал, заключался в использовании переменной, которую я назвалtemp_file, который будет заполнен содержимым буфера обмена, это URL-адрес видео YouTube, которое будет передано (по конвейеру?) программе yt-dlp в командной строке. Но это, к сожалению, не работает. Проблема может быть на шаге Б. Скопируйте содержимое буфера обмена во временный файл . Этого не происходит вообще.

Что я пытался сделать, шаг Б:

  • с помощью Powershell Command-let Get-clipboard
  • приложение CLIP.EXE
  • создание временного файла

Но они не работают, или я сделал что-то не так. Сообщение об ошибке: "The syntax of the command is incorrect."

Вопрос:

Можете ли вы сказать мне, где приведенный ниже командный файл идет не так и выдает это сообщение об ошибке? И как это исправить, чтобы он принимал содержимое буфера обмена и передавал его... в Yt-Dlp ?

      set "temp_file=%TEMP%\%RANDOM%"

EDIT
:: B. Copy the contents of the clipboard to the temporary file
powershell -command "Add-Type -AssemblyName PresentationCore; [Windows.Clipboard]::GetText() | Out-File -FilePath 'temp_file.txt'"

:: clip < NUL > "%temp_file%"
:: I left this in by accident, sorry about that. This only puts things 
:: **on** the clipboard, while I thought this would get things *out* of
:: the clipboard. Which doesn't seem so unreasonable?

:: Display the menu
echo Please select an option:
echo 1. Download with yt-dlp
echo 2. Download with yt-dlp (best quality)
echo 3. Download with yt-dlp (with subtitles)
echo 4. Download with yt-dlp (with English subtitles)
echo 5. Download with yt-dlp (with captions)
echo 6. Download with yt-dlp (audio only)

:: Get user input
set /p choice=Enter your choice:

:: Process the user's choice
if "%choice%"=="1" (
    yt-dlp "%temp_file%"
) else if "%choice%"=="2" (
    yt-dlp -f best "%temp_file%"
) else if "%choice%"=="3" (
    yt-dlp --write-sub "%temp_file%"
) else if "%choice%"=="4" (
    yt-dlp --sub-lang en "%temp_file%"
) else if "%choice%"=="5" (
    yt-dlp -cit "%temp_file%"
) else if "%choice%"=="6" (
    yt-dlp -x --audio-format mp3 "%temp_file%"
) else (
    echo Invalid choice. Please try again.
)

:: Pause the script so that you can see the output
pause

:: Delete the temporary file
del "%temp_file%"

:: Exit the script
exit /B```

1 ответ

Думаю, я нашел это. Пакетный файл MS-DOS, который загружает видео с YouTube, когда вы скопировали URL-адрес в буфер обмена, выглядит следующим образом:

      @echo off
setlocal EnableDelayedExpansion
echo  setlocal EnableDelayedExpansion
pause

:: B. Copy the contents of the clipboard to the temporary file
FOR /F "usebackq delims=" %%i IN (`powershell -command "Get-Clipboard"`) DO SET temp_file=%%i
 

echo %temp_file% 
pause

:: C. Display the menu
echo Please select an option:
echo 1. Download with yt-dlp
echo 2. Download with yt-dlp (best quality)
echo 3. Download with yt-dlp (with subtitles)
echo 4. Download with yt-dlp (with English subtitles)
echo 5. Download with yt-dlp (with captions)
echo 6. Download with yt-dlp (audio only)

:: D. Get user input
set /p choice=Enter your choice:

:: E. Process the user's choice
if "%choice%"=="1" (
    yt-dlp "%temp_file%"
) else if "%choice%"=="2" (
    yt-dlp -f best "%temp_file%"
) else if "%choice%"=="3" (
    yt-dlp --write-sub "%temp_file%"
) else if "%choice%"=="4" (
    yt-dlp --sub-lang en "%temp_file%"
) else if "%choice%"=="5" (
    yt-dlp -cit "%temp_file%"
) else if "%choice%"=="6" (
    yt-dlp -x --audio-format mp3 "%temp_file%"
) else (
    echo Invalid choice. Please try again.
)

:: F. Pause the script so that you can see the output
pause

:: G. Delete the temporary file
:: del "%temp_file%"

:: H.Exit the script
exit /B

Я надеюсь, что каждый, кто это прочитает, протестирует это на своих системах и ОС. Очевидными преимуществами является то, что это безвирусный метод загрузки большого количества видео с Youtube без необходимости много вводить или вставлять что-либо.

Это дает вам шесть вариантов на выбор при загрузке Youtube с помощью YT-DLP.

Каждый может расширить меню по своему вкусу.

Я закрепил пакетный файл на панели задач, чтобы он всегда был доступен.

Этот пакетный файл следует еще немного настроить, начиная с шага G, должен ли он оставаться заблокированным или нет? Я не уверен, что это необходимо, потому что командный файл работает.

Я просто не хотел загружать какой-то графический интерфейс, о котором я не знал бы, есть ли в нем вирусы или нет.

Другие вопросы по тегам