no cover -  

Jak zpracovat JSON API data rádií

Comments · 1155 Views

Jelikož vím, že služby BeatZone využívají i programátoři začátečníci a chtějí mít na svém webu informace o jejich rádiu, tak se v tomto článku podíváme na to, jak zpracovat JSON data rádií z BeatZone.

URL adresu daného API naleznete vždy v nastavení serveru. Žebříček je vyhodnocován na základě odehraných skladeb za poslední týden. v Playlistu jsou k dispozici data za posledních sedum dní.

 

Příklad url žebříčku IceCast:
https://api.beatzone.cz/radio/chart.php?conf=ic&port=8130&sid=awesome192.mp3&limit=20

Příklad url žebříčku SHOUTcast:
https://api.beatzone.cz/radio/chart.php?conf=sc&ip=89.221.210.76&port=7100&sid=1&limit=20

Příklad url playlistu IceCast:
https://api.beatzone.cz/radio/playlist.php?conf=ic&port=8130&sid=awesome192.mp3&date=&limit=all

Příklad url playlistu SHOUTcast:
https://api.beatzone.cz/radio/playlist.php?conf=sc&ip=89.221.210.76&port=7100&sid=1&date=&limit=all

Příklad url informací o rádiu IceCast:
https://cast.beatzone.cz/api/nowplaying/37

Příklad url informací o rádiu SHOUTcast:
http://beatzone.cz:10862/statistics?json=1

 

Parametry:

  • conf (ic = IceCast, sc = SHOUTcast)
  • port (port serveru)
  • sid (SHOUTcast = sid, IceCast = Mount)
  • limit (maximální limit načtených záznamů, all = všechny)
  • date (datum ve formátu RRRR-MM-DD. Pokud není uvedeno, zobrazuje aktuální datum. Maximálně sedum dní zpět.)

 

Ukázková odpověď serveru (žebříček, playlist):

{chart}

  {0}

    {track}Interpret - Skladba{/track}
    {playedat}1604152435{/playedat}
    {listeners}12{/listeners}

  {1}

    {track}Interpret2 - Skladba2{/track}
    {playedat}1604154410{/playedat}
    {listeners}16{/listeners}

...

{/chart}

 

Ukázkový PHP kód zpracování žebříčku:

<?php
$url="https://api.beatzone.cz/radio/chart.php?conf=ic&port=8130&sid=awesome192.mp3&limit=20";
$json=json_decode(file_get_contents($url));
 
foreach($json->chart as $jsonData){
  echo $jsonData->rank;
  echo $jsonData->playedat;
  echo $jsonData->track;
  echo $jsonData->listeners;
}
?>

Ukázkový PHP kód zpracování playlistu:

<?php
$url="https://api.beatzone.cz/radio/playlist.php?conf=ic&port=8130&sid=awesome192.mp3";
$json=json_decode(file_get_contents($url));
 
foreach($json->playlist as $jsonData){
  echo $jsonData->playedat;
  echo $jsonData->track;
  echo $jsonData->listeners;
}
?>

Ukázkové zpracování playlistu na webu:

<?php
$url="https://api.beatzone.cz/radio/playlist.php?conf=ic&port=8130&sid=awesome192.mp3";
$json=json_decode(file_get_contents($url));
 
foreach($json->playlist as $jsonData){
  echo "<p>".StrFTime("%H:%M:%S",$jsonData->playedat).": ".$jsonData->track." (".$jsonData->listeners." posluchacu)</p>";
}
?>

 

Zpracování zpětného data a API URL:

<?php
$day = strtotime("-2 day");
$date = date("Y-m-d",$day);
?>

https://api.beatzone.cz/radio/playlist.php?conf=ic&port=8130&sid=awesome192.mp3&date=<?php echo $date; ?>&limit=all

V případě že dnes je 5.11.2020, výsledek bude 2020-11-03. Script poté vypíše playlist, který byl odehrán 3.11.2020. V případě BeatZone API script vypíše playlist až 7 dní zpětně.
Comments
VAMBI studio 2 yrs

takže prakticky takto:

<?php
$url="https://api.beatzone.cz/radio/playlist.php?conf=ic&port=8130&sid=awesome192.mp3";
$json=json_decode(file_get_contents($url));
foreach($json->playlist as $jsonData){
echo '<div class="cas"> '.StrFTime("%H:%M:%S", $jsonData->playedat).'</div>';
echo '<div class="kapela"> '.$jsonData->track.'</div>';
echo '<hr>';
}
?>
------------------------------------------
ukázka:
http://jvstudio.cz/skripty/playlist_awesome.php