diff --git a/metadata.php b/metadata.php deleted file mode 100644 index 9057a43..0000000 --- a/metadata.php +++ /dev/null @@ -1,69 +0,0 @@ - 'Ungültige oder fehlende URL']); - exit; -} - -// WICHTIG: Die Header müssen Icy-MetaData enthalten, sonst senden viele Server gar nichts! -$opts = [ - "http" => [ - "method" => "GET", - "header" => "Icy-MetaData: 1\r\n", - "timeout" => 5, - "user_agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) RadioMetadataProxy/1.0" - ] -]; - -$context = stream_context_create($opts); -$fp = @fopen($url, 'r', false, $context); - -if (!$fp) { - echo json_encode(['error' => 'Stream konnte nicht geöffnet werden']); - exit; -} - -// Puffer erhöhen: Wir lesen bis zu 192 KB, um auch langsame Metadaten zu finden -$max_read = 196608; -$data = ''; -$read_size = 0; - -while (!feof($fp) && $read_size < $max_read) { - $chunk = fread($fp, 8192); - if ($chunk === false) break; - $data .= $chunk; - $read_size += strlen($chunk); - - // Vorzeitig abbrechen, wenn der Titel gefunden wurde - if (strpos($data, 'StreamTitle=') !== false) { - break; - } -} -fclose($fp); - -// Suche nach dem StreamTitle -if (preg_match("/StreamTitle='(.*?)';/", $data, $matches)) { - $title = trim($matches[1]); - - // UTF-8 Korrektur (falls der Sender ISO-8859-1 schickt) - if (!mb_check_encoding($title, 'UTF-8')) { - $title = utf8_encode($title); - } - - if (empty($title)) { - echo json_encode(['title' => null, 'status' => 'empty']); - } else { - echo json_encode(['title' => $title]); - } -} else { - echo json_encode(['title' => null, 'error' => 'Keine Metadaten gefunden']); -} \ No newline at end of file