Я написал себе скрипт, который будет загружать плейлист.
Но у меня два вопроса, и я не знаю, как их решить.

  • Почему я получаю сообщение об ошибке, если я ввожу ссылку в форме:
    https://www.youtube.com/playlist?list=PL38DFE33C78765533 ,
    Я узнал, что ассигнование идет не так, он делит линию на
    https://www.youtube.com/playlist?list и PL38DFE33C78765533 . Как заставить это работать?
  • Почему аргумент DOWNPATHLIST неправильно передан?

SET DOWNPATHLIST= "%%(playlist_index)s - %%(title)s.%%(ext)s"
SET CACHDIR= ".cache"
SET /P id= Please, Enter ID or Link:
CALL :YOUTUBEDOWN %id%, "-f bestvideo[ext!=webm]??+bestaudio[ext!=webm]??/best[ext!=webm]", "-o %%DOWNPATHLIST%%"

:YOUTUBEDOWN
youtube-dl --cache-dir %CACHDIR% %~1 %~2 %~3 %~4 %~5
PAUSE

1 ответ1

0

Проблемы частично возникают из

  • непоследовательное использование двойных кавычек и
  • необходимость избегать знаков % чтобы они не интерпретировались как обозначающие переменную путем удвоения их %% . Но каждый раз, когда cmd.exe анализирует набор / вызов строки, он сокращает два %% до одного % .
  • Также знак равенства разделяет аргументы командной строки (например,; tab) и удаляется.

Попробуй это:

SET "DOWNPATHLIST=%%(playlist_index)s - %%(title)s.%%(ext)s"
SET "CACHDIR=.cache"
SET /P "id=Please, Enter ID or Link:"
CALL :YOUTUBEDOWN %id%, "-f bestvideo[ext!=webm]??+bestaudio[ext!=webm]??/best[ext!=webm]", "-o %%DOWNPATHLIST%%"
Pause
Goto :Eof
:YOUTUBEDOWN
youtube-dl --cache-dir %CACHDIR% %*
PAUSE

%* Разрешит все аргументы, переданные без изменений. Чтобы проверить, вы можете временно добавить в youtube-dl эхо.

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