Portál AbcLinuxu, 3. května 2025 07:13

Užitečné skripty 4: nahráváme z rádia

23.3.2007 21:43 | Přečteno: 1788× | Linux

V dnešním díle Užitečných skriptů klesneme s kvalitou skriptu jak to jenom jde. Ukážeme si skript na nahrávání z internetového rádia, který je zajímavý jenom tím, že si člověk nemusí pamatovat spoustu detailů, protože si je předem napíše do skriptu.

Abstrakt

Člověk si někdy chce nahrát nahrát něco z internetového rádia, ale jako na potvoru člověk zapomene a na poslední chvíli nahazuje Firefox, hledá adresu, odkud rádio vysílá a přemýšlí, jak se vlastně ten pitomý (nahrávací) program jmenuje a jaké mu vlastně dát parametry. Všechno ještě komplikuje fakt, že ne všechna rádia vysílají v oblíbeném a všeobecně rozšířeném formátu OGG.

Samotný skript

Soubor nahravat.sh
  1. #!/bin/sh
  2. # coding: utf-8
  3. help (){
  4. echo "Nahrávání internetového rádia"
  5. echo "Použití: $0 <název rádia> [pocet minut]"
  6. echo Názvy mohou být tyto:
  7. echo " radiozurnal: Radiožurnál"
  8. echo " praha: ČRo 2 Praha"
  9. echo " brno: ČRo 2 Brno"
  10. echo " vltava: ČRo 3 Vltava"
  11. echo " beat: Rádio beat"
  12. }
  13. radio=$1
  14. parentDir=~/tmp/radio
  15. case $radio in
  16. radiozurnal)
  17. #kdyz nefunguej amp1, jeste existuje amp2
  18. address=http://amp1.cesnet.cz:8000/cro1-256.ogg
  19. ;;
  20. brno)
  21. address=mms://82.208.50.129/crobrno?WMContentBitrate=130000
  22. ;;
  23. praha)
  24. address=http://amp1.cesnet.cz:8000/cro2-256.ogg
  25. ;;
  26. vltava)
  27. address=http://amp1.cesnet.cz:8000/cro3-256.ogg
  28. ;;
  29. beat)
  30. address=http://netshow.play.cz:8000/radiobeat128.ogg
  31. #mms://netshow4.live.cz/beat128
  32. ;;
  33. *)
  34. help
  35. exit
  36. ;;
  37. esac
  38. dateStr=`date +%m_%d_%H_%M`
  39. [ -d $parentDir ] || mkdir $parentDira
  40. tmpDir=`mktemp -d -p $parentDir ${radio}_${dateStr}.XXXXXX`
  41. if [ x$2 != x ]
  42. then
  43. duration=`expr $2 '*' 60`
  44. fi
  45. cd $tmpDir
  46. case $radio in
  47. beat|praha|radiozurnal|vltava)
  48. if [ x$2 != x ]
  49. then
  50. options="-l $duration"
  51. fi
  52. streamripper $address -a $options
  53. ;;
  54. brno)
  55. mplayer -dumpstream -dumpfile dump_${dateStr}.asx $address &
  56. if [ x$2 != x ]
  57. then
  58. sleep ${duration}s;
  59. killall mplayer
  60. fi
  61. ;;
  62. esac
Lehké vysvětlení:

Místa k vylepšení, otázky

  1. Pokud si chcete z rádia něco nahrávat pravidelně, není nic jednoduššího, než přidat záznam do cronu. Například od pondělí 19. 3. se vyplatí mít v cronu řádek
        00 19 * * * ~/bin/nahravat.sh praha 90
        
  2. Nevíte o programu (nejlépe GUI, ale není to nutné), který by uměl rádio přehrávat a v případě potřeby by stačilo zmáčknutí čudlíku, aby začal nahrávat? Důležité je, aby se data přenášela jen jednou.
  3. Nevíte, jak zjistit PID posledního procesu spuštěného na pozadí?
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

23.3.2007 22:12 eh
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Odpovědět | Sbalit | Link | Blokovat | Admin
Jednoducha konfigurace muze vypadat treba takto (co je mezi ---cut--- znackamy lze umistit do souboru a pouzit misto toho na zacatku source ten_soubor):
#! /bin/sh

