ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
7   •   Посмотреть все темы

Передача кирилической информации о треке в TuneIn

 

39
dkova @dkova
Добрый день. У меня есть icecast сервер. Я хочу передавать информацию об играющем треке в tunein. Написал такой скрипт:
  1.  
  2. <?php
  3. $file = file("/var/log/icecast2/playlist.log");
  4. $file_array = $file;
  5. $far = array_slice($file, -1);
  6. $far = array_reverse($far);
  7. foreach ($far as $arr1 => $arr2){
  8. $elem = explode('|', $arr2);
  9. $song = $elem[3];
  10. $infos_artist = explode(' - ', $song);
  11. $infos_artist[0] = urlencode(trim($infos_artist[0]));
  12. $infos_artist[1] = urlencode(trim($infos_artist[1]));
  13. $partnerId = "1";
  14. $partnerKey = "1";
  15. $stationId = "1";
  16. $artist_tunein = str_replace(' ','+', $infos_artist[0]);
  17. $title_tunein = str_replace(' ','+', $infos_artist[1]);
  18. $commercial = false;
  19. if (($infos_artist[0] == "HCore+FM") || ($infos_artist[0] == "Promo")) $commercial = true;
  20. $url_tunein = "http://air.radiotime.com/Playing.ashx?partnerId=".$partnerId."&partnerKey=".$partnerKey."&id=".$stationId."&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial;
  21. $ch = curl_init();
  22. curl_setopt($ch, CURLOPT_URL,$url_tunein);
  23. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  24. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  25. $data = curl_exec($ch);
  26. $server_output = simplexml_load_string($data);
  27. curl_close($ch);
  28. ?>

Но именно русские песни он не передаёт. Какое может быть решение? Заранее спасибо.

0
382
Grigorij @gyurgin_1
В начале скрипта
  1. header('Content-type: text/html; charset=UTF-8');

Ну и заменить
  1. $data = utf8_decode(curl_exec($ch));

Попробуйте, может и прокатит. Вобще конечно зверский способ - парсить логи, не забывайте: отсылать информацию для каждого трека можно только один раз.

0
39
dkova @dkova
gyurgin_1 пишет:

В начале скрипта
  1. header('Content-type: text/html; charset=UTF-8');

Ну и заменить
  1. $data = utf8_decode(curl_exec($ch));

Попробуйте, может и прокатит. Вобще конечно зверский способ - парсить логи, не забывайте: отсылать информацию для каждого трека можно только один раз.


У меня уже 3 недели каждые 15 сек отправляет, всё нормально)

Не работает

Отредактировано dkova - 07.06.2015
0
382
Grigorij @gyurgin_1
Ну понятно что работает, но наглеть все же не рекомендую, правила есть правила. Попробуйте из $url_tunein вот это
  1. ."&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial
убрать и отправить данные вот таким
  1. curl_setopt($ch, CURLOPT_URL, $url_tunein);
  2. curl_setopt($ch, CURLOPT_HEADER, 1);
  3. curl_setopt($ch, CURLOPT_POST, 1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, "&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial);
способом.
И смотрите что прилетает в ответ, помогает иногда))

0
39
dkova @dkova
Тестировал таким же способом треки с умляутами - ромбами отображаются.

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.