tradioafspiller - afspil radio via terminalen
Hej alle
Har hygget mig med et lille mini projekt, som måske lidt kunstigt, er døbt "tradioafspiller" som står for terminal radio afspiller (Wow opfindsomt!).
Programmet/scriptet er et forsøg på at lave en hurtig og simpel måde hvorpå man kan starte en radio kanal (f.eks. DR P3) uden at skulle enten starte en webbrowser eller et program som amarok, hvilket betyder flere taste tryk og brug af musen osv. (Derved ikke sagt at disse programmer eller tilgange er dårligere eller dårlige - igen lidt credit til cb400f's amarok script!)
Men det at starte en kanal via terminalen er hurtigt især hvis man benytter sig af Yakuake (Qt-baseret) eller Guake (GTK-baseret), som er en "Dropdown terminal" som sikkert findes i din pakkehåndtering. Dette betyder nemlig at man hurtigt, og i princippet kun ved brug af tastaturet, kan starte en radio kanal som f.eks. DR P3 ved at skrive radio afspil drp3 eller Nova.FM ved at skrive radio afspil novafm i terminalen/Yakuake/Guake.
Bruger selv scriptet en del, da jeg ofte hører radio og ja, dovenskaben længe leve :-)
Scriptet er forholdvis stabilt, men er stadigt i en lidt tidlig version - dog har jeg fået god og venlig respons fra nogle af jer der har set mit indlæg på Googe+ om det (Hvilket jeg siger mange tak for :-) )
Konstruktiv kritik og kommentarer modtages gerne, samt hvis nogle vil tilføje flere kanaler er du/I mere end velkommen - det er (IMO) forholdvis enkelt at forstå opbygningen af "kanal oplysningsdelen" i scriptet - og ellers spørg gerne :-)
OBS: Er ikke uddannet programmør eller ligende, så det er sikkert "forkert" lavet og noget slam kode, men har gjort mit bedste :-)
Læs mere på Google Code siden, både vedr. installation og brug: http://code.google.com/p/tradioafspiller/
Har hygget mig med et lille mini projekt, som måske lidt kunstigt, er døbt "tradioafspiller" som står for terminal radio afspiller (Wow opfindsomt!).
Programmet/scriptet er et forsøg på at lave en hurtig og simpel måde hvorpå man kan starte en radio kanal (f.eks. DR P3) uden at skulle enten starte en webbrowser eller et program som amarok, hvilket betyder flere taste tryk og brug af musen osv. (Derved ikke sagt at disse programmer eller tilgange er dårligere eller dårlige - igen lidt credit til cb400f's amarok script!)
Men det at starte en kanal via terminalen er hurtigt især hvis man benytter sig af Yakuake (Qt-baseret) eller Guake (GTK-baseret), som er en "Dropdown terminal" som sikkert findes i din pakkehåndtering. Dette betyder nemlig at man hurtigt, og i princippet kun ved brug af tastaturet, kan starte en radio kanal som f.eks. DR P3 ved at skrive radio afspil drp3 eller Nova.FM ved at skrive radio afspil novafm i terminalen/Yakuake/Guake.
Bruger selv scriptet en del, da jeg ofte hører radio og ja, dovenskaben længe leve :-)
Scriptet er forholdvis stabilt, men er stadigt i en lidt tidlig version - dog har jeg fået god og venlig respons fra nogle af jer der har set mit indlæg på Googe+ om det (Hvilket jeg siger mange tak for :-) )
Konstruktiv kritik og kommentarer modtages gerne, samt hvis nogle vil tilføje flere kanaler er du/I mere end velkommen - det er (IMO) forholdvis enkelt at forstå opbygningen af "kanal oplysningsdelen" i scriptet - og ellers spørg gerne :-)
OBS: Er ikke uddannet programmør eller ligende, så det er sikkert "forkert" lavet og noget slam kode, men har gjort mit bedste :-)
Læs mere på Google Code siden, både vedr. installation og brug: http://code.google.com/p/tradioafspiller/
Kommentarer12
Det virker fint, men jeg har
1. Jeg kunne godt tænke mig at player var synlig og dit script gik i baggrunden (eller lukkede efter at have startet playeren)
2. I det mindste skulle man kunne køre det i baggrunden, men det virker af en eller anden grund ikke.
Flere forslag:
"afspil" som
"afspil" som default kommando, samt match på enkelte bogstaver så man kunne skrive:
radio kbh
radio klas
radio nyhed
for at afspille hhv.
drp4kbh
drklassisk
drnyheder
Jeg kunne egentligt godt selv tænke mig at komme igang med Python til scriptingbrug (har kun lavet lidt til www). Hvad har du brugt som kilder for at komme igang?
Du kan starte Amarok +
@marlar, Tak for forslagene.
Det med at forkorte kommandoen, tjoo - det var da egentligt heller ikke dumt, især fordi det alligevel er "afspil" man bruger 9 ud af 10 gange.. Igen, noget jeg vil kigge nærmere på :-)
Puha, har leget med python siden lidt før sommerferien, så det er jo da ikke fordi det er langtid, men har da været igennem en langrække små projekter som aldrig rigtigt er kommet videre end som så. Men ofte har jeg brugt Google søgninger og nogle hjemmesider (lidt hist og pist). Har eksporteret mine python bogmærker, måske kan du bruge nogle af dem: http://dl.dropbox.com/u/196675/pythonbogmaerker.html
Eneste er at du nok bare skal være opmærksom på om du vil kode til python2 eller python3.. Mit radio script er python2, hvilket nok mere bare var fordi jeg hver gang glemmer at openSUSE kører med det som standard og derfor ikke får det tilpasset så det virker med python3.. :-) Men 3'eren er jo fremtiden ;-)
@cb400f, Show off ;-) Det er naturligvis rigtigt :-)
#!/usr/bin/python2
#!/usr/bin/python2
Derefter kan du omdøbe radio.py til radio og gør den executable. Nu kan du køre dit python script direkte uden dit ekstra shell script.
Tak for tippet, kendte
Tak for tippet, kendte jeg ikke.. Det er tilføjet :-)
Desuden har jeg tilføjet at man istedet for at skrive radio afspil drp3, kan nøjes med radio drp3 , tak til marlar for idéen.. :-) Det med at lave det som en baggrundsprocess ligner umiddelbart (såvidt jeg kan se) at jeg skal omskrive det hele til at være en daemon - Men måske er det et godt "get started" projekt for dig marlar? ;-)
Det med at lave det som
Mon dog? De fleste programmer kan sættes i baggrunden med & så dit script kan nok også hvis det lige bliver filet lidt :)
Men det at starte en
Tak for tippet! Har installeret Guake nu og den er faktisk ret sej!
Jaah, ved jeg.. Hmm..
Jaah, ved jeg.. Hmm.. har prøvet at lege med forskellige løsninger, men har ikke en direkte løsning endnu. Dog er der en lidt slags "workarround", der dog betyder at du ikke bruger GStreamer til at afspille med, men ohh well..
Det du kan gøre er følgende for at køre radioen i baggrunden:
1) Indstil scriptet til at bruge mplayer/vlc til at afspille med (hvis du vil ændre hvilken afspiller der bruges skriv radio indstil afspiller):
radio indstil gstreamer
(Skriv nej i feltet)
2) Herefter kan du høre det ved at skrive f.eks.
radio afspil drp3 &
Nu hvis du vil afslutte kan du skrive:
a) For at afslutte mplayer (Hvis installeret)
pkill mplayer
b) for at afslutte VLC, som starter som fallback afspiller (hvis installeret)
pkill vlc
Det er ikke perfekt, men det er da en midlertidigt løsning :-)
Unix signal handling
Det handler om unix signal handling. Når man starter en process med & sender man et SIGTSTP signal til processen. Default action er at suspendere program udførslen. Men hvis man sætter programmet til at ignorere dette signal kører det videre uden problemer.
#!/usr/bin/python2
import gst
import signal
#Ignorer SIGTSTP
signal.signal(signal.SIGTSTP,signal.SIG_IGN)
# Afspiller
player = gst.element_factory_make("playbin2", "player")
player.set_property('uri', "http://live-icy.gss.dr.dk:8000/Channel5_HQ.mp3")
player.set_state(gst.STATE_PLAYING)
#Kør uendeligt
while True:
1+1
Dette lille program afspiller P3(tror jeg nok) og hvis man kører det med & tilslut kører det videre i baggrunden.
@marson, har prøvet den
Du er mere end velkommen til at prøve at lave det i det "rigtige" script - jeg syntes selv at jeg har gjort et stort nummer ud af at kommentere i koden, netop sådan andre kan hjælpe til :-)
Hej alle
Fandt ud af man
Fandt ud af man kunne lave "plasmoids" ved at bruge Python. Så har forsøgt at lave et widget til "radio scriptet". Det er meget basalt og kan kun benytte GStreamer til afspilling.
Screenshot: https://picasaweb.google.com/lh/photo/IR3TidVLYsssh85vnavghw?feat=direc…
Installation:
* Hent plasmoid fra http://dl.dropbox.com/u/196675/tradioafspiller-plasma.zip
* Herefter åben terminalen og cd'e frem til mappen hvor pakkefilen er.
* Skriv plasmapkg -i tradioafspiller-plasma.zip
Herefter kan plasmoiden tilføjes til skrivebordet ligesom man kender normalt fra KDE - det hedder "tradioafspiller-plasma"
Alternativ installationsmetode:
wget http://dl.dropbox.com/u/196675/tradioafspiller-plasma.zip ; plasmapkg -i tradioafspiller-plasma.zip