-
-
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); | |
}); | |
}); | |
}; |
norbika87
commented
Mar 6, 2022
via email
...
@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.....