Ditt internettradio

MÄnga av oss gillar att lyssna pÄ radio pÄ morgonen. Och en vacker morgon insÄg jag att jag inte ville lyssna pÄ lokala FM-radiostationer. Det var inte intressant. Men vanan var svÄr att bryta. SÄ jag beslutade att byta ut FM-mottagaren mot en internetmottagare. Jag köpte snabbt delar pÄ AliExpress och byggde en internetmottagare.

Om internetmottagaren. HjÀrnan i mottagaren Àr mikrokontrollern ESP32. Programvaran kommer frÄn KA-radio. Kostnaden för delarna blev 12 dollar för mig. Enkelheten i monteringen gjorde att jag kunde bygga den pÄ ett par dagar. Den fungerar bra och stabilt. Under 10 mÄnaders drift har den bara hÀngt sig ett par gÄnger, och dÄ endast pÄ grund av mina experiment. Det bekvÀma och genomtÀnkta grÀnssnittet gör att man kan styra den frÄn smartphone och dator. Kort sagt, detta Àr en fantastisk internetmottagare.

Allt var bra. Men en tidig morgon kom jag fram till att trots att jag hade tillgÄng till tiotusentals radiostationer fanns det inga intressanta stationer. Reklamen och de trÄkiga skÀmten frÄn programledarna irriterade mig. Jag skippade stÀndigt mellan stationerna. Jag gillar Spotify och Yandex.Music. Men sorgligt nog fungerar de inte i mitt land. Jag skulle vilja lyssna pÄ dem via internetmottagaren.

Jag minns min barndom. Jag hade en kassettspelare och ett tjugotal kassetter. Jag bytte kassetter med vÀnner. Det var underbart. Jag bestÀmde mig för att strömma mina ljudarkiv direkt till internetmottagaren. Visst finns det alternativ att koppla en ljudspelare eller iPod till högtalarna och slippa krÄngel. Men det Àr inte vÄr vÀg! Jag hatar att koppla sladdar)

Jag började leta efter fÀrdiga lösningar. PÄ marknaden fanns erbjudanden om att skapa sitt eget internet-radioprogram frÄn Radio-Tochka.com. Jag testade i 5 dagar. Med min internetmottagare fungerade allt utmÀrkt. Men priset var inte attraktivt för mig. Jag avstod frÄn det alternativet.

Jag har en betald webbhosting pÄ 10 GB. Jag bestÀmde mig för att skriva ett skript i nÄgot som skulle möjliggöra strömning av ljudflödet frÄn mina mp3-filer. Jag valde att skriva det i PHP. Jag skrev snabbt och startade det. Allt fungerade. Det var fantastiskt! Men efter ett par dagar kom ett brev frÄn webbhostingens administration. DÀr stod det om överskridande av processor minuter och behovet av att gÄ till en högre plan. Jag var tvungen att ta bort skriptet och avstÄ frÄn det alternativet.

Hur gÄr det till? Jag kan inte leva utan radio. Om jag inte kan köra skriptet pÄ nÄgon annans hosting, dÄ mÄste jag ha en egen server. DÀr kan jag göra det som min sjÀl önskar.

Jag har en gammal bĂ€rbar dator utan batteri (CPU – 900 MHz, RAM – 512 Mb). Den har funnits i 11 Ă„r redan. Den passar helt för en server. Jag installerar Ubuntu 12.04. Sedan installerar jag Apache2 och PHP 5.3, Samba. Min server Ă€r klar.

Jag bestÀmde mig för att prova Icecast. Jag har lÀst mycket om det. Men jag tyckte att det var komplicerat. SÄ jag beslöt att ÄtergÄ till alternativet med skriptet pÄ PHP. Jag spenderade nÄgra dagar med att felsöka detta skript. Och allt fungerade utmÀrkt. Sedan skrev jag ytterligare ett skript för att spela upp podcasts. Jag gillade det sÄ mycket att jag beslöt mig för att göra ett litet projekt. Jag kallade det IWScast. Jag lade upp det pÄ GitHub..

Ditt internettradio

Allt Àr vÀldigt enkelt. Jag kopierar MP3-filerna och index.php-filen till Apache-huvudmappen /var/www/ och de spelas upp slumpmÀssigt. UngefÀr 300 lÄtar rÀcker för hela dagen.
Filen index.php Àr sjÀlva skriptet. Skriptet lÀser alla namn pÄ MP3-filerna i katalogen till en array. Det skapar en ljudström och lÀgger in namnen pÄ MP3-filerna. Det finns stunder nÀr man lyssnar pÄ en lÄt och man gillar den. Man undrar, vem sjunger det? För sÄdana tillfÀllen finns det en logg av lyssnade lÄtar i log.txt.
Skriptets kod i sin helhet

<?php
set_time_limit(0);
header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("icy-br: 128 ");
header("icy-name: ditt namn");
header("icy-description: din beskrivning");
$files = glob("*.mp3");
shuffle($files); // Slumpar dem

for ($x=0; $x array(
       'method' =>'GET',
       'header' =>'Icy-MetaData: 1',
       'header'=>

Om du vill att lÄtarna ska spela upp i ordning, mÄste du kommentera raden i index.php.

shuffle($files); // Slumpar dem

För podcasts anvÀnder jag /var/www/podcast/. DÀr finns ett annat skript index.php. I det finns det en funktion för att komma ihÄg podcasts. Vid nÀsta uppstart av internetmottagaren spelas nÀsta lÄt i podcasten. Det finns ocksÄ en logg över spelade lÄtar.
I filen counter.dat kan du ange lÄtens nummer, och dÄ börjar uppspelningen av podcasts frÄn det.

Jag har skrivit parser för automatisk nedladdning av podcaster. Den hÀmtar de senaste 4 lÄtarna frÄn RSS och laddar ner dem. Allt fungerar utmÀrkt pÄ smartphone, IPTV-box och i webblÀsaren.

Nyligen fick jag en idé pÄ morgonen att det skulle vara fantastiskt att göra sÄ att uppspelningspositionen sparas pÄ lÄten. Men jag vet fortfarande inte hur man gör det i PHP.

Skriptet kan laddas ner github.com/iwsys/IWScast

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster