Радиои интернетии шахсии шумо

Аксари мо субҳ гӯш кардани радиоро дӯст медорем. Ва он гоҳ як субҳи хуб ман фаҳмидам, ки ман намехоҳам радиоҳои маҳаллии FM-ро гӯш кунам. манфиатдор нест. Аммо ин одат зарарнок шуд. Ва ман тасмим гирифтам, ки қабулкунаки FM-ро бо қабулкунаки интернет иваз кунам. Ман зуд қисмҳоро аз Aliexpress харидам ва қабулкунаки интернетиро ҷамъ кардам.

Дар бораи қабулкунаки интернет. Қалби қабулкунанда микроконтроллери ESP32 мебошад. Прошивка аз радиои KA. Қисмҳо ба ман 12 доллар арзиш доранд. Осонии монтаж ба ман имкон дод, ки онро дар давоми якчанд руз васл кунам. Хуб ва устувор кор мекунад. Дар давоми 10 моҳи кор, он танҳо ду маротиба ях кард ва баъд танҳо аз сабаби таҷрибаҳои ман. Интерфейси қулай ва хуб андешидашуда ба шумо имкон медиҳад, ки аз смартфон ва компютер идора кунед. Ба ибораи дигар, ин як қабулкунаки аҷиби Интернет аст.

Ҳамааш хуб аст. Аммо як субҳи барвақт ман ба хулосае омадам, ки бо вуҷуди дастрасӣ ба даҳҳо ҳазор радиостансия, ягон мавҷҳои ҷолиб вуҷуд надорад. Рекламаву шӯхиҳои аблаҳии барандаҳо асабонӣ шудам. Пайваста аз як станция ба станцияи дигар чахидан. Ба ман Spotify ва Yandex.Music маъқул аст. Аммо таассуфовар он аст, ки онҳо дар кишвари ман кор намекунанд. Ва ман мехостам онҳоро тавассути қабулкунаки интернет гӯш кунам.

Ман айёми бачагии худро ба ёд овардам. Магнитофон ва ду дазор кассета доштам. Ман бо дӯстон кассетаҳоро иваз кардам. Ва он аҷиб буд. Ман қарор додам, ки ман бояд бойгонии аудиоии худро танҳо ба қабулкунаки интернет интиқол диҳам. Албатта, имкони пайваст кардани плеери аудио ё iPod ба баландгӯякҳо вуҷуд дорад ва хавотир нашавед. Аммо ин роҳи мо нест! Ман аз пайвасткунакҳо нафрат дорам)

Ман ба чустучуи роххои тайёр шуруъ кардам. Дар бозор пешниҳоди эҷоди радиои интернетии худ аз Radio-Tochka.com вуҷуд дорад. Ман онро 5 рӯз санҷидам. Ҳама чиз бо қабулкунаки интернетии ман хуб кор мекард. Аммо нарх барои ман ҷолиб набуд. Ман ин интихобро рад кардам.

Ман хостинги 10 ГБ пардохт кардам. Ман тасмим гирифтам, ки дар чизе скрипт нависам, ки ҷараёни аудиои файлҳои mp3-и маро ҷараён диҳад. Ман қарор додам, ки онро дар PHP нависам. Ман онро зуд навиштам ва онро оғоз кардам. Ҳама чиз кор кард. Ин хуб буд! Аммо пас аз чанд рӯз аз маъмурияти хостинг мактуб гирифтам. Дар он гуфта мешавад, ки лимити дақиқаҳои протсессор гузаштааст ва зарурати навсозӣ ба тарифи баландтар аст. Скрипт бояд нест карда шавад ва ин интихобро тарк карданд.

Ин чӣ гуна рӯй дод? Ман бе радио зиндагӣ карда наметавонам. Агар онҳо ба шумо иҷозат надиҳанд, ки скриптро дар хостинги ягон каси дигар иҷро кунед, пас шумо ба сервери худ ниёз доред. Дар куҷо ман он чизеро, ки ҷонам мехоҳад, иҷро кунам.

Ман як нетбуки қадимии бе батарея дорам (CPU - 900 МГс, RAM - 512 Мб). Пирамард аллакай 11-сола шудааст. Муносиб барои сервер. Ман Ubuntu 12.04 насб мекунам. Пас ман Apache2 ва php 5.3, samba -ро насб мекунам. Сервери ман омода аст.

Ман қарор додам, ки Icecast-ро санҷам. Ман дар бораи он мана бисьёр хондам. Аммо ба ман душвор буд. Ва ман қарор додам, ки ба вариант бо скрипти PHP баргардам. Барои ислоҳи ин скрипт чанд рӯз сарф шуд. Ва ҳама чиз хуб кор кард. Пас аз он ман барои навохтани подкастҳо скрипт низ навиштам. Ва он ба ман хеле писанд омад, ки тасмим гирифтам як лоиҳаи хурде анҷом диҳам. Онро IWScast номид. Дар github нашр шудааст.

Радиои интернетии шахсии шумо

Ҳама чиз хеле оддӣ аст. Ман файлҳои mp3 ва файли index.php-ро ба ҷузвдони решаи Apache /var/www/ нусхабардорӣ мекунам ва онҳо ба таври тасодуфӣ садо медиҳанд. Тақрибан 300 суруд тақрибан барои тамоми рӯз кифоя аст.
Файли index.php худи скрипт аст. Скрипт ҳамаи номҳои файлҳои MP3-ро дар директория ба массив мехонад. Ҷараёни аудио эҷод мекунад ва номҳои файлҳои MP3-ро иваз мекунад. Ҳолатҳое мешаванд, ки сурудро гӯш мекунеду ба шумо маъқул мешавад. Ба фикри шумо кӣ суруд мехонад? Барои чунин ҳолат, дар log.txt сабти номи сурудҳои гӯшшуда мавҷуд аст
Рамзи пурраи скрипт

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

Агар ба шумо лозим ояд, ки трекҳо бо тартиби навохта шаванд, пас шумо бояд сатрро дар index.php шарҳ диҳед

shuffle($files); //Random on

Барои подкастҳо ман /var/www/podcast/ -ро истифода мебарам, скрипти дигари index.php вуҷуд дорад. Он дорои ёддошти треки подкаст мебошад. Дафъаи дигар, ки шумо қабулкунаки интернетиро фаъол мекунед, треки навбатии подкаст садо медиҳад. Инчунин як сабти сурудҳои бозӣ мавҷуд аст.
Дар файли counter.dat, шумо метавонед рақами трекро муайян кунед ва бозикунии подкаст аз он оғоз мешавад.

Таҳлилгарон барои зеркашии автоматии подкастҳо навиштанд. Он 4 суруди охиринро аз RSS мегирад ва онҳоро зеркашӣ мекунад. Ҳамаи ин дар смартфон, приставкаи IPTV ё дар браузер аъло кор мекунад.

Субҳи дигар ба сарам омад, ки дар хотир нигоҳ доштани мавқеъи навозиш дар трек хеле хуб аст. Аммо ман ҳоло намедонам, ки ин корро дар PHP чӣ гуна иҷро кунам.

Скриптро зеркашӣ кардан мумкин аст github.com/iwsys/IWScast

Манбаъ: will.com

Илова Эзоҳ