<?php
class MinikaGoStreamFetcher {
private const SECURE_URL = 'https://securevideotoken.tmgrup.com.tr/webtv/secure?401424&url=https%3A%2F%2Ftrkvz.daioncdn.net %2Fminikago%2Fminikago.m3u8%3Fapp%3Dweb%26ce%3D3';
private const BASE_URL = 'https://trkvz.daioncdn.net/minikago/'; // M3U8 dosyasındaki yolları tam URL'ye dönüştürmek için temel URL
private const HEADERS = [
'Origin: [Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir.] Kayıt Olmak İçin Tıklayınız..',
'Referer: [Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir.] Kayıt Olmak İçin Tıklayınız..',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
];
public function fetchStream() {
$secureResponse = $this->makeRequest(self::SECURE_URL);
$jsonData = json_decode($secureResponse, true);
if (!$this->isSuccess($jsonData)) {
http_response_code(500);
echo 'Error fetching the stream URL.';
return;
}
$m3u8Content = $this->makeRequest($jsonData['Url']);
$processedContent = $this->processM3U8Content($m3u8Content);
header('Content-Type: application/vnd.apple.mpegurl');
echo $processedContent;
}
private function makeRequest(string $url): string {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, self::HEADERS);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
private function isSuccess(array $data): bool {
return isset($data['Success']) && $data['Success'] === true;
}
private function processM3U8Content(string $content): string {
$lines = explode("\n", $content);
foreach ($lines as &$line) {
if (preg_match('/^(minikago_\d+p\.m3u8\?.*)$/', $line, $matches)) {
$line = self::BASE_URL . $matches[1];
}
}
return implode("\n", $lines);
}
}
$fetcher = new MinikaGoStreamFetcher();
$fetcher->fetchStream();
?>