Düzeltme Raporu

HLS İsimlendirme & Route Fix

Loading Guard Timeout Analizi + Çözüm

Basit Anlatım (Herkes İçin)

Müzik platformunda bir şarkı çalmaya çalışınca 8 saniye bekleme sonrası "yüklenemedi" hatası alındı. Araştırdık ve 3 farklı sorun bulduk:

Yanlış İsim

Şarkı kalite seviyeleri "original" olarak etiketlenmişti. "high" olması gerekiyordu. 511 şarkının tamamında bu sorun vardı.

Kırık Yollar

Farklı kalitelerdeki şarkı dosyalarına erişim yolları (route) tanımlı değildi. Sistem sadece tek kalitede çalabiliyordu.

Production Risk

Ana sunucuda şu an şarkılar çevriliyor. Aynı hatalı kod orada da çalışıyor — orada da düzeltilmeli.

Teknik Detaylar

1. NAME="original" → NAME="high" Düzeltmesi

// ESKİ (Hatalı)
NAME="original"
// YENİ (Düzeltildi)
NAME="high"
DosyaSatırDeğişiklik
app/Services/Muzibu/HLSService.php628NAME="original" → NAME="high"
app/Services/Muzibu/HLSService.php847$variants[] = 'original' → 'high'
511 master.m3u8 dosyası düzeltildi 0 dosyada "original" kaldı

2. Route Pattern Genişletme

// ESKİ (Kısıtlı) — master.m3u8 ve variant path'ler 404 dönüyordu!
->where('filename', 'playlist\.m3u8|segment-\d+\.ts')
// YENİ (Genişletildi) — Tüm HLS dosyaları erişilebilir
->where('filename', 'master\.m3u8|playlist\.m3u8|segment-\d+\.ts
  |(?:ultralow|low|mid)/(?:playlist\.m3u8|segment-\d+\.ts)')
Dosya: Modules/Muzibu/Providers/MuzibuServiceProvider.php (satır 331)
Öncesi (404 Dönen)
master.m3u8 404
low/playlist.m3u8 404
ultralow/segment-000.ts 404
Sonrası (200 OK)
master.m3u8 200
low/playlist.m3u8 200
ultralow/segment-000.ts 200

3. Loading Guard Timeout (8sn) — Analiz

Şarkı: ID 34541 ("iz") — HLS dosyaları mevcut, playlist.m3u8 erişilebilir (200 OK)

Muhtemel Sebep: Geçici ağ/tarayıcı gecikmesi (cold cache veya ilk yükleme). Kalıcı bir hata değil.

Güvenlik Ağı: 8sn loading guard doğru çalışıyor — sonraki şarkıya otomatik geçiş yapıyor.

Production Sunucu Talimatları

Production Claude'a verilecek talimat:
HLS isimlendirme düzeltmesi gerekiyor. Şu 3 işlemi yap: 1. app/Services/Muzibu/HLSService.php dosyasında: - Satır ~628: NAME="original" → NAME="high" değiştir - Satır ~847: $variants[] = 'original' → $variants[] = 'high' değiştir 2. Modules/Muzibu/Providers/MuzibuServiceProvider.php dosyasında: HLS route pattern'ını güncelle: ESKİ: ->where('filename', 'playlist\.m3u8|segment-\d+\.ts') YENİ: ->where('filename', 'master\.m3u8|playlist\.m3u8|segment-\d+\.ts|(?:ultralow|low|mid)/(?:playlist\.m3u8|segment-\d+\.ts)') 3. Mevcut şarkıların master.m3u8 dosyalarını düzelt: HLS dizinindeki tüm master.m3u8 dosyalarında: sed -i 's/NAME="original"/NAME="high"/g' DOSYA_YOLU (Tüm tenant'lar için) 4. Cache temizle: php artisan cache:clear php artisan route:clear php artisan responsecache:clear

ÖNEMLİ: Production'da şu an şarkılar çevriliyor. Bu düzeltme yapılana kadar yeni çevrilen şarkılar da hatalı "original" ismiyle üretilecek.

Yapılan İşlemler Özeti

HLSService.php — NAME="original" → NAME="high" (2 nokta)
MuzibuServiceProvider — Route pattern genişletildi (master.m3u8 + variant paths)
511 master.m3u8 dosyası toplu düzeltildi (script ile)
Route test: master.m3u8, low/playlist.m3u8, ultralow/segment-000.ts → hepsi 200 OK
Re-encode yapılmadı — sadece yazılım + isimlendirme düzeltmesi
Production sunucu — aynı düzeltme gerekiyor (talimat hazırlandı)

Multi-Variant ABR (Adaptive Bitrate) Durumu

Route düzeltmesiyle birlikte multi-variant ABR altyapısı hazır hale geldi:

ultralow
32 kbps
low
64 kbps
mid
128 kbps
high
Orijinal kalite

Not: ABR'yi aktif etmek için API'nin master.m3u8 URL'i döndürmesi gerekir (şu an playlist.m3u8 döndürüyor). Bu değişiklik ayrı bir iş olarak planlanmalı.

27 Şubat 2026 • Muzibu.com.tr