From c891d77ae13008c9acbfc02188679fb30b58a53d Mon Sep 17 00:00:00 2001 From: AyrisAI Date: Tue, 18 Aug 2026 11:06:30 +0300 Subject: [PATCH] fix: proxy Anizium video sources to fix CORS playback errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit videoSourcesData (quality/dub failover list) wasn't routed through stream.proxy, so switching quality/dub hit Anizium's CDN directly and got blocked by CORS. aniziumserver.sbs was also wrongly whitelisted as CORS-safe in isOwn — it isn't, per browser console evidence. Co-Authored-By: Claude Sonnet 5 --- app/Http/Controllers/Frontend/PlayerController.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Frontend/PlayerController.php b/app/Http/Controllers/Frontend/PlayerController.php index ad55041..e802a0c 100644 --- a/app/Http/Controllers/Frontend/PlayerController.php +++ b/app/Http/Controllers/Frontend/PlayerController.php @@ -89,9 +89,8 @@ class PlayerController extends Controller $ep->video_url = BunnyCdnSigner::sign($ep->video_url); // Proxy all external HLS streams through our server (CORS + SSL bypass). - // anizium.co + aniziumserver.* CDN'leri doğrudan yükle (tarayıcı üzerinden). - $isOwn = fn(?string $u) => !$u || str_contains($u, 'b-cdn.net') || str_contains($u, 'animexe.com') - || str_contains($u, 'anizium.co') || str_contains($u, 'aniziumserver.sbs'); + // aniziumserver.* (sbs/site) CORS izni vermiyor, bu yüzden hepsi proxy'den geçmeli. + $isOwn = fn(?string $u) => !$u || str_contains($u, 'b-cdn.net') || str_contains($u, 'animexe.com'); if ($ep->m3u8_url && !$isOwn($ep->m3u8_url)) { $ep->m3u8_url = route("stream.proxy", ["u" => base64_encode((string) $ep->m3u8_url)]); } @@ -127,6 +126,12 @@ class PlayerController extends Controller 'is_hevc' => (bool) $default->is_hevc, ]; }) + ->map(function ($item) use ($isOwn) { + if (!empty($item['url']) && !$isOwn($item['url'])) { + $item['url'] = route("stream.proxy", ["u" => base64_encode((string) $item['url'])]); + } + return $item; + }) ->sortBy(function ($item) { $isAnizium = ($item['source'] === 'anizium'); $q = strtolower($item['quality'] ?? '');