Ären eegene Internet Radio

Vill vun eis lauschteren gären de Radio moies. An dunn e schéine Moien hunn ech gemierkt datt ech net op lokal FM Radiosender lauschtere wollt. Net interesseiert. Awer d'Gewunnecht huet sech als schiedlech erausgestallt. An ech hu beschloss den FM Empfänger duerch en Internet Empfänger ze ersetzen. Ech hunn séier Deeler op Aliexpress kaaft an en Internetempfänger zesummegesat.

Iwwer den Internet Receiver. D'Häerz vum Empfänger ass den ESP32 Mikrokontroller. Firmware vun KA-radio. D'Deeler kaschten mech $12. D'Liichtegkeet vun der Montage huet mir erlaabt et an e puer Deeg ze montéieren. Wierker gutt a stabil. An 10 Méint Aarbecht huet et nëmmen e puer Mol gefruer, an dann nëmmen duerch meng Experimenter. Eng praktesch a gutt duerchduechte Interface erlaabt Iech vun engem Smartphone a Computer ze kontrolléieren. An engem Wuert, ass dëst e wonnerbar Internet Receiver.

Alles ass OK. Mee e fréie Moien sinn ech zur Conclusioun komm, datt trotz zéngdausende vu Radiosender Zougang, et keng interessant Statiounen ginn. D'Reklammen an déi domm Witzer vun de Presentateuren hunn mech genervt. Sprangen konstant vun enger Statioun op déi aner. Ech hu gär Spotify an Yandex.Music. Awer déi traureg Saach ass datt se net a mengem Land schaffen. An ech wéilt se iwwer den Internetempfänger lauschteren.

Ech erënnere mech un meng Kandheet. Ech hat e Bandrecorder an zwee Dose Kassetten. Ech hunn Kassetten mat Frënn ausgetosch. An et war wonnerbar. Ech hunn decidéiert datt ech meng Audioarchiven nëmmen op en Internetempfänger muss streamen. Natierlech gëtt et eng Optioun fir en Audio Player oder iPod mat de Spriecher ze verbannen an keng Suergen. Awer dëst ass net eise Wee! Ech haassen Connectoren ze verbannen)

Ech hunn ugefaang no fäerdege Léisungen ze sichen. Et gëtt eng Offer um Maart fir Ären eegene Internet Radio vu Radio-Tochka.com ze kreéieren. Ech hunn et fir 5 Deeg getest. Alles funktionnéiert gutt mat mengem Internetempfänger. Mä de Präis war net attraktiv fir mech. Ech hunn dës Optioun refuséiert.

Ech hu bezuelt Hosting 10 GB. Ech hu beschloss e Skript ze schreiwen op eppes wat den Audio Stream vu menge mp3 Dateien streamt. Ech hu beschloss et an PHP ze schreiwen. Ech hunn et séier geschriwwen an et lancéiert. Alles huet geschafft. Et war cool! Awer e puer Deeg méi spéit krut ech e Bréif vun der Hostingverwaltung. Et huet gesot datt d'Limite vu Prozessorminutten iwwerschratt gouf an d'Noutwendegkeet op e méi héije Tarif ze upgrade. De Skript huet misse geläscht ginn an dës Optioun opginn.

Wéi ass et geschitt? Ech kann net ouni Radio liewen. Wann se Iech net erlaben de Skript op engem Hosting vun engem aneren auszeféieren, da braucht Dir Ären eegene Server. Wou ech wäert maachen wat meng Séil wënscht.

Ech hunn en antike Netbook ouni Batterie (CPU - 900 MHz, RAM - 512 Mb). Den ale Mann huet schonn 11 Joer. Gëeegent fir e Server. Ech installéieren Ubuntu 12.04. Dann installéieren ech Apache2 an php 5.3, samba. Mäi Server ass prett.

Ech hu beschloss Icecast ze probéieren. Ech liesen vill Mana op et. Mee ech hunn et schwéier fonnt. An ech hu beschloss op d'Optioun zréckzekommen mat engem PHP Skript. E puer Deeg goufe verbruecht fir dëst Skript ze Debuggen. An alles huet super geschafft. Dunn hunn ech och e Skript geschriwwen fir Podcasts ze spillen. An ech hunn et esou gär datt ech decidéiert hunn e klenge Projet ze maachen. Genannt et IWScast. Gepost op github.

Ären eegene Internet Radio

Alles ass ganz einfach. Ech kopéieren d'mp3 Dateien an d'index.php Datei an den Apache Root Dossier /var/www/ a si ginn zoufälleg gespillt. Ronn 300 Lidder si fir ongeféier de ganzen Dag duer.
D'index.php Datei ass de Skript selwer. De Skript liest all d'Nimm vun MP3 Dateien an engem Verzeechnes an eng Array. Erstellt en Audio Stream an ersetzt d'Nimm vun MP3 Dateien. Et ginn Zäiten wou Dir e Lidd lauschtert an Dir hutt et gär. Wien mengt Dir séngt? Fir esou e Fall gëtt et eng Opnam vun den Nimm vun nogelauschtert Bunnen am Log Log.txt
Komplett Skriptcode

<?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);
}
?>

Wann Dir d'Lidder braucht fir an der Rei ze spillen, da musst Dir d'Linn an index.php kommentéieren

shuffle($files); //Random on

Fir Podcasts benotzen ech /var/www/podcast/ Et gëtt en anere Skript index.php. Et huet Podcast Track Erënnerung. Déi nächst Kéier wann Dir den Internetempfänger uschalt, gëtt déi nächst Podcast Streck gespillt. Et gëtt och e Log vun gespillte Bunnen.
Am counter.dat Fichier, Dir kënnt d'Streck Zuel uginn an Podcast playback fänkt vun et.

Schreift Parser fir automatesch Erofluede vu Podcasts. Et hëlt déi lescht 4 Gleiser vun RSS an download hinnen. All dëst funktionnéiert super op engem Smartphone, IPTV Set-Top Box oder an engem Browser.

Deen anere Moien ass et mir opgefall datt et flott wier d'Playback Positioun op enger Streck ze erënneren. Awer ech weess nach net wéi ech dat an PHP maachen.

De Skript kann erofgeluede ginn github.com/iwsys/IWScast

Source: will.com

Setzt e Commentaire