fix(player,vtt): fix CORS proxy bypass on third-party streams and improve vtt-proxy resilience
This commit is contained in:
@@ -1941,8 +1941,7 @@ const IS_AUTH = {{ auth()->check() ? 'true' : 'false' }};
|
||||
})();
|
||||
|
||||
// CORS açık CDN'ler — doğrudan tarayıcıdan yükle (sunucu proxy YOK).
|
||||
// NOT: aniziumserver.sbs/site/com buradan bilerek çıkarıldı — CORS izni
|
||||
// vermiyorlar (browser console'da doğrulandı), proxy'den geçmeleri gerekiyor.
|
||||
// NOT: aniziumserver.sbs/site/com, tau-video, zappy-net vb. CORS izni vermediği için proxy'den geçmelidir.
|
||||
const DIRECT_CORS_HOSTS = [
|
||||
'anizium.co',
|
||||
'misakina.asia', 'misakina.cfd',
|
||||
@@ -1951,14 +1950,17 @@ const DIRECT_CORS_HOSTS = [
|
||||
'rhyzoku-2.asia', 'rhyzoku-4.asia',
|
||||
'kamadotanjiro.asia', 'uryuishida.asia',
|
||||
'tohru.icu', 'tohru.cyou',
|
||||
'zappy-net.store', 'pixel-quirk.shop', 'tau-video.xyz',
|
||||
];
|
||||
|
||||
// Referer gereken (CORS kapalı) CDN'ler için son çare sunucu proxy'si
|
||||
// Referer gereken (CORS kapalı) CDN'ler için sunucu proxy'si
|
||||
const KNOWN_REFS = {
|
||||
'aniziumserver.sbs': 'https://anizium.co/',
|
||||
'aniziumserver.site': 'https://anizium.co/',
|
||||
'aniziumserver.com': 'https://anizium.co/',
|
||||
'tau-video.xyz': 'https://anizium.co/',
|
||||
'zappy-net.store': 'https://anizium.co/',
|
||||
'zappy-net.online': 'https://anizium.co/',
|
||||
'pixel-quirk.shop': 'https://anizium.co/',
|
||||
};
|
||||
|
||||
// Sunucu-proxy'sine sarılmış URL'yi çöz (gerçek CDN URL'sini çıkar)
|
||||
@@ -1975,7 +1977,6 @@ function _unwrapProxy(url) {
|
||||
function proxyUrl(url) {
|
||||
if (!url) return url;
|
||||
try {
|
||||
// Sunucu proxy'sine sarılmışsa aç — doğrudan CDN'e gitmeyi dene
|
||||
var wrapped = url.indexOf('/stream/proxy') !== -1
|
||||
|| url.indexOf('/hls-proxy.php') !== -1
|
||||
|| url.indexOf('/cf-proxy') !== -1;
|
||||
@@ -1990,13 +1991,12 @@ function proxyUrl(url) {
|
||||
// CORS açık CDN → DOĞRUDAN (no-referrer meta sayesinde 200)
|
||||
if (DIRECT_CORS_HOSTS.some(function(d){ return host === d || host.endsWith('.' + d); })) return real;
|
||||
|
||||
// Zaten sarılmış ama bilinmeyen host → sunucu proxy'sini koru
|
||||
// Zaten proxy'ye sarılmışsa proxy'yi koru (CORS engeli almaması için)
|
||||
if (wrapped) return url;
|
||||
|
||||
// Sarılmamış dış URL, referer gereken CDN → sunucu proxy'si (son çare)
|
||||
var ref = (Object.entries(KNOWN_REFS).find(function(e){ return host.endsWith(e[0]); }) || [null,''])[1];
|
||||
if (ref) return '/hls-proxy.php?ref=' + encodeURIComponent(ref) + '&url=' + encodeURIComponent(real);
|
||||
return real; // referer gerekmiyorsa doğrudan dene
|
||||
// Sarılmamış dış URL, referer gereken CDN → sunucu proxy'si
|
||||
var ref = (Object.entries(KNOWN_REFS).find(function(e){ return host.endsWith(e[0]); }) || [null,'https://anizium.co/'])[1];
|
||||
return '/stream/proxy?u=' + encodeURIComponent(btoa(real)) + '&ref=' + encodeURIComponent(btoa(ref));
|
||||
} catch(e) { return url; }
|
||||
}
|
||||
const SUBS = @json($subtitlesData);
|
||||
|
||||
Reference in New Issue
Block a user