Como faço para editar / criar um novo script em lotes para configurar um download em massa de uma série de links (com script)


2

Algumas semanas atrás, postei essa questão e tenho uma resposta maravilhosa.

Eu tentei aplicar as mesmas técnicas usadas no seguinte conjunto de códigos para outro site, mas falhei. A janela de prompt de comando abriria e fecharia imediatamente. Então estou de volta novamente.

Código:

@echo off
call set /p link=paste the link:
call set last=%%link:~-1,1%% 
rem call set folder="%~dp0\videos\\"
set folder=M:\\LiveStreamer\LiveStreamer\L
If Not Exist %folder% MD %folder%
call set livestreamer="%~dp0\tools\livestreamer\\"
call "%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%"
IF  %last% NEQ c GOTO:nocollection
call set /p id=enter the Id of the video (example write 1000021386):
call "%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%" "%%id%%"
call set /p quality=write quality (example write 720p):
call "%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%" "%%id%%" "%%quality%%" "%%folder%%" "%%livestreamer%%"
GOTO end1
:nocollection
rem call set /p quality=write quality (example write 720p):
Set quality=1080p
rem call set /p choice=play or download? (write p or d):
set choice=d
call "%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%" "%%quality%%" "%%folder%%" "%%livestreamer%%" "%%choice%%"
:end1
pause
:end

Gostaria de receber ajuda.

==== EDIT 5/7/16 com o código atualizado abaixo:

@echo off
setlocal enabledelayedexpansion
set "folder=C:\\Hotstar\H"
if not exist %folder% md %folder%
set livestreamer="%~dp0\tools\livestreamer\\"
"%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%"
set /p id=enter the Id of the video (example write 1000021386):
"%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%" "%%id%%"
"%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%link%%" "%%id%%" "%%quality%%" "%%folder%%" "%%livestreamer%%"
Set quality=1080p
set choice=d
set last=%%link:~-1,1%% 
for /f "usebackq tokens=*" %%i in (`type links.txt`) do (
  echo "%~dp0\tools\php5.4\php.exe" hotstarlivestreamer.php "%%i" "%id%" "%link%" "%quality%" "%folder%" "%livestreamer%" "%choice%"
  )
endlocal

No entanto, ao fazer isso, recebo erros:

Notice: Trying to get property of non-object in C:\hotstarsportslivestreamer-master\hotstarlivestreamer.php on line 135

Notice: Trying to get property of non-object in C:\hotstarsportslivestreamer-master\hotstarlivestreamer.php on line 139

Notice: Trying to get property of non-object in C:\hotstarsportslivestreamer-master\hotstarlivestreamer.php on line 141

Notice: Trying to get property of non-object in C:\hotstarsportslivestreamer-master\hotstarlivestreamer.php on line 143
Available streams:
enter the Id of the video (example write 1000021386):

Os erros do php em questão referem-se a estas linhas na respectiva ordem:

$contentInfo=$resultObj->{'contentInfo'};

$contentTitle = $contentInfo2->contentTitle; $contentTitle=str_replace(" ","-",$contentTitle);

$episodeTitle = $contentInfo2->episodeTitle; $episodeTitle=str_replace(" ","-",$episodeTitle);

$episodeNumber= $contentInfo2->episodeNumber; $episodeNumber="episode$episodeNumber";

Não sei como automatizar a parte de entrada "ID". Este é um URL típico:

http://www.hotstar.com/tv/bahu-humari-rajni-kant/7326/kuhus-birthday-party/1000093419

O ID é a última parte do URL - 1000093419; mesmo se eu digitar os números manualmente, recebo os erros abaixo:

Deslocamento indefinido em ambas as linhas 191 e 200 do arquivo php que se refere a (eu editei o arquivo para apontar as linhas):

if(isset($argv[2])){
    **<line 191>** if(isset($argv[2]) AND ($argv[5]=='d')){


    echo "Starting livestreamer...\n\n";
    echo shell_exec("$argv[4]livestreamer  \"$m3u8\" \"$argv[2]\" -o \"$argv[3]$filename.ts\" &");
    echo "Done.\n";
    }
    else{ 
    echo "Starting livestreamer...\n\n";
    **<line 192>** echo shell_exec("$argv[4]livestreamer  \"$m3u8\" \"$argv[2]\"  &");
    echo "Done.\n";
    }
    }
    else{ echo "Available streams: $bitrate\n";

Por que você tem ligar em toda parte? Remova todos eles. Dica: a ligação não faz o que você acha que faz.
DavidPostill

Se você olhar de novo para a minha "resposta maravilhosa" Como faço para editar / criar um novo script em lote para configurar um download em massa de uma série de links? você vai ver que não há call s na resposta;)
DavidPostill

@DavidPostill Editou todas as chamadas, brincou com o script e testou as coisas. Eu atualizei o OP com o código editado e os respectivos erros que estou recebendo. Eu acho que estou tendo problemas por causa do "IF% last% NEQ c GOTO: nocollection" no primeiro código não editado. Não sei como lidar com isso.
Serenity_Life

Você precisa perguntar sobre Estouro de pilha para os problemas de programação do php.
DavidPostill
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.