BANNER="Script \"${0%%*/}\" version 1.0.\nReleased under the terms of GNU/GPL.\n"

# ---cut---
RSTATION[0]=cro1
RSTATION[1]=cro2
RSTATION[2]=cro3

RSTATION_URL[0]="http://..."
RSTATION_URL[1]="http://..."
RSTATION_URL[2]="http://..."

RSTATION_DESCRIPTION[0]="Cesky rozhlas 1"
RSTATION_DESCRIPTION[1]="Cesky rozhlas 2"
RSTATION_DESCRIPTION[2]="Cesky rozhlas 3"
# ---cut---

if [[ $# != 1 ]]
then
  echo -e 1>&2 "$BANNER"
  echo -e 1>&2 "Usage: ${0%%*/} [ station ]\n\nAvailable stations:"
  i=0
  for station in ${RSTATION[@]}
  do
    echo -e 1>&2 "   $station -- ${RSTATION_DESCRIPTION[$i]}"
    (( i++ ))
  done
fi

# a tady pokracujes cal jak potrebujes apod...

exit 0
23.3.2007 22:38 eh
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Promin, chybi v napovede exit 1, takze si ho tam pridej(te)...
    # ...
    (( i++ ))
  done
  exit 1 # <<< TADY!
fi
23.3.2007 22:41 eh
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
PS: asi ten script napisu celej a pak ho sem nekam pastnu (kdyz budu mit naladu)... :-) Zjistil jsem totiz, ze by se mi neco podobneho take hodilo...
24.3.2007 10:12 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Odpovědět | Sbalit | Link | Blokovat | Admin
ad 2)

http://www.abclinuxu.cz/clanky/multimedia/kradio

A na titulce je http://www.abclinuxu.cz/software/multimedia/audio/radio/kradio
Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
24.3.2007 10:41 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Kradio je aplikace na obsluhu radio karty v pocitaci. Mozna jsem to v zapisku zamlzil, ale cely skript resi nahravani z internetoveho radia.
24.3.2007 19:57 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Jasně, nevím, proč jsem si to spletl. :-( Mea culpa.
Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
24.3.2007 10:55 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Odpovědět | Sbalit | Link | Blokovat | Admin
killall mplayer nene, to si prohledej diskuzi, řeší se to tu den co den, takže určitě najdeš jak to udělat lépe
27.3.2007 23:00 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Uz jsem to nasel. Zda se, ze kdyz se pred radek 64 prida pid=$!, tak mam spravne process ID. Zbyva jenom vyresit, jak ten mplayer nejak citlive zabit.
24.3.2007 19:24 hele
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Odpovědět | Sbalit | Link | Blokovat | Admin
pekne, pana prstenu na cro2 asi sleduje dost lidi jak to koukam :-)
25.3.2007 15:44 Peter
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
No hej to killall je naozaj dost skarede. Pozri pgrep naposledy spusteny proces tak isto nieje boh vie co ja pouzivam (btw tak isto v skripte na nahravanie z radia :)) pgrep a pkill.
Snilard avatar 25.3.2007 22:06 Snilard | skóre: 3 | blog: Zápisky Ještěrky | Praha
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Odpovědět | Sbalit | Link | Blokovat | Admin
Pána prstenů trochu sleduju. Pokoušel jsem se o nahrávání, leč se nezadařilo. :( :( Nechcete někdo ...?
Jsem velký zlý itčko. Jestli budeš zlobit, dostaneš přednášku o Hilbertových prostorech.
1.4.2007 20:11 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Nevim, co myslis tim dovetkem, ale urcite Te potesi adresa http://forum.panprstenov.com/tema28-0-asc-75.php
Snilard avatar 1.4.2007 21:35 Snilard | skóre: 3 | blog: Zápisky Ještěrky | Praha
Rozbalit Rozbalit vše Re: Užitečné skripty 4: nahráváme z rádia
Potěšila :) Díky
Jsem velký zlý itčko. Jestli budeš zlobit, dostaneš přednášku o Hilbertových prostorech.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.