ನಿಮ್ಮ ಸ್ವಂತ ಇಂಟರ್ನೆಟ್ ರೇಡಿಯೋ

ನಮ್ಮಲ್ಲಿ ಹಲವರು ಬೆಳಿಗ್ಗೆ ರೇಡಿಯೋ ಕೇಳಲು ಇಷ್ಟಪಡುತ್ತಾರೆ. ತದನಂತರ ಒಂದು ಉತ್ತಮ ಬೆಳಿಗ್ಗೆ ನಾನು ಸ್ಥಳೀಯ ಎಫ್‌ಎಂ ರೇಡಿಯೊ ಕೇಂದ್ರಗಳನ್ನು ಕೇಳಲು ಬಯಸುವುದಿಲ್ಲ ಎಂದು ಅರಿತುಕೊಂಡೆ. ಆಸಕ್ತಿಯಿಲ್ಲ. ಆದರೆ ಅಭ್ಯಾಸವು ಹಾನಿಕಾರಕವಾಗಿದೆ. ಮತ್ತು ನಾನು FM ರಿಸೀವರ್ ಅನ್ನು ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್ನೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ನಿರ್ಧರಿಸಿದೆ. ನಾನು ತ್ವರಿತವಾಗಿ Aliexpress ನಲ್ಲಿ ಭಾಗಗಳನ್ನು ಖರೀದಿಸಿದೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್ ಅನ್ನು ಜೋಡಿಸಿದೆ.

ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್ ಬಗ್ಗೆ. ರಿಸೀವರ್‌ನ ಹೃದಯವು ESP32 ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ ಆಗಿದೆ. KA-ರೇಡಿಯೊದಿಂದ ಫರ್ಮ್‌ವೇರ್. ಭಾಗಗಳು ನನಗೆ $ 12 ವೆಚ್ಚವಾಗಿದೆ. ಜೋಡಣೆಯ ಸುಲಭತೆಯು ಒಂದೆರಡು ದಿನಗಳಲ್ಲಿ ಅದನ್ನು ಜೋಡಿಸಲು ನನಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು. ಉತ್ತಮವಾಗಿ ಮತ್ತು ಸ್ಥಿರವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. 10 ತಿಂಗಳ ಕೆಲಸದಲ್ಲಿ, ಅದು ಕೇವಲ ಒಂದೆರಡು ಬಾರಿ ಹೆಪ್ಪುಗಟ್ಟಿತು, ಮತ್ತು ನಂತರ ನನ್ನ ಪ್ರಯೋಗಗಳಿಂದಾಗಿ. ಒಂದು ಅನುಕೂಲಕರ ಮತ್ತು ಚೆನ್ನಾಗಿ ಯೋಚಿಸಿದ ಇಂಟರ್ಫೇಸ್ ನಿಮಗೆ ಸ್ಮಾರ್ಟ್ಫೋನ್ ಮತ್ತು ಕಂಪ್ಯೂಟರ್ನಿಂದ ನಿಯಂತ್ರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಒಂದು ಪದದಲ್ಲಿ, ಇದು ಅದ್ಭುತ ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್ ಆಗಿದೆ.

ಎಲ್ಲವೂ ಸರಿಯಾಗಿದೆ. ಆದರೆ ಒಂದು ಮುಂಜಾನೆ ನಾನು ಹತ್ತಾರು ರೇಡಿಯೋ ಕೇಂದ್ರಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದ್ದರೂ, ಯಾವುದೇ ಆಸಕ್ತಿದಾಯಕ ಕೇಂದ್ರಗಳಿಲ್ಲ ಎಂಬ ತೀರ್ಮಾನಕ್ಕೆ ಬಂದೆ. ನಿರೂಪಕರ ಜಾಹಿರಾತು ಮತ್ತು ಮೂರ್ಖ ಹಾಸ್ಯಗಳಿಂದ ನಾನು ಸಿಟ್ಟಾಗಿದ್ದೇನೆ. ಒಂದು ನಿಲ್ದಾಣದಿಂದ ಮತ್ತೊಂದು ನಿಲ್ದಾಣಕ್ಕೆ ನಿರಂತರವಾಗಿ ಜಿಗಿಯುವುದು. ನಾನು Spotify ಮತ್ತು Yandex.Music ಅನ್ನು ಇಷ್ಟಪಡುತ್ತೇನೆ. ಆದರೆ ದುಃಖದ ವಿಷಯವೆಂದರೆ ಅವರು ನನ್ನ ದೇಶದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿಲ್ಲ. ಮತ್ತು ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್ ಮೂಲಕ ನಾನು ಅವರನ್ನು ಕೇಳಲು ಬಯಸುತ್ತೇನೆ.

ನನಗೆ ನನ್ನ ಬಾಲ್ಯ ನೆನಪಾಯಿತು. ನನ್ನ ಬಳಿ ಟೇಪ್ ರೆಕಾರ್ಡರ್ ಮತ್ತು ಎರಡು ಡಜನ್ ಕ್ಯಾಸೆಟ್‌ಗಳಿದ್ದವು. ಗೆಳೆಯರೊಂದಿಗೆ ಕ್ಯಾಸೆಟ್ ವಿನಿಮಯ ಮಾಡಿಕೊಂಡೆ. ಮತ್ತು ಇದು ಅದ್ಭುತವಾಗಿತ್ತು. ನನ್ನ ಆಡಿಯೊ ಆರ್ಕೈವ್‌ಗಳನ್ನು ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್‌ಗೆ ಮಾತ್ರ ಸ್ಟ್ರೀಮ್ ಮಾಡಬೇಕೆಂದು ನಾನು ನಿರ್ಧರಿಸಿದೆ. ಸಹಜವಾಗಿ, ಸ್ಪೀಕರ್‌ಗಳಿಗೆ ಆಡಿಯೊ ಪ್ಲೇಯರ್ ಅಥವಾ ಐಪಾಡ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಲು ಒಂದು ಆಯ್ಕೆ ಇದೆ ಮತ್ತು ಚಿಂತಿಸಬೇಡಿ. ಆದರೆ ಇದು ನಮ್ಮ ಮಾರ್ಗವಲ್ಲ! ಕನೆಕ್ಟರ್‌ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವುದನ್ನು ನಾನು ದ್ವೇಷಿಸುತ್ತೇನೆ)

ನಾನು ಸಿದ್ಧ ಪರಿಹಾರಗಳನ್ನು ಹುಡುಕಲು ಪ್ರಾರಂಭಿಸಿದೆ. Radio-Tochka.com ನಿಂದ ನಿಮ್ಮ ಸ್ವಂತ ಇಂಟರ್ನೆಟ್ ರೇಡಿಯೊವನ್ನು ರಚಿಸಲು ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ಪ್ರಸ್ತಾಪವಿದೆ. ನಾನು ಅದನ್ನು 5 ದಿನಗಳವರೆಗೆ ಪರೀಕ್ಷಿಸಿದೆ. ನನ್ನ ಇಂಟರ್ನೆಟ್ ರಿಸೀವರ್‌ನೊಂದಿಗೆ ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡಿದೆ. ಆದರೆ ಬೆಲೆ ನನಗೆ ಆಕರ್ಷಕವಾಗಿರಲಿಲ್ಲ. ನಾನು ಈ ಆಯ್ಕೆಯನ್ನು ನಿರಾಕರಿಸಿದೆ.

ನಾನು 10 GB ಹೋಸ್ಟಿಂಗ್ ಪಾವತಿಸಿದ್ದೇನೆ. ನನ್ನ mp3 ಫೈಲ್‌ಗಳ ಆಡಿಯೊ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡುವ ಯಾವುದಾದರೂ ಒಂದು ಸ್ಕ್ರಿಪ್ಟ್ ಬರೆಯಲು ನಾನು ನಿರ್ಧರಿಸಿದೆ. ನಾನು ಅದನ್ನು PHP ನಲ್ಲಿ ಬರೆಯಲು ನಿರ್ಧರಿಸಿದೆ. ನಾನು ಅದನ್ನು ಬೇಗನೆ ಬರೆದು ಅದನ್ನು ಪ್ರಾರಂಭಿಸಿದೆ. ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡಿದೆ. ಇದು ತಂಪಾಗಿತ್ತು! ಆದರೆ ಒಂದೆರಡು ದಿನಗಳ ನಂತರ ನಾನು ಹೋಸ್ಟಿಂಗ್ ಆಡಳಿತದಿಂದ ಪತ್ರವನ್ನು ಸ್ವೀಕರಿಸಿದೆ. ಪ್ರೊಸೆಸರ್ ನಿಮಿಷಗಳ ಮಿತಿಯನ್ನು ಮೀರಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಸುಂಕಕ್ಕೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ ಎಂದು ಅದು ಹೇಳಿದೆ. ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಅಳಿಸಬೇಕು ಮತ್ತು ಈ ಆಯ್ಕೆಯನ್ನು ಕೈಬಿಡಬೇಕು.

