Votre radio Internet

Beaucoup d'entre nous aiment écouter la radio le matin. Et un beau matin, j'ai réalisé que je ne voulais plus écouter les stations FM locales. Ce n'était pas intéressant. Mais cette habitude s'est révélée nuisible. J'ai donc décidé de remplacer le récepteur FM par un récepteur Internet. J'ai rapidement acheté des composants sur AliExpress et assemblé un récepteur Internet.

À propos du rĂ©cepteur Internet. Le cƓur du rĂ©cepteur est un microcontrĂŽleur ESP32. Le firmware provient de KA-radio. Le coĂ»t des composants m'a coĂ»tĂ© 12 dollars. La simplicitĂ© de l'assemblage m'a permis de le fabriquer en quelques jours. Il fonctionne bien et de maniĂšre stable. En dix mois d'utilisation, il n'a gelĂ© que quelques fois, et ce uniquement Ă  cause de mes expĂ©riences. Son interface conviviale et bien pensĂ©e permet de le contrĂŽler depuis un smartphone ou un ordinateur. En un mot, c'est un excellent rĂ©cepteur Internet.

Tout est super. Mais un matin, je suis arrivĂ© Ă  la conclusion que, mĂȘme avec l'accĂšs Ă  des dizaines de milliers de stations de radio, il n'y avait pas de stations intĂ©ressantes. La publicitĂ© et les blagues stupides des animateurs m'agacaient. Je sautais constamment d'une station Ă  l'autre. J'aime Spotify et Yandex.Music. Mais la triste rĂ©alitĂ© est qu'ils ne fonctionnent pas dans mon pays. J'aimerais les Ă©couter via mon rĂ©cepteur Internet.

Je me suis souvenu de mon enfance. J'avais un magnĂ©tophone et deux douzaines de cassettes. J'Ă©changeais les cassettes avec mes amis. C'Ă©tait merveilleux. J'ai dĂ©cidĂ© de crĂ©er un streaming pour mes archives audio uniquement pour le rĂ©cepteur Internet. Bien sĂ»r, il est possible de brancher un lecteur audio ou un iPod aux enceintes et de ne pas se casser la tĂȘte. Mais ce n'est pas notre chemin ! Je dĂ©teste brancher des connecteurs)

J'ai commencĂ© Ă  chercher des solutions prĂȘtes Ă  l'emploi. Le marchĂ© propose de crĂ©er sa propre radio Internet via Radio-Tochka.com. J'ai testĂ© pendant 5 jours. Tout fonctionnait parfaitement avec mon rĂ©cepteur Internet. Mais le prix ne m'a pas semblĂ© attractif. J'ai donc abandonnĂ© cette option.

J'ai un hébergement payé de 10 Go. J'ai décidé d'écrire un script sur quelque chose qui permettrait le streaming audio de mes fichiers mp3. J'ai opté pour PHP. J'ai rapidement écrit et lancé le script. Tout a fonctionné. C'était super ! Mais au bout de quelques jours, j'ai reçu un e-mail de l'administration de l'hébergement. Il indiquait que j'avais dépassé la limite des minutes processeur et que je devais passer à un tarif supérieur. J'ai dû supprimer le script et renoncer à cette option.

Comment ça se fait ? Je ne peux pas vivre sans radio. Si je ne peux pas faire tourner le script sur un hĂ©bergement tiers, cela signifie qu'il me faut mon propre serveur. OĂč je pourrai faire ce que mon Ăąme dĂ©sire.

J'ai un vieux netbook qui traĂźne sans batterie (CPU — 900 MHz, RAM — 512 Mo). Ce petit vieux a dĂ©jĂ  11 ans. Pour un serveur, il conviendrait parfaitement. J'installe Ubuntu 12.04. Ensuite, j'installe Apache2 et PHP 5.3, Samba. Mon serveur est prĂȘt.

J'ai décidé d'essayer Icecast. J'ai beaucoup lu de manuels à son sujet. Mais il m'a semblé complexe. J'ai donc décidé de revenir au script PHP. J'ai passé quelques jours à déboguer ce script. Et tout a bien fonctionné. Puis j'ai également écrit un script pour la lecture de podcasts. Cela m'a tellement plu que j'ai décidé de créer un petit projet. Je l'ai nommé IWScast. Je l'ai mis sur github..

Votre radio Internet

C'est trÚs simple. Je copie les fichiers mp3 et le fichier index.php dans le dossier racine d'Apache /var/www/ et ils sont lus de maniÚre aléatoire. Environ 300 chansons suffisent pour toute la journée.
Le fichier index.php, c'est le script lui-mĂȘme. Le script lit tous les noms des fichiers mp3 dans le rĂ©pertoire dans un tableau. Il crĂ©e un flux audio et y insĂšre les noms des fichiers mp3. Il arrive parfois que vous Ă©coutiez une chanson que vous aimez. Vous pensez, qui chante cela ? Pour cela, il y a un enregistrement des titres des morceaux Ă©coutĂ©s dans le fichier log.txt.
Le code du script en entier.

<?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: votre nom");
header("icy-description: votre description"); 
$files = glob("*.mp3");
shuffle($files); // Aléatoire activé

for ($x=0; $x array(
       'method' =>'GET',
       'header' =>'Icy-MetaData: 1',
       'header' =>"Accept-language: enrn"
       )
     )
   );
// Enregistrer dans le log 
  $fl = $filePath; 
  $log = date('Y-m-d H:i:s') . ' Chanson - ' . $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);
}
?>

Si vous voulez que les morceaux soient joués dans l'ordre, il faut commenter la ligne dans index.php.

shuffle($files); // Aléatoire activé

Pour les podcasts, j'utilise /var/www/podcast/. Il y a un autre script index.php. Il mémorise les morceaux des podcasts. Lors de la prochaine activation du récepteur internet, le morceau suivant du podcast sera joué. Il y a aussi un log des morceaux joués.
Dans le fichier counter.dat, vous pouvez indiquer le numéro du morceau à partir duquel commencera la lecture des podcasts.

J'ai écrit des parseurs pour télécharger automatiquement des podcasts. Il prend les 4 derniers morceaux à partir du RSS et les télécharge. Tout cela fonctionne parfaitement sur smartphone, box IPTV et dans le navigateur.

Récemment, j'ai eu une idée le matin, ce serait formidable de mémoriser la position de lecture dans le morceau. Mais je ne sais pas encore comment le faire en PHP.

Le script est téléchargeable github.com/iwsys/IWScast

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster