Zure Interneteko irratia

Askori gustatzen zaigu goizean irratia entzutea. Eta orduan goiz eder batean konturatu nintzen ez nuela tokiko FM irratiak entzun nahi. Ez da interesatzen. Baina ohitura kaltegarria suertatu zen. Eta FM hargailua Interneteko hargailu batekin ordezkatzea erabaki nuen. Azkar erosi nituen piezak Aliexpress-en eta Interneteko hargailu bat muntatu nuen.

Interneteko hargailuari buruz. Hargailuaren bihotza ESP32 mikrokontroladorea da. KA-irratiaren firmwarea. Piezek 12 $ kostatu zidaten. Muntatzeko erraztasunak pare bat egunetan muntatzeko aukera eman zidan. Ondo eta egonkor funtzionatzen du. 10 hilabeteko lanean, pare bat aldiz bakarrik izoztu zen, eta gero nire esperimentuengatik bakarrik. Interfaze eroso eta ongi pentsatuak telefono eta ordenagailu batetik kontrolatzeko aukera ematen du. Hitz batean, hau Interneteko hargailu zoragarria da.

Dena ondo dago. Baina goiz batean, hamarnaka irrati kateetarako sarbidea izan arren, ez zegoela kate interesgarririk ondorioztatu nuen. Gogaitu egin ninduen publizitateak eta aurkezleen txantxa ergelak. Geltoki batetik bestera etengabe saltoka. Spotify eta Yandex.Music gustatzen zaizkit. Baina tristea da nire herrian ez dutela lanik egiten. Eta Internet hargailuaren bidez entzun nahi nituzke.

Nire haurtzaroa gogoratu nuen. magnetofono bat eta bi dozena kasete nituen. Lagunekin kaseteak trukatu nituen. Eta zoragarria izan zen. Nire audio-artxiboak Interneteko hargailu batera soilik transmititu behar nituela erabaki nuen. Noski, badago audio erreproduzitzailea edo iPod bat bozgorailuetara konektatzeko eta ez kezkatu. Baina hau ez da gure bidea! Gorroto ditut konektoreak konektatzea)

Prestatutako irtenbideen bila hasi nintzen. Radio-Tochka.com-etik zure Interneteko irratia sortzeko eskaintza dago merkatuan. 5 egunez probatu nuen. Dena ondo funtzionatu zuen nire Interneteko hargailuarekin. Baina prezioa ez zen niretzat erakargarria. Aukera hau baztertu nuen.

Ostalaritza 10 GB ordaindu dut. Nire mp3 fitxategien audio-korrontea erreproduzituko zuen zerbaiten gaineko gidoia idaztea erabaki nuen. PHPn idaztea erabaki nuen. Azkar idatzi nuen eta martxan jarri nuen. Dena funtzionatu zuen. Polita izan zen! Baina egun pare bat geroago, ostalaritzako administrazioaren gutun bat jaso nuen. Esan zuen prozesadorearen minutuen muga gainditu zela eta tarifa altuago batera igotzeko beharra. Scripta ezabatu behar izan zen eta aukera hau bertan behera utzi.

Nola gertatu zen? Ezin naiz bizi irratirik gabe. Ez badizute uzten scripta beste norbaiten ostalaritzan exekutatzen, orduan zure zerbitzaria behar duzu. Non egingo dut nire arimak nahi duena.

Antzinako netbook bat daukat bateriarik gabe (CPU - 900 MHz, RAM - 512 Mb). Agureak 11 urte ditu jada. Zerbitzari baterako egokia. Ubuntu 12.04 instalatzen dut. Gero Apache2 eta php 5.3 instalatzen ditut, samba. Nire zerbitzaria prest dago.

Icecast probatzea erabaki nuen. Mana asko irakurri dut. Baina zaila egin zitzaidan. Eta PHP script batekin aukerara itzultzea erabaki nuen. Egun pare bat eman ziren script hau arazketan. Eta dena ondo funtzionatu zuen. Gero podcastak erreproduzitzeko gidoi bat ere idatzi nuen. Eta hainbeste gustatu zitzaidan, non proiektu txiki bat egitea erabaki nuen. IWScast deitu zion. Github-en argitaratua.

Zure Interneteko irratia

Dena oso sinplea da. MP3 fitxategiak eta index.php fitxategia Apache erroko karpetan kopiatzen ditut /var/www/ eta ausaz erreproduzitzen dira. 300 abesti inguru nahikoa dira gutxi gorabehera egun osorako.
index.php fitxategia scripta bera da. Scriptak direktorio bateko MP3 fitxategien izen guztiak array batean irakurtzen ditu. Audio-korronte bat sortzen du eta MP3 fitxategien izenak ordezkatzen ditu. Batzuetan abesti bat entzuten duzu eta gustatzen zaizu. Nork uste duzu abesten duela? Horrelako kasuetarako, entzundako pisten izenen grabaketa dago log.txt erregistroan
Script-kode osoa

<?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: your name");
header("icy-description: your description"); 
$files = glob("*.mp3");
shuffle($files); //Random on

for ($x=0; $x < count($files);) {
  $filePath =  $files[$x++];
  $bitrate = 128;
  $strContext=stream_context_create(
   array(
     'http'=>array(
       'method' =>'GET',
       'header' => 'Icy-MetaData: 1',
       'header' =>"Accept-language: enrn"
       )
     )
   );
//Save to log 
  $fl = $filePath; 
  $log = date('Y-m-d H:i:s') . ' Song - ' . $fl;
  file_put_contents('log.txt', $log . PHP_EOL, FILE_APPEND);
  $fpOrigin=fopen($filePath, 'rb', false, $strContext);
  while(!feof($fpOrigin)){
   $buffer=fread($fpOrigin, 4096);
   echo $buffer;
   flush();
 }
 fclose($fpOrigin);
}
?>

Pistak ordenan erreproduzitu behar badituzu, index.php-en lerroa komentatu behar duzu

shuffle($files); //Random on

Podcastetarako /var/www/podcast/ erabiltzen dut Beste script index.php bat dago. Podcast pistaren memorizazioa du. Interneteko hargailua pizten duzun hurrengoan, hurrengo podcast pista erreproduzituko da. Erreproduzitutako pisten erregistroa ere badago.
counter.dat fitxategian, pista-zenbakia zehaztu dezakezu eta podcast-en erreprodukzioa bertatik hasiko da.

Podcastak automatikoki deskargatzeko analizatzaileak idatzi ditu. RSSko azken 4 pistak hartzen ditu eta deskargatzen ditu. Horrek guztiak oso ondo funtzionatzen du telefono mugikorrean, IPTV dekodoigailu batean edo arakatzaile batean.

Lehengo goizean bururatu zitzaidan oso ondo legokeela pista bateko erreprodukzio-posizioa gogoratzea. Baina oraindik ez dakit nola egin PHPn.

Gidoia deskargatu daiteke github.com/iwsys/IWScast

Iturria: www.habr.com

Gehitu iruzkin berria