Kirjoittaja Aihe: Mielimusiikkia ja uutisia vuorotellen bash-skripteillä  (Luettu 6854 kertaa)

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Halusin kuunnella vuorotellen musiikkia ja lyhyitä uutiskatsauksia eri maista.

Ratkaisu: skriptikokoelma lataa ajastuksen mukaan uutiskatsauksia eri maista ja esittää vuorotellen ne musiikkikansiosta satunnaisesti valittujen biisien kanssa.

Liitteitä 2: ohje ja skriptit.

Uutiskatsauksia lataavat skriptit

Uutiskatsaukset on saatavissa monilta radioasemilta siisteinä mp3-tiedostoina esimerkiksi podcast-osoitteesta.

Muilta asemilta uutiskatsaus saadaan ajastamalla äänivirran tallennus sopivasti esimerkiksi 5 minuutin tallenteeksi. Skriptioen käyttäjä voi helposti muuttaa äänitysten ajoitusta ja kestoa.

Skriptit tallentavat uutiskatsaukset kansioon ~/Radio/Puhe. Tallennuksen alussa lisätään tiedot tallennuksesta tiedostoon ~/Radio/Arkisto/radioloki.txt.

Uutisia ja musiikkia vuorotellen soittava skripti (soita.sh)

Skripti valitsee musiikin satunnaisesti soittolistalta ~/Radio/soittolista.m3u. Skripti tekee soittolistan, kunhan käyttäjä ensin valitsee kansion, josta musiikki haetaan (oletuksena ~/Musiikki).
« Viimeksi muokattu: 13.05.20 - klo:18.45 kirjoittanut elohope »

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Uusi versio yhdessä skriptissä.

Edelliseen skriptikokoelmaan verrattuna on tehty seuraavia muutoksia:
- erilliset skriptit on yhdistetty yhdeksi funkRadio.sh -skriptiksi (siirtämällä erilliset skriptit uuden funktioiksi)
- funkRadion toimintaa ohjataan nyt valikoiden avulla
- valikoiden avulla tehdään ja valitaan käyttöön soittolistoja sekä ladataan uutisia
- valikosta käynnistetään myös funkRadion kuuntelu, jolloin skripti esittää vuorotellen musiikkia ja uutisia
- uutisten latauksessa ei enää voi käyttää aikataulua, vaan oletuksena on, että käyttäjä lataa haluamansa tuoreet uutiset ja käy kuuntelemaan niitä ja musiikkia saman tien

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Vs: Mielimusiikkia ja uutisia vuorotellen bash-skripteillä
« Vastaus #2 : 18.09.20 - klo:09.11 »
Uusi versio! Nyt ohjausvalikon ensimmäinen kohta käynnistää funkRadion helpoimmalla tavalla: lataa  varsinaiset uutislähetykset ja alkaa soittaa musiikkia ja uutisia vuorotellen.

Skriptin toimintaa ohjataan valitsemalla valikosta toivotun vaihdoehdon numero. Valikoiden avulla
- ladataan uutis- ja ajankohtaiskatsauksia
- tehdään soittolistoja ja soitetaan niitä
- käynnistetään funkRadion kuuntelu, jolloin skripti esittää vuorotellen musiikkia ja uutisia

Alussa ohjelma tarkistaa, onko uutiskansioon ~/Radio/Puhe jäänyt aikaisemmista istunnoista kuuntelemattomia uutistiedostoja. Ne voi poistaa valitsemalla kehotuksen jälkeen Enter; jos valitsee muun merkin, mp3-tiedostot jäävät kansioon kuunneltavaksi.

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Vs: Mielimusiikkia ja uutisia vuorotellen bash-skripteillä
« Vastaus #3 : 25.12.20 - klo:10.21 »
Ylen Areenan audion latausosoite on hieman muuttunut, eikä Yle-dl-ohjelmaa enää tarvita tässä funkRadio-versiossa.

Ohessa siis uusi versio. Siinä soittolistaan voi nyt valita biisejä, jotka on ladattu (eli muutettu) x päivää sitten. Ja mukaan voi ottaa lyhyempiä kuin 10 minuutin kappaleita.

Jos alla olevat ohjeet ovat liian kursorisia, kannattaa selata edellisten versioiden ohjeita.

----

Bash-skripti 'funkRadion' asentaminen

Olen käyttänyt skriptiä ajan tasalla olevassa Ubuntu- ja Arch Linux -jakelussa puolen vuoden ajan. Tarvittavat kansiot tehdään bash-komennolla

$ mkdir ~/Radio ~/Radio/Arkisto ~/Radio/Puhe

Skripti funkRadio.sh sijoitetaan kansioon ~/Radio. Ennen käyttöä se on aktivoitava ohjelmaksi komennolla

chmod u+x  ~/Radio/funkRadio.sh

Lokitiedosto tehdään komennolla

touch ~/Radio/Arkisto/radioloki.txt

Skripti tarvitsee toimiakseen joukon apuohjelmia. En tiedä ovatko ne saatavilla muissa kuin Ubuntu- ja Arch- jakelussa. Tarvittavat apuohjelmat ovat

vlc (sen mukana tuleva komentoriviversio cvlc)
wget
mpg123
ffmpeg
youtube-dl
curl


Siltä varalta, että skripti ei toimi, kannattaa huomata, että käytin aikaisemmassa versiossa ohjelmaa yle-dl, joka vaati Ubuntussa seuraavien apuohjelmien asennuksen:

sudo apt install rtmpdump wget ffmpeg python3-dev python3-setuptools python3-pip python3-pycryptodome python3-requests python3-lxml php-cli php-curl php-xml php-bcmath

Näiden asentamista kannattaa harkita, jos skripti ei toimi kunnolla. Asennettuani nuo apuohjelmat asensin Ubuntuun yle-dl:n komennolla

sudo pip3 install yle-dl

Ubuntussa kannattanee asentaa vielä ubuntu-restricted-extras.

Bash-skripti 'funkRadion' käyttö

Skripti käynnistetään komennolla

~/Radio/funkRadio.sh

Käyttäjän kotihakemiston kansioon Radio sijoitetaan myös musiikin soittolistat. Soittolistoina voidaan hyödyntää käyttäjän erikseen tekemiä ja Radio-kansioon siirtämiä m3u-tyyppisiä soittolistoja.

Käynnistyttyäään skripti pyytää valitsemaan tarjolla olevista soittolistoista jonkin. Käyttäjä voi myös tehdä uuden soittolistan seuraamalla skriptin ohjeita. Oletuksena on, että soittolistoja tehdään kansiossa

~/Musiikki

olevista mp3-tiedostoista (ks. suunnilleen skriptin rivi 100). Soittolistan voi tehdä esimerkiksi hakusanan perusteella (alikansion, esiintyjän tms. perusteella). Jos hakusanaksi asettaa "Musiikki", soittolistaan päätyvät kaikki ~/Musiikki-kansion mp3-tiedostot.

Kun käyttäjä on valinnut soittolistan tai tehnyt uuden, siirrytään ohjausvalikkoon. Siinä käyttäjä voi valita ensin ne uutislähteet, joista tuore uutiskatsaus haetaan. Suosittelen valitsemaan kohdan 1, jolloin skripti alkaa soittaa musiikkia ja lataa varsinaiset uutiskatsaukset. Ensimmäisen musiikkikappaleen päätyttyä käynnistyy ensimmäinen uutiskatsaus. Musiikin ja uutisten välillä voi vaihtaa komennolla CTRL+C ja ohjelma voidaan lopettaa kokonaan komennolla CTRL+Z.

Yksityiskohtaisempia ohjeita
Skriptin oletusvaihtoehtona on monessa kohtaa Enter, joten se kannattaa valita useimmissa kohdissa ensi alkuun, kun ohjelman käyttöä aloittelee.

Toimintansa alussa ohjelma tarkistaa, onko uutiskansioon ~/Radio/Puhe jäänyt aikaisemmista istunnoista kuuntelemattomia uutistiedostoja. Ne voi poistaa valitsemalla kehotuksen jälkeen komento Enter; jos valitsee muun merkin, mp3-tiedostot jäävät kansioon kuunneltavaksi.

Skriptin toimintaa ohjataan valitsemalla ohjausvalikosta toivottu vaihtoehdon numero. Valikoiden avulla

- ladataan uutis- ja ajankohtaiskatsauksia
- tehdään soittolistoja ja soitetaan niitä
- käynnistetään funkRadion kuuntelu, jolloin skripti esittää vuorotellen musiikkia ja uutisia

Ohjausvalikon ensimmäinen kohta käynnistää funkRadion helpoimmalla tavalla: ladataan  varsinaiset uutislähetykset ja ohjelma alkaa soittaa musiikkia ja uutisia vuorotellen. Australian ABC:n uutiset ladataan vasta seuraavalta tasatunnilta alkaen.

Käyttäjä voi valita kuunneltavakseen kerrallaan joko olemassa olevan soittolistan tai tehdä uuden soittolistan. Soittolista tehdään yhden tai useamman hakusanan avulla musiikkikansiosta (oletuskansiona on ~/Musiikki, ks. skriptin rivi 128).

Oletuksena soittolistalle valitaan vain alle 10 minuuttia pitkät mp3-tiedostot. Soittolistan nimeen liitetään sen takia tunnus "Alle10min". Oletuksen voi muuttaa soittolistan määritysvaiheessa niin, että mukaan tulevat kaikenpituiset musiikkikappaleet.

Australian yleisradioyhtiön ABC:n uutiset ladataan nyt niin, että valikosta käynnistyy ajastin, joka  käynnistää äänityksen seuraavan tasatunnin kohdalla (tarkemmin sanottuna 30 sekuntia ennen tasatuntia, sillä ABCNews ei ajoita uutisten alkua aina aivan täsmällisesti). On huomattava, että Australian iltatunteina ja viikonloppuisin kuuntelijoille tarjotaan ajoittain BBC:n, Deutsche Wellen tai NPR:n uutiskatsauksia.

Skriptin suoritus alkaa suunnilleen skriptin riviltä 302.

----
Tehty lisäys tarvittavien apuohjelmien luetteloon: curl, joka asennetaan Ubuntuun komennolla

sudo apt install curl
« Viimeksi muokattu: 01.01.21 - klo:19.48 kirjoittanut elohope »

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Vs: Mielimusiikkia ja uutisia vuorotellen bash-skripteillä
« Vastaus #4 : 27.11.21 - klo:08.01 »
Tähän aikaan vuodesta on mukava käpertyä peiton alle ja kuunnella uutisia ja musiikkia. Niin kuin muinakin aikoina vuodesta.

Tarjolla on funkRadion uusi versio:
https://github.com/EloHope/funkRadio/blob/main/funkRadio.sh


Uusia ominaisuuksia! Rallienglantia!

funkRadiota on testattu Ubuntussa, Debianissa ja Arch Linuxissa. Toiminee muissakin jakeluissa, kunhan seuraavat ohjelmat ovat saatavissa:
- vlc (sen komentoriviversio cvlc tulee mukana)
- wget
- mpg123
- ffmpeg (versio 4.4 tai korkeampi tuo speechnorm-suotimen, mutta funkRadio toimii hyvin ilman tuota suodintakin)
- youtube-dl
- curl
- shuf

Lisäksi on asennettava seuraavat kansiot esim. näillä komennoilla:

Koodia: [Valitse]
mkdir ~/funkRadio ~/funkRadio/Archive ~/funkRadio/Talk

Kopioi skripti funkRadio.sh ja aseta se kansioon ~funk/Radio. Anna skriptille ajo-oikeudet komennolla

Koodia: [Valitse]
chmod u+x  ~/funkRadio/funkRadio.sh
Lopuksi tehdään vielä lokitiedosto:

Koodia: [Valitse]
touch ~/funkRadio/Archive/funkRadiolog.txt
Jos sinulla on valmiina m3u-muotoinen musiikin soittolista, aseta kopio siitä kansioon ~/funkRadio/. Näin ei tarvitse tehdä soittolistaa, kun käynnistät funkRadion ensimmäisen kerran.

funkRadio käynnistetään komennolla

Koodia: [Valitse]
~/funkRadio/funkRadio.sh

elohope

  • Käyttäjä
  • Viestejä: 134
    • Profiili
Vs: Mielimusiikkia ja uutisia vuorotellen bash-skripteillä
« Vastaus #5 : 01.02.22 - klo:09.26 »
Lisää uusia ominaisuuksia. Vähemmän rallienglantia.

https://github.com/EloHope/funkRadio/blob/main/funkRadio.sh