Skip to content

Instantly share code, notes, and snippets.

@a-sync
Last active May 31, 2023 20:25
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a-sync/e8c1f1d01b8ff8ce0181051cb72bda04 to your computer and use it in GitHub Desktop.
Save a-sync/e8c1f1d01b8ff8ce0181051cb72bda04 to your computer and use it in GitHub Desktop.
radio1.hu tracklista URL alapján letölti az mp3 fájlokat
@echo off
title radio1-downloader @ https://gist.github.com/a-sync
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "[System.Net.ServicePointManager]::SecurityProtocol=[System.Net.SecurityProtocolType]::Tls12;[System.Net.WebRequest]::DefaultWebProxy.Credentials=[System.Net.CredentialCache]::DefaultCredentials;$Url=Read-Host -Prompt 'radio1.hu URL';$wc=New-Object System.Net.WebClient;$wc.Encoding=[System.Text.Encoding]::UTF8;$Links=$wc.DownloadString($Url.Trim())|Select-String -Pattern '<audio data-artist=\""(.*?)\"" data-title=\""(.*?)\"".*?>\n.*?<source src=\""(.*?)\"" type=\""audio/mp3\"">' -AllMatches;Foreach($i in $Links.Matches){$Name=\""$($i.Groups[1].Value) $($i.Groups[2].Value)\"".Split([IO.Path]::GetInvalidFileNameChars()) -join '_';Write-Host $Name;$wc.Headers.Add('Referer','https://www.radio1.hu');$wc.DownloadFile(\""https://www.radio1.hu$($i.Groups[3].Value)\"",\""$Name.mp3\"")}"
#!/usr/bin/env node
process.title = 'radio1-downloader @ https://gist.github.com/a-sync';
if (process.argv.length >= 3 && process.argv[2]) {
console.log('radio1.hu URL:', process.argv[2]);
main(process.argv[2]);
} else {
const rli = require('readline').createInterface({input:process.stdin, output:process.stdout});
rli.question('radio1.hu URL: ', url => {
return main(url).then(() => {
rli.terminal = false;
setTimeout(() => rli.close());
});
});
}
function main(url) {
return dl(url).then(data => {
const matches = data.matchAll('<audio data-artist=\"(.*?)\" data-title=\"(.*?)\".*?>\n.*?<source src=\"(.*?)\" type=\"audio/mp3\">');
const promises = [];
for (const m of matches) {
console.log('߷', m[1], m[2]);
promises.push(dl('https://www.radio1.hu' + m[3], String(m[1] + ' ' + m[2] + '.mp3').replace(/[/\\?%*:|"<>]/g, '_')));
}
return Promise.allSettled(promises);
})
.catch(console.error);
}
function dl(url, filepath) {
return new Promise((resolve, reject) => {
require('https').get(url, {headers: {'Referer': 'https://www.radio1.hu'}}, resp => {
if (filepath) {
const file = require('fs').createWriteStream(filepath);
resp.pipe(file);
file.on('finish', () => {
console.log('✓', filepath);
file.close();
resolve();
});
} else {
let data = '';
resp.on('data', chunk => {
data += chunk;
});
resp.on('end', () => {
resolve(data);
});
}
}).on('error', err => {
reject(err);
});
});
};
@bbar145qv1
Copy link

Radio1-downloader

Tűzfalat kikapcsolva sem megy, vírusirtó nincs, megpróbáltam még egyszer letölteni, de úgy sem megy.
Köszönöm, hogy segítesz!

@a-sync
Copy link
Author

a-sync commented Sep 27, 2021

@bbar145qv1 Valószínűleg a nem megfelelő TLS verzió a gond a kapcsolat létrehozásakor.
Frissítettem a szkriptet, töltsd le a legújabb verziót és próbáld meg vele!

Ha még mindig nem működik, javulást hozhat:

  1. az alábbi sor futtatása rendszergazdaként indított parancssorból:
    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64 (engedélyezi a TLS 1.2 használatát ha valamiért tiltva lenne (windows 7 pl.))
    forrás: https://docs.microsoft.com/en-us/security/engineering/solving-tls1-problem
  2. legújabb Powershell verzió telepítése
  3. a .NET futtatókörnyezet frissítése / újabb verzió telepítése
  4. egyéb lehetőségek/megoldások: https://docs.microsoft.com/hu-hu/mem/configmgr/core/plan-design/security/enable-tls-1-2-client

@bbar145qv1
Copy link

Nagyon köszönöm, hogy rám szántad az időd, valami nálam lesz, mert ezzel a szkripttel hibával is indul el.
Délután megnézem a többi dolgot is.
Köszi még egyszer a segítséget!

@Lambotze
Copy link

Isten vagy. Csak azért regisztráltam, hogy megköszönjem neked ezt a letöltőt!

@Kari-ka
Copy link

Kari-ka commented Dec 10, 2021

Mocsok jól sikerült :)
Még csak most kezdtem a programozást de hűha :) 🥇

@mva-one
Copy link

mva-one commented Jan 10, 2022

Hibátlanul müködik! Imádom és nagyon szépen köszönöm ezt a kis BAT-ot ;)

@SirAdiX
Copy link

SirAdiX commented Jan 18, 2022

Eltartott egy darabig, mire rájöttem, de utána már minden tökéletesen működött! Ezer hála érte!
A full laikusoknak mondanám, mint én is, akik a gyakorikérdések irányából érkeznek...szerintem még a programot sem szükséges letölteni, sőt még regisztrálni sem (igaz akkor nem tudtok majd ide kommentelni)!
Szóval jobb felső sarokban Download Zip klikk...tetszőleges mappába letöltöd (azért úgy hogy megtaláld)...letöltöd...a mappájában kicsomagolod...kapsz egy "bat fájl"-t...azt elindítod...megnyitja neked a parancssort (fekete ijesztő ablak :D )...ott kérni fogja tőled az URL címet, ami nem más mint a letölteni kívánt mix linkje...azt bemásolod oda a fekete ablakba a kettőspont után...enter...futtatja magát...és másodperceken (normál net sebesség esetén) belül ott lesz a "bat fájl" mappájában a letöltött mix...már csak le kell játszani... ;)
cats

@sze7mislas
Copy link

Szia,
nagyon köszi ezt a lehetőséget, tökéletesen működik! :)

@norbika87
Copy link

macbookra hogy tudom a tadio 1-es mixeket letolteni? még nagyon uj vagyok ezen a téren.
elore is koszonom

@a-sync
Copy link
Author

a-sync commented Mar 6, 2022

macbookra hogy tudom a tadio 1-es mixeket letolteni? még nagyon uj vagyok ezen a téren. elore is koszonom

@norbika87 használd a radio1-downloader.js scriptet.
nodejs kell hozzá, amit pl brew install node -al tudsz telepíteni
sok sikert

@norbika87
Copy link

norbika87 commented Mar 6, 2022 via email

@a-sync
Copy link
Author

a-sync commented Mar 6, 2022

...

@norbika87 ha már telepítetted a homebrew-t akkor a terminálba csak pötyögd be: brew install node (https://www.newline.co/@Adele/how-to-install-nodejs-and-npm-on-macos--22782681#2-using-homebrew-to-install-and-update-nodejs)
miután feltelepítetted a nodejs futtatókörnyezetet a fentebb található radio1-downloader.js fájlt kell futtatnod pl.: node radio1-downloader.js parancsal

jobban nem mennék itt bele, van több tucat videó arról, hogyan futtathatsz nodejs fájlokat macos-en
sok sikert!

@norbika87
Copy link

norbika87 commented Mar 9, 2022 via email

@mva-one
Copy link

mva-one commented Mar 14, 2022

Ez alapján írtam egy módosított Python verziót is. Egy héten egyszer futtatom, hogy letöltse az összes WordIsMine RadioShow müsort mp3-ba.
Itt található: https://gist.github.com/mva-one/b6426b7469faa7c572c3d1be93082c6c

@a-sync
Copy link
Author

a-sync commented Mar 15, 2022 via email

@bandesz67
Copy link

Szia,
Sikeresen letöltöttem a szkriptet, sikerült is elindítanom, viszont miután a linket beillesztem és az entert lenyomom bezárja magát a program és nem találom a mixet sehol. Tudnál esetleg segíteni, hogy hol lehet a probléma?

ui.: Volt mikor enter után a vírusirtótól kaptam egy üzenetet, hogy valamit megváltoztatott a dolog, de nem láttam változást. Még valami, próbáltam kikapcsolni a tűzfalat és a vírusírtót is és akkor is csak bezárja magát.

Előre is köszönöm a válaszod!

@a-sync
Copy link
Author

a-sync commented Mar 20, 2022

@bandesz67 ha a hibaüzenetet megosztod itt akkor talán tudok segíteni
de először is mi a link amivel próbálkozol?

a hibaüzenet elkapására kétféle megoldás:

  1. először nyiss egy parancssort abban a könyvtárban ahova a bat fájlt letöltötted, majd a fájl nevét bepötyögve indítsd el. így futtatás után megmarad az ablak és láthatóvá válnak az esetleges hibaüzenetek
  2. a bat fájl végébe egy új sorba beírod h pause és elmented, majd futtatod. így szintén megmarad az ablak a hibaüzenettel a végén a következő gombnyomásig

ha megvan, shift+win+s -el kivágod az ablakból a lényeget és ide beszúrod

@bandesz67
Copy link

bandesz67 commented Mar 20, 2022

@a-sync
Copy link
Author

a-sync commented Mar 20, 2022

@bandesz67 gyanús, hogy ugyanaz a gond nálad mint másnál volt picit feljebb: frissíteni kell a .net keretrendszert.
lehetséges megoldásokat lásd itt: https://gist.github.com/a-sync/e8c1f1d01b8ff8ce0181051cb72bda04?permalink_comment_id=3906951#gistcomment-3906951

ha nem sikerülne, akkor javaslom hogy telepítsd fel a nodejs futtató környezetet, és utána parancssorból a .js fájlt futtasd. pl.: node radio1-downloader.js

@bandesz67
Copy link

bandesz67 commented Mar 20, 2022

Köszönöm szépen, hogy ilyen későn is segítesz! Utána nézek a dolognak.

Edit: Sikerült, nagyon szépen köszönöm! ;)

@roxor933
Copy link

roxor933 commented May 6, 2022

Nagyon király a cucc, köszönöm szépen.
Arra esetleg van valahogy lehetőség, hogy 128kb/s-nél jobb minőségben töltse le a mixeket?
A választ előre is köszönöm!

@a-sync
Copy link
Author

a-sync commented May 6, 2022 via email

@mucden
Copy link

mucden commented May 20, 2022

Sziasztok!
Nekem ezt a hibát dobja, mi lehet a gond?

radio1.hu URL: https://radio1.hu/tracklista/discos-hit-tracklista
Exception calling "DownloadString" with "1" argument(s): "The remote server returned an error: (407) Proxy Authenticati
on Required."
At line:1 char:210
+ ... ding]::UTF8;$Links=$wc.DownloadString($Url.Trim())|Select-String -Pat ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

@a-sync
Copy link
Author

a-sync commented May 20, 2022

szia,
úgy tűnik valamilyen hálózati proxi mögül próbálkozol amit a powershell script nem támogat.

javaslom próbáld meg helyette a nodejs verziót használni (radio1-downloader.js)

@mucden
Copy link

mucden commented May 23, 2022

Sajnos céges a gép, nincs jogom nodejs-t telepíteni. Sőt semmit sem, ami nincs benne a céges repo-ban vagy nem munka releváns.

@a-sync
Copy link
Author

a-sync commented May 24, 2022

@mucden frissítettem a .bat fájlt, töltsd le újra és próbáld meg megint.
Elméletleg mostantól a rendszer proxy beállításait használja a hálózati kérésekhez ha van ilyen.

@mucden
Copy link

mucden commented May 24, 2022

@a-sync Így már működik, köszönöm.

@fofika78
Copy link

Köszönöm! Szuper!! Kellemes ünnepeket!

@mateoo1989
Copy link

hogyan lehet életre kelteni eszt ? tök jó lenne letölteni esti mixeket

@a-sync
Copy link
Author

a-sync commented May 31, 2023

@mateoo1989
letöltöd a bat fájlt, dupla kattintással elindítod, majd bemásolod a mix weboldal URL-t és enter-t nyomsz.

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