Skip to content

Instantly share code, notes, and snippets.

@a-sync
Last active December 26, 2024 07:28
Show Gist options
  • Save a-sync/14b30f8476dd2323cee0920fb98b0272 to your computer and use it in GitHub Desktop.
Save a-sync/14b30f8476dd2323cee0920fb98b0272 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 yt-dlp segítségével
@if (@a==@b) @end /*
@echo off & setlocal
title m3-downloader.bat @ https://gist.github.com/a-sync
if "%~1"=="/?" goto usage
if %0 == "%~0" (
set /p INPUT="ID/URL: "
) else (
set "INPUT=%~1"
)
if "%INPUT%"=="" goto usage
if /i "%INPUT:~0,5%"=="https" if /i "%INPUT:~6,21%"=="//nemzetiarchivum.hu/" goto valid
if /i "%INPUT:~0,3%"=="M3-" goto valid
if /i "%INPUT:~0,6%"=="RADIO-" goto valid
goto invalid
:valid
where /q yt-dlp
if ERRORLEVEL 1 (
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe', '%~dp0\yt-dlp.exe')"
)
where /q ffmpeg
if ERRORLEVEL 1 goto dlffmpeg
where /q ffprobe
if ERRORLEVEL 1 goto dlffmpeg
goto main
:dlffmpeg
where /q 7za
if ERRORLEVEL 1 (
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://a-sync.github.io/7z-extra/7za.exe', '%~dp0\7za.exe')"
)
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.7z', '%~dp0\ffmpeg-release-essentials.7z')"
7za e -y -r ffmpeg-release-essentials.7z ffmpeg.exe ffprobe.exe
del ffmpeg-release-essentials.7z 7za.exe 2>nul
:main
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://nemzetiarchivum.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" )
)
)
rem yt-dlp --user-agent "" -o "%%K.mp4" "%%I"
yt-dlp -f - --user-agent "" -o "%%K.mp4" "%%I"
)
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://nemzetiarchivum.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\x6E\x65\x6D\x7A\x65\x74\x69\x61\x72\x63\x68\x69\x76\x75\x6D\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\x6E\x65\x6D\x7A\x65\x74\x69\x61\x72\x63\x68\x69\x76\x75\x6D\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);
@a-sync
Copy link
Author

a-sync commented Oct 12, 2024

@Medwyn80 letöltöd zip csomagfájlt és kicsomagolod belőle az m3-downloader.bat fájlt. Az m3-downloader.bat fájlt elindítod, és megadod a videó azonosítót (pl.: M3-A8808080126). Enter. Többit megoldja a script. Letöltés után az m3-downloader.bat fájl mellett lesz a videó és a felirat fájl ha van hozzá. Sok sikert.

@Medwyn80
Copy link

@mente081
Ezen ne múljon, bár annak az oldalnak a címe máshol is fellelhető (ráadásul itt is fel lett tüntetve már az első hozzászólásom előtt). Arról nem beszélve, hogy ennyi erővel ezt az egész oldalt törölni kellene.

@mente081
Copy link

@Medwyn80
Nézd, az óvatosság nem árt, a másutt föltüntetett is csak az ahhoz járul hozzá, hogy ellehetetlenítsék. Mert pl. még pár hónapja többet tudott az a bizonyos oldal, aztán az mtva-nál valamit mókoltak és azt már nem tudja. Gondolhatod, hogy folyamatosan azon fáradoznak, hogy NE lehessen letölteni ezeket a régi műsorokat. Más ezzel a témával foglalkozó fórum(ok)on a tagok az ilyen "kényes" bejegyzéseket rögtön törlik és kérik a hozzászólót, hogy privát üzenetet küldjön.

@Medwyn80
Copy link

Igen, tudom, hogy többet tudott. Konkrétan nézni is lehetett a műsorokat. Egyébként a jogi részét illetően szerintem árnyaltabb a kép.

@Medwyn80
Copy link

De milyen "kényes bejegyzésre" gondolsz? Itt konkrétan az összes bejegyzés ezzel a témával kapcsolatos, és évek óta fent vannak.

@mente081
Copy link

mente081 commented Nov 12, 2024

@a-sync
Kedves Mester!
Ránéznél ezekre: M3-59910998659999359, M3-8773899A8A0999595 ?

Többek közt ezek a linkek is okt. 29-én kerültek föl. Az ennél régebbiek működnek (mármint letölthetőek), az újabbak nem.
Szerintem megint variáltak valamit. Lehet, hogy DRM-mel védett lett?

Megtennéd, hogy megnézed, mi lehet a probléma?

Előre is köszönöm!

@a-sync
Copy link
Author

a-sync commented Nov 13, 2024

Ahogy mondod, valamit változtattak és már nem tölthető le a drm nélküli playlist. Szerintem ezzel ez az alkalmazás befejezte a szolgálatot. Továbbiakhoz itt találhattok segítséget: https://prohardver.hu/tema/video_stream_letoltese_mivel/friss.html

sok sikert!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment