Skip to content

Instantly share code, notes, and snippets.

@kasajian
Forked from a-sync/m3-downloader.bat
Created October 23, 2020 07:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kasajian/a7f0335b74d3b8b9d61852503aa7ca48 to your computer and use it in GitHub Desktop.
Save kasajian/a7f0335b74d3b8b9d61852503aa7ca48 to your computer and use it in GitHub Desktop.
m3 archívum URL vagy M3- ill. RADIO- azonosító alapján letölti a műsort youtube-dl segítségével
@if (@a==@b) @end /*
@echo off
setlocal
if "%~1"=="/?" goto usage
if %0 == "%~0" (
title m3-downloader.bat
set /p INPUT="ID/URL: "
) else (
set "INPUT=%~1"
)
if "%INPUT%"=="" goto usage
if /i "%INPUT:~0,5%"=="https" if /i "%INPUT:~6,19%"=="//archivum.mtva.hu/" goto valid
if /i "%INPUT:~0,3%"=="M3-" goto valid
if /i "%INPUT:~0,6%"=="RADIO-" goto valid
goto invalid
:valid
where /q youtube-dl
if ERRORLEVEL 1 (
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://yt-dl.org/latest/youtube-dl.exe', '%~dp0\youtube-dl.exe')"
)
rem echo "%INPUT%";
for /f "tokens=1,2,3 delims=|" %%I in ('cscript /nologo /e:jscript "%~f0" "%INPUT%"') do (
rem echo "%%I"
rem echo "%%J"
rem echo "%%K"
if not exist "%%K.srt" (
powershell -Command "$wc=New-Object Net.WebClient;$wc.Encoding=[System.Text.Encoding]::UTF8;$wc.DownloadString('https://archivum.mtva.hu/subtitle/%%J.srt') | Out-File -Encoding utf8 '%cd%\%%J.srt'"
for %%F in ("%cd%\%%J.srt") do (
if %%~zF lss 6 ( del %%F ) else ( ren %%F "%%K.srt" )
)
)
youtube-dl "%%I" -o "%%K.mp4"
)
goto :EOF
:invalid
echo Ervenytelen ID/URL
echo
:usage
echo Hasznalat: %~nx0 ID/URL
echo pl.: %~nx0 M3-59950991739999859
echo %~nx0 RADIO-851168
echo %~nx0 "https://archivum.mtva.hu/*"
if %0 == "%~0" pause
goto :EOF
JScript */
var ID = WSH.Arguments(0);
var UA = String('\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x53\x4D\x41\x52\x54\x2D\x54\x56\x3B\x20\x4C\x69\x6E\x75\x78\x3B\x20\x54\x69\x7A\x65\x6E\x20\x32\x2E\x33\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x6B\x69\x74\x2F\x35\x33\x38\x2E\x31\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x53\x61\x6D\x73\x75\x6E\x67\x42\x72\x6F\x77\x73\x65\x72\x2F\x31\x2E\x30\x20\x54\x56\x20\x53\x61\x66\x61\x72\x69\x2F\x35\x33\x38\x2E\x31');
var x = new ActiveXObject('Microsoft.XMLHTTP');
var TITLE = '';
if (ID.indexOf('http') === 0) {
x.open('GET',String(ID),true);
x.setRequestHeader('User-Agent',UA);
x.send('');
while (x.readyState!=4) {WSH.Sleep(50)};
if (x.responseText.indexOf('var ACTIVE = "') !== -1) {
ID = x.responseText.split('var ACTIVE = "')[1].split('"')[0];
} else {
ID = x.responseText.split("id: '")[1].split("'")[0];
}
if (x.responseText.indexOf('<h1 class="active-title">') !== -1) {
TITLE = x.responseText.split('<h1 class="active-title">')[1].split('</h1>')[0];
}
if (x.responseText.indexOf('<h6 class="active-subtitle hidden">') !== -1) {
TITLE += ' - '+x.responseText.split('<h6 class="active-subtitle hidden">')[1].split('</h6>')[0];
}
}
var htmlfile = WSH.CreateObject('htmlfile'), JSON;
htmlfile.write('<meta http-equiv="x-ua-compatible" content="IE=9" />');
htmlfile.close(JSON = htmlfile.parentWindow.JSON);
if (!TITLE && ID.toLowerCase().indexOf('m3-') === 0){
x.open('GET',String('\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x72\x63\x68\x69\x76\x75\x6D\x2E\x6D\x74\x76\x61\x2E\x68\x75\x2F\x6D\x33\x2F\x69\x74\x65\x6D\x3F\x69\x64\x3D')+ID,true);
x.setRequestHeader('User-Agent',UA);
x.send('');
while (x.readyState!=4) {WSH.Sleep(50)};
var info = JSON.parse(x.responseText);
TITLE = info.title+(info.subtitle?' - '+info.subtitle:'');
}
TITLE = TITLE.replace(/\\|\/|\:|\*|\?|\"|\<|\>|\|/gi, '_');
if (!TITLE) TITLE = ID;
x.open('GET',String('\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x72\x63\x68\x69\x76\x75\x6D\x2E\x6D\x74\x76\x61\x2E\x68\x75\x2F\x6D\x33\x2F\x73\x74\x72\x65\x61\x6D\x3F\x6E\x6F\x5F\x6C\x62\x3D\x31\x26\x74\x61\x72\x67\x65\x74\x3D')+ID,true);
x.setRequestHeader('User-Agent',UA);
x.send('');
while (x.readyState!=4) {WSH.Sleep(50)};
var res = JSON.parse(x.responseText);
WSH.Echo(res.url+'|'+ID+'|'+TITLE);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment