2. juli 2003 (oppdatert 25. august 2005)
Eg har tidligare skriva om korleis ein kan lagra Internett-radio lokalt på harddisken for seinare bruk/lytting/arkivering. I den artikkelen nemnte eg at eg har sett opp eit sinnrikt system for å ta opp favorittprogramma mine automatisk. På oppfordring skal eg her gå i detaljar om systemet.
Systemet er laga for Windows XP og Linux, men vil trulig fungera i andre Windows-versjonar òg. Det er ganske greitt å setta opp, og kjører heilt av seg sjølv deretter. Oppskrift følgjer:
For Windows treng treng me følgjande gratisprogram:
For Linux har me trulig det me treng allereie.
Installer først cygwin. Me treng òg programmet wget, so pass på at det er kryssa av for dette under installeringa. Målet vårt no er å laga eit bittelite skript for nedlasting av lyd frå valfri kanal, i valfri tidslengd, og lagra denne med eit fornuftig filnamnm, med dato og klokkeslett. Alt dette skal veljast med parametrar til skriptet.
Mi løysing vart sånn:
#!/bin/sh
filename=`/usr/bin/date +%Y-%m-%d-%H-%M-`$3.mp3
wget -T 25 -t 0 -O /cygdrive/c/radio/$filename http://radio.hiof.no:8000/nrk-$2-128 &
wgetpid=$!
sleep $1
kill $wgetpid
Bytt ut /cygdrive/c/radio/ ovanfor med noko anna i Linux. Fila kallar me hent-radio.sh, og legg ho i mappa skript i heimemappa, typisk:
No kan me testa om dette fungerer. Kjør cygwin (Windows) eller logg inn og start ein konsoll (Linux). Skriv so følgjande:
cd skript
./hent-radio.sh 20 p2 Test
Dette skal lagra 20 sekund med opptak frå NRK P2, med filnamnet «Test» og i mappa c:\radio\ (eller kor du no har valt å lagra lydfilene i skriptet ovanfor). Me kan ta opp frå andre kanalar ved å bytta ut p2 med:
p1petrempetrealltid-nyheteralltid-klassiskstortingetsami-radioViss dette ikkje fungerer, er det ingen grunn til å gå vidare. Sjå på feilmeldingar og rett opp!
No er det tid for automatisering, slik at maskina kan ta opp program på eiga hand, etter fast timeplan. Til dette brukar me programmet nnCron LITE (Windows) eller cron (Linux). Begge programma brukar nøyaktig same filformat.
Sørg for at nnCron LITE startar automatisk ved oppstart av Windows. Rediger so fila cron.tab i programmappa (Windows), eller kjør crontab -e (Linux), og legg til linjer på denne forma (for Windows):
38 18 * * 1-5 c:\programfiler\cron\a.bat 1500 p1 Barnetimen
Eller på denne forma (for Linux):
38 18 * * 1-5 /home/brukarnamn/skript/hent-radio.sh 1500 p1 Barnetimen
Denne seier at me skal ta opp frå P2 i 25 minutt (1500 sekund), frå klokka 18:38, måndag til fredag. Filnamnet skal vera «Barnetimen» (pluss datoinformasjon). Obs! Filnamnet kan ikkje innehelda mellomrom. Bruk heller bindestrekar (sånn-er-livet). Sjå gjerne mi cron.tab for eksempel.
Fila a.bat nemnt ovanfor treng me berre i Windows, og for å starta cygwin rett. Ho skal sjå sånn ut (legg fila i c:\programfiler\cron\):
cd c:\cygwin\bin
bash --login -i skript\hent-radio.sh %1 %2 %3
Heilt til slutt kan me i Windows bruka mp3DirectCut til å kutta av uønskja lyd i begynnelsen og slutten av opptaket, før arkivering på brennbare CD-ar (som lydfiler, ikkje CD-lyd).
Som sagt, når alt først er sett opp, so fungerer det heile perfekt. Det er veldig lett å legga til nye program for opptak, og elles treng ikkje systemet noko vedlikehald. Det går av seg sjølv!
Opphavlig brukte eg (det utmerka) programmet Streamripper til lagring, samt eit mykje meir komplisert og uelegant system for resten av det praktiske. Men etter at dei gjekk over til tenaren Icecast 2 for utsending av NRK-radio, fungerte ikkje dette lenger. Takk til Lasse G. Dahl for løysinga med bruk av wget.
Av Lasse G. Dahl på 2004-01-20:
Min løsning er kanskje ikke like anvendelig som din, men IMHO langt enklere å sette opp:
Av Karl Ove Hufthammer på 2004-02-15:
Og no brukar eg eit liknande system som deg, Lasse!
Av Lars Brede Johansen på 2004-04-18:
Jeg har jobbet litt for å få dette til å funke hos meg i Windows XP. Erfaringene kan kanskje hjelpe andre på mitt nivå.
Utgangpunktet mitt er en installasjon av Cygwin med de nødvendige programmene.
Første problem var at de nødvendige miljøvariablene av en eller annen grunn ikke lå inne. Derfor måtte jeg legge til:
";C:\cygwin\bin;C:\cygwin\home\Lars_Brede\bin;C:\Program Files\cron" under Settings --> Control Panel --> System Properties --> Env. Variables --> Path
(La her til nnCron LITE for å lette commandolinjeoperasjoner.)a.bat-fila mi endte som:
bash --login -i -c "hent-radio.sh %1 %2 %3" (trenger ikke full path her, og trengte vel aldri "cd C:\cygwin").Eks. på cron.tab - uten overraskelser:
29 13 * * 7 "c:\Program Files\cron\a.bat" 5500 p2 Ord-Film-PopfrontHåper dette kan hjelpe noen.
Takk for VELDIG nyttig script.
Av Marius Andersen på 2005-06-09:
Dette hører kanskje ikke helt hjemme her, men nå og i tiden framover kan du laste ned Beethovens 9 symfonier i MP3-format gratis (og helt lovlig) fra BBC. Så nå er du iallfall informert.
Av Marius Andersen på 2005-06-10:
Vil bare legge til at man kan angi varigheten av et opptak i minutter, timer eller dager i stedet for sekunder ved å bruke henholdsvis suffiksene
m,hogd. Barnetimen-opptaket kan altså også automatiseres slik (testet medsleepversjon 5.3.0):
38 18 * * 1-5 c:\programfiler\cron\a.bat 25m p1 Barnetimen(for Windows)
38 18 * * 1-5 /home/brukarnamn/skript/hent-radio.sh 25m p1 Barnetimen(for Linux)Man kan også bruke desimaltall om man ønsker det (skrevet på engelsk vis, altså med punktum i stedet for komma), f.eks. for å ta opp i halvannen time:
38 18 * * 1-5 c:\programfiler\cron\a.bat 1.5h p1 Test(for Windows)
38 18 * * 1-5 /home/brukarnamn/skript/hent-radio.sh 1.5h p1 Test(for Linux)Dette er nok enklere enn å regne om til sekunder hver gang.
Av Anne Marie Heidenreich på 2005-08-10:
Jeg har prøvd oppskriften over for å få til automatisk opptak fra radio. Dessverre funket ikke testen. Jeg fikk følgende feilmelding:
/cygdrive/c/radio/2005-08-10-20-38-Test.mp3: No such file or directoryog litt etterpå denne meldingen:
./hent-radio.sh : line6 : kill: - No such processKunne du hjelpe meg videre ?
Da jeg installerte Cygwin krysset jeg BARE av for web-pakken. Det var jo så veldig mange pakker (packages), og da jeg prøvde å installere alle først tok det enormt lang tid.
Skriptet skrev jeg i notisblokk.
I skriptet henvises det til web-radioen til Høyskolen i Østfold (http://radio.hiof.no). Men jeg finner ikke denne siden på internett. Er det det som skaper problemer ?
mvh,
Anne Marie
Av Karl Ove Hufthammer på 2005-08-10:
Det tyder på at noko er feil med skriptet. Prøv å lasta det ned direkte frå denne sida, i staden for å redigera det i Notisblokk. Og det er altso
wget-pakken du skal ha, ikkjeweb-pakken.
Av Anne Marie Heidenreich på 2005-08-10:
Takk for rask tilbakemelding!
Jeg lastet ned sh-filen fra internett istedet. Så avinstallerte jeg
web-pakken fra Cygwin og installerte barewgetisteden. Så gjorde jeg testen.Men jeg får de samme feilmeldingene som tidligere (bare at nå er feilen i linje 7, ikke linje 6).
Noen flere tips?
mvh,
Anne Marie
Av Anne Marie Heidenreich på 2005-08-11:
Nå fikk jeg feilmelding ved oppstart av PC-en (på grunn av nylige programvareendringer …). Noe sier meg at jeg er for grønn til å få til dette uten mye styr.
Men, kanskje du vet om noen i Oslo-området som kunne hjulpet meg med å installere dette (firma/konsulent/privat, etc.)?
mvh,
Anne Marie
Av Karl Ove Hufthammer på 2005-08-12:
Det kan vera nødvendig å starta maskina på nytt etter at du har installert Cygwin. Og det er òg veldig viktig at du har oppretta mappa
radiopåc:\før du kjører skriptet.
Av Øyvind Hoven Oftedal på 2005-10-28:
Det går så det suser på den bærbare maskinen som kjører XP, men ikke fullt så greit på den stasjonære (Win 2000). Det er den automatiserte starten av programmet som ikke fungerer. På det aktuelle tidspunktet kommer bare et blink når Cygwin skulle startet. Men testinga går greit, så hva problemet er skjønner jeg ikke helt. Nå spiller det ikke noen rolle egentlig, for jeg bruker jo helst den bærbare maskinen, men det kunne vært interessant å hørt hva som er problemet.
Av Marius Andersen på 2007-10-09:
Jeg har forresten fått systemet til å fungere under Windows med MSYS i stedet for Cygwin. Jeg har installert MSYS i katalogen
C:\msysog Windows-utgaven avwgeti katalogenC:\Programfiler\wget. I tillegg har jeg lagt til baneneC:\msys\binogC:\Programfiler\wgeti miljøvariabelenPATH, slik at de kjørbare filene i disse katalogene blir direkte tilgjengelige fra kommandolinjen som kommandoer.Nå kan jeg kjøre
hent-radio.shfra kommandolinjen ved å plassere meg i samme katalog somhent-radio.shog skrive:
sh hent-radio.sh 20 p2 TestDet er imidlertid nødvendig med noen små justeringer av selve skriptet for få det til å fungere uten Cygwin. Min modifiserte
hent-radio.sh-fil ser slik ut:
#!/bin/sh
filename=`c:/msys/bin/date +%Y-%m-%d-%H-%M-`$3.mp3
wget -T 25 -t 0 -O c:/radio/$filename http://radio.hiof.no:8000/nrk-$2-128 &
wgetpid=$!
sleep $1
kill $wgetpidDenne lagrer opptakene i katalogen
C:\radio. I tillegg har jeg min egena.bat-fil, som ser slik ut:
sh hent-radio.sh %1 %2 %3Denne må ligge i samme katalog som
hent-radio.sh, så jeg legger bådehent-radio.shoga.bati katalogenC:\Programfiler\cron(hvor jeg har installert nnCron LITE). Så er det bare å sette oppcron.tabslik det er beskrevet i artikkelen!For øvrig opplyser jeg om at siste utgave av Streamripper fungerer med
Icecast 2, for dem som måtte ønske å bruke det i stedet forwget.
Skriven av Karl Ove Hufthammer og driven med Movable Type 3.34. Du kan abonnera på innleggs-RSS eller kommentar-RSS.