ಅದು ಹೇಗೆ ಸಂಭವಿಸಿತು? ನಾನು ರೇಡಿಯೋ ಇಲ್ಲದೆ ಬದುಕಲು ಸಾಧ್ಯವಿಲ್ಲ. ಬೇರೊಬ್ಬರ ಹೋಸ್ಟಿಂಗ್‌ನಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಅವರು ನಿಮಗೆ ಅನುಮತಿಸದಿದ್ದರೆ, ನಿಮಗೆ ನಿಮ್ಮ ಸ್ವಂತ ಸರ್ವರ್ ಅಗತ್ಯವಿದೆ. ನನ್ನ ಆತ್ಮ ಬಯಸಿದ್ದನ್ನು ನಾನು ಎಲ್ಲಿ ಮಾಡುತ್ತೇನೆ.

ನನ್ನ ಬಳಿ ಬ್ಯಾಟರಿ ಇಲ್ಲದ ಪುರಾತನ ನೆಟ್‌ಬುಕ್ ಇದೆ (CPU - 900 MHz, RAM - 512 Mb). ಮುದುಕನಿಗೆ ಈಗಾಗಲೇ 11 ವರ್ಷ. ಸರ್ವರ್‌ಗೆ ಸೂಕ್ತವಾಗಿದೆ. ನಾನು ಉಬುಂಟು 12.04 ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇನೆ. ನಂತರ ನಾನು Apache2 ಮತ್ತು php 5.3, samba ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇನೆ. ನನ್ನ ಸರ್ವರ್ ಸಿದ್ಧವಾಗಿದೆ.

ನಾನು ಐಸ್‌ಕಾಸ್ಟ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸಲು ನಿರ್ಧರಿಸಿದೆ. ನಾನು ಅದರ ಮೇಲೆ ಸಾಕಷ್ಟು ಮನ ಓದಿದ್ದೇನೆ. ಆದರೆ ನನಗೆ ಕಷ್ಟವಾಯಿತು. ಮತ್ತು ನಾನು PHP ಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ ಆಯ್ಕೆಗೆ ಮರಳಲು ನಿರ್ಧರಿಸಿದೆ. ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಒಂದೆರಡು ದಿನಗಳು ಕಳೆದವು. ಮತ್ತು ಎಲ್ಲವೂ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡಿದೆ. ನಂತರ ನಾನು ಪಾಡ್‌ಕಾಸ್ಟ್‌ಗಳನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸ್ಕ್ರಿಪ್ಟ್ ಕೂಡ ಬರೆದೆ. ಮತ್ತು ನಾನು ಅದನ್ನು ತುಂಬಾ ಇಷ್ಟಪಟ್ಟೆ, ನಾನು ಸಣ್ಣ ಯೋಜನೆಯನ್ನು ಮಾಡಲು ನಿರ್ಧರಿಸಿದೆ. ಇದನ್ನು IWScast ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಗಿಥಬ್‌ನಲ್ಲಿ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ.

ನಿಮ್ಮ ಸ್ವಂತ ಇಂಟರ್ನೆಟ್ ರೇಡಿಯೋ

ಎಲ್ಲವೂ ತುಂಬಾ ಸರಳವಾಗಿದೆ. ನಾನು 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 ಫೈಲ್‌ನಲ್ಲಿ, ನೀವು ಟ್ರ್ಯಾಕ್ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ಮತ್ತು ಪಾಡ್‌ಕ್ಯಾಸ್ಟ್ ಪ್ಲೇಬ್ಯಾಕ್ ಅದರಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಪಾಡ್‌ಕಾಸ್ಟ್‌ಗಳ ಸ್ವಯಂಚಾಲಿತ ಡೌನ್‌ಲೋಡ್‌ಗಾಗಿ ಪಾರ್ಸರ್‌ಗಳನ್ನು ಬರೆದಿದ್ದಾರೆ. ಇದು RSS ನಿಂದ ಇತ್ತೀಚಿನ 4 ಟ್ರ್ಯಾಕ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಸ್ಮಾರ್ಟ್‌ಫೋನ್, ಐಪಿಟಿವಿ ಸೆಟ್-ಟಾಪ್ ಬಾಕ್ಸ್ ಅಥವಾ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಇದೆಲ್ಲವೂ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಮರುದಿನ ಬೆಳಿಗ್ಗೆ ಟ್ರ್ಯಾಕ್‌ನಲ್ಲಿ ಪ್ಲೇಬ್ಯಾಕ್ ಸ್ಥಾನವನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು ಉತ್ತಮ ಎಂದು ನನಗೆ ಸಂಭವಿಸಿದೆ. ಆದರೆ PHP ಯಲ್ಲಿ ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ನನಗೆ ಇನ್ನೂ ತಿಳಿದಿಲ್ಲ.

ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು github.com/iwsys/IWScast

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