Merhaba,
[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir.] Kayıt Olmak İçin Tıklayınız.. sitesi için bir .php yapmaya çalışıyorum. Yaptığım PHP herhangi bir kanalın .m3u8 URL'sini çekmek için kullanılıyor. Bu PHP'de ise cartoon network'ü denedim. Ancak bir türlü başarılı olmadaım. Mümkünse, bilen arkadaşlar yardıncı olabilirler mi? Şimdiden çok teşekkür ederim. Saygılar.
PHP:
<?php
function fetchCurlData($url, $headers = [], $cookieFile = null) {
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_COOKIEFILE => $cookieFile,
CURLOPT_COOKIEJAR => $cookieFile,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
]);
$response = curl_exec($ch);
$error = curl_error($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($error || $httpCode !== 200) {
throw new Exception("cURL Error: $error, HTTP Code: $httpCode");
}
return $response;
}
try {
// Çerez dosyası
$cookieFile = sys_get_temp_dir() . '/cookie.txt';
// 1. Geo bilgisi alma
$geoUrl = 'https://m.canlitv.direct/geolive.php?kanal=cartoon-network-hd&security=60a175775f11f55b63331c1ed401b510';
$geoHeaders = [
'Referer:
[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir.] Kayıt Olmak İçin Tıklayınız..',
'Upgrade-Insecure-Requests: 1',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.9',
];
$geoResponse = fetchCurlData($geoUrl, $geoHeaders, $cookieFile);
preg_match('/ulke\s*=\s*"([^"]+)"/', $geoResponse, $geoMatch);
if (empty($geoMatch[1])) {
throw new Exception("Ülke bilgisi alınamadı.");
}
$ulke = $geoMatch[1];
// 2. Kanallar URL'sini kullanarak .m3u8 linkini alma
$channelUrl = "https://m.canlitv.direct/kanallar.php?kanal=cartoon-network-hd&ulke=$ulke";
$channelHeaders = [
'Referer: ' . $geoUrl,
'Upgrade-Insecure-Requests: 1',
'Cookie: GID_EO=ebe021079e5a3c4f42ca6119eab92633',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.9',
];
$channelResponse = fetchCurlData($channelUrl, $channelHeaders, $cookieFile);
preg_match('/file\s*:\s*\'([^\']+\.m3u8.*?)\'/', $channelResponse, $m3u8Match);
if (empty($m3u8Match[1])) {
throw new Exception(".m3u8 URL alınamadı.");
}
$m3u8Url = $m3u8Match[1];
// 3. Sonuç
echo "M3U8 URL: $m3u8Url\n";
} catch (Exception $e) {
echo "Hata: " . $e->getMessage() . "\n";
}
?>
cookies.txt:
.m.canlitv.direct TRUE / FALSE 0 GID_EO ebe021079e5a3c4f42ca6119eab92633
.m.canlitv.direct TRUE / FALSE 0 _ga GA1.1.1898792760.1733303957
.m.canlitv.direct TRUE / FALSE 0 _ga_67RPTHF38F GS1.1.1733303957.1.0.1733303957.0.0.0