-
-
Save a-sync/e8c1f1d01b8ff8ce0181051cb72bda04 to your computer and use it in GitHub Desktop.
@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); | |
}); | |
}); | |
}; |
Mocsok jól sikerült :)
Még csak most kezdtem a programozást de hűha :) 🥇
Hibátlanul müködik! Imádom és nagyon szépen köszönöm ezt a kis BAT-ot ;)
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... ;)
Szia,
nagyon köszi ezt a lehetőséget, tökéletesen működik! :)
macbookra hogy tudom a tadio 1-es mixeket letolteni? még nagyon uj vagyok ezen a téren.
elore is koszonom
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 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!
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
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!
@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:
- 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
- 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
A link amivel próbálkozom: https://radio1.hu/tracklista/world-is-mine-radio-show-guest-mix/
@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
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! ;)
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!
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
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)
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.
@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.
@a-sync Így már működik, köszönöm.
Köszönöm! Szuper!! Kellemes ünnepeket!
hogyan lehet életre kelteni eszt ? tök jó lenne letölteni esti mixeket
@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.
Sziasztok!
Letöltöttem a szkriptet, s miután a linket beillesztem és az entert lenyomom bezárja magát a program. Tudna esetleg valaki segíteni, hogy hol lehet a probléma?
Korábban működött probléma nélkül, de mióta változott a Rádió1 online felülete, azóta nem megy a letöltés...
Előre is köszönöm!
@Gabor-SG új oldalon bejelentkezéshez van kötve a tartalom, innentől ez a script elavult, nem fog a jövőben működni. 🤷♂️
Sziasztok!
Van esetleg valakinek valamilyen ötlete, hogy hogyan lehetne meghackelni a rendszert?
Van egy pár jó mix fent, ami nagyon kellene.....
Isten vagy. Csak azért regisztráltam, hogy megköszönjem neked ezt a letöltőt!