Muzibu Ses Platformu — Tum Akis, Tum Parametreler
23 Subat 2026 — 12 Bolum
Muzibu'da müzik iki farklı yöntemle gönderilebilir:
Şarkı tek seferde, komple indirilir. Tıpkı bir fotoğraf indirmek gibi — ya gelir ya gelmez.
Kalite: 64 kbps, 128 kbps veya orijinal
Şarkı küçük parçalara bölünerek gönderilir. Netflix gibi — internet hızına göre kaliteyi otomatik ayarlar.
4 seviye: 32, 64, 128 kbps + orijinal
HLS'nin hafifletilmiş hali. Yüksek kalite seçenekleri kaldırılır, sadece düşük kaliteler kalır.
Varsayılan: ultralow + low + mid
Soft Mode neden var? İnternet bağlantısı zayıf olan ortamlarda (kafeler, metrolar, kırsal bölgeler) yüksek kaliteye geçiş yapılmasını engellemek için. Böylece şarkı hiç takılmaz — ama yine de iki seviye arasında otomatik geçiş yapar (sabit MP3'ten üstün).
Kurumsal hesap ne zaman MP3'e geçer? Bir şirketin Muzibu hesabında 50'den fazla kullanıcı varsa, sunucu yükünü azaltmak için tüm kullanıcılar otomatik olarak MP3 formatına geçer. Bu eşik ENV'den ayarlanabilir.
| Seçenek | Gönderim | Soft? | ABR? | Şifreli? | Açıklama |
|---|---|---|---|---|---|
| auto | Değişken | — | — | — | Cihaz + internet'e göre otomatik karar |
| mp3_64 | Bütün | Hayır | Hayır | Hayır | Sabit 64 kbps MP3. En düşük kalite, en az veri. |
| mp3_128 | Bütün | Hayır | Hayır | Hayır | Sabit 128 kbps MP3. Orta kalite. |
| mp3_auto | Bütün | Hayır | Hayır | Hayır | Cihaz güçlüyse 128k, zayıfsa 64k MP3. |
| hls_soft | Parçalı | EVET | Evet | AES-128 | Soft Mode! master.m3u8'den high kaldırılır. ENV'de ayarlanabilir. |
| hls_soft_mobile | Parçalı | EVET | Evet | AES-128 | YENİ Zayıf mobil/tablet → otomatik soft HLS |
| hls_32 | Parçalı | Hayır | Kilitli | AES-128 | Sadece ultralow (32k). Level lock, ABR yok. |
| hls_64 | Parçalı | Hayır | Kilitli | AES-128 | Sadece low (64k). Level lock, ABR yok. |
| hls_128 | Parçalı | Hayır | Kilitli | AES-128 | Sadece mid (128k). Level lock, ABR yok. |
| hls_auto | Parçalı | Hayır | 4 seviye | AES-128 | Tüm seviyeler açık, ABR serbest. En güçlü mod. |
4 seviye arası otomatik geçiş (ABR)
3 seviye: ultralow + low + mid (max 128 kbps)
ENV: MUZIBU_SOFT_PLAYER_VARIANTS=ultralow,low,mid
Dikkat: Soft modda hangi varyantların kalacağı MUZIBU_SOFT_PLAYER_VARIANTS ile belirlenir. Varsayılan ultralow,low,mid. Sadece ultralow,low yazarsan mid de kaldırılır.
Dosya: SongStreamController.php → resolveAudioFormat() — Her stream isteğinde bu zincir çalışır:
MUZIBU_AUDIO_FORCE doluysa → herkesi (admin dahil) zorla bu formata geçir?_mz=hsoft veya ?_mz=s6 gibi parametre varsa ve kullanıcı root ise → test formatını kullanauto değilse → o tercihi kullancorporate_account_id varsa ve o hesapta 50'den fazla kullanıcı varsa → otomatik MP3Neden? 50+ kişilik kurumsal hesapta herkes HLS dinlerse sunucu segment istekleriyle dolar. MP3 tek dosya olduğundan sunucu yükü çok daha az.
Eşik: MUZIBU_CORPORATE_MP3_THRESHOLD=50 (ENV'den ayarlanabilir)
| Cihaz | mz_device | Sonuç | Açıklama |
|---|---|---|---|
| Mobil | good | HLS TAM | RAM≥4GB + CPU≥4 + 4G → kaliteli müzik |
| Mobil | weak | SOFT HLS | Zayıf telefon → soft HLS (takılmaz, 3 seviye ABR) |
| Mobil | yok | SOFT HLS | Cookie yoksa varsayılan = weak → soft |
| Tablet | good | HLS TAM | Güçlü tablet → tam HLS |
| Tablet | weak | SOFT HLS | Zayıf tablet → soft HLS |
v3 değişiklik: Eskiden zayıf mobil → MP3 128kbps alıyordu. Artık → Soft HLS alıyor. Böylece zayıf telefonlar da şifreli + adaptif streaming'den faydalanıyor (sadece düşük kalite seviyeleri ile).
hls (full ABR, 4 seviye). Cookie kontrol edilmez.| Özellik | Soft Mode (hls_soft) | Level Lock (hls_32/64/128) |
|---|---|---|
| Kullanılan variant sayısı | 3 (varsayılan: ultralow+low+mid) | 1 (sadece seçilen) |
| ABR (otomatik geçiş) | EVET (3 seviye arası) | HAYIR (sabit) |
| Max kalite | 128 kbps (ENV'den ayarlanır) | Seçime bağlı (32/64/128) |
| İnternet kötüleşirse | 128→64→32'ye düşer (takılmaz) | Düşemez, takılabilir |
| Şifreleme | AES-128 (aynı key, farklı IV) | AES-128 (aynı key, farklı IV) |
| Token flag | userId.s | userId.u / .l / .m / .h |
| Kullanım senaryosu | İnternet dalgalı, bazen iyi bazen kötü | İnternet sürekli aynı hızda ama düşük |
Dosya: user-manage-component.blade.php:184 — Kullanıcı düzenleme sayfasında:
Bu ayar users.audio_preference alanına yazılır. Sadece Muzibu tenant'ında (1001) görünür.
Mobil/Tablet tespiti jenssegers/agent kütüphanesi ile yapılır. UA hash'i 24 saat cache'lenir.
| Cihaz | mz_device | Format | Kalite | Soft? | Açıklama |
|---|---|---|---|---|---|
| Mobil | good | HLS | 4 seviye ABR | Hayır | Güçlü telefon → tam kalite HLS |
| Mobil | weak | SOFT | 3 seviye ABR | EVET | Zayıf telefon → soft HLS YENİ |
| Mobil | yok | SOFT | 3 seviye ABR | EVET | Cookie yoksa varsayılan = weak → soft |
| Tablet | good | HLS | 4 seviye ABR | Hayır | Güçlü tablet → tam HLS |
| Tablet | weak | SOFT | 3 seviye ABR | EVET | Zayıf tablet → soft HLS YENİ |
| PC | — | HLS | 4 seviye ABR | Hayır | PC her zaman HLS (cookie kontrol edilmez) |
Eski: Zayıf mobil → MP3 128kbps (şifresiz, tek dosya)
Yeni: Zayıf mobil → Soft HLS (şifreli, 3 seviye ABR)
Dosya: player-core.js:110-143 — Sayfa yüklendiğinde JS ile hesaplanır:
navigator.deviceMemorynavigator.hardwareConcurrencynavigator.connection.effectiveTypeEncryptCookies istisnasında: bootstrap/app.php:51
Tüm MUZIBU_ ile başlayan ENV değişkenleri tek blokta. Değişiklik sonrası: php artisan config:cache
| # | ENV Değişkeni | Değer | Açıklama |
|---|---|---|---|
| 1 | MUZIBU_DEFAULT_AUDIO_FORMAT | auto | Varsayılan format (auto/hls/mp3) |
| 2 | MUZIBU_AUDIO_FORCE | (boş) | Acil override — doldurursan HERKESİ zorlar |
| 3 | MUZIBU_HLS_TIMEOUT | 2 | HLS başarısız → MP3 fallback bekleme (sn) |
| 4 | MUZIBU_SOFT_PLAYER_VARIANTS | ultralow,low,mid | Soft modda izin verilen HLS kaliteleri |
| 5 | MUZIBU_CROSSFADE_DURATION | 7000 | Crossfade süresi (ms) — 0=kapalı |
| 6 | MUZIBU_SESSION_POLLING | 30000 | Session polling aralığı (ms) |
| 7 | MUZIBU_SESSION_TTL | 7200 | Redis session süresi (sn) |
| 8 | MUZIBU_CACHE_PREMIUM_TTL | 300 | Premium durum cache (sn) |
| 9 | MUZIBU_CACHE_SONG_TTL | 86400 | Şarkı cache süresi (sn = 24h) |
| 10 | MUZIBU_DEVICE_LIMIT | 1 | Eşzamanlı cihaz limiti |
| 11 | MUZIBU_CORPORATE_MP3_THRESHOLD | 50 | Kurumsal hesap MP3 eşiği AKTİF |
Herhangi bir acil durumda (HLS çöktü, sunucu yükü arttı, bug) tüm kullanıcıları tek satırla başka formata geçirebilirsin:
| Değer | Format | Etki |
|---|---|---|
| (boş) | — | Normal akış — karar zinciri çalışır |
| mp3_original | MP3 | Herkes orijinal MP3 dinler. HLS tamamen kapalı. |
| mp3_128 | MP3 | Herkes 128kbps MP3 dinler. |
| mp3_64 | MP3 | Herkes 64kbps MP3 dinler. En düşük bant genişliği. |
| hls | HLS | Herkes tam HLS dinler (4 seviye ABR). |
| hls_soft | SOFT | Herkes soft HLS dinler (varsayılan: ultralow+low+mid). |
URL'ye ?_mz=kod eklenerek root kullanıcı herhangi bir formatı test edebilir:
?_mz=s6
MP3 64kbps
?_mz=s12
MP3 128kbps (varsayılan)
?_mz=s0
MP3 Orijinal
?_mz=h3
HLS ultralow (32k kilitli)
?_mz=h6
HLS low (64k kilitli)
?_mz=h12
HLS mid (128k kilitli)
?_mz=h0
HLS high (orijinal kilitli)
?_mz=hsoft
HLS Soft Mode testi
Token Flag Sistemi: _mz parametresi backend'de signed URL'nin token kısmına gömülür. Örnek: token=5.s (userId=5, flag=s=soft). Flag'ler: s=soft, u=ultralow, l=low, m=mid, h=high. serveHls() bu flag'i okuyup master.m3u8'den ilgili varyantları filtreler.
Eski: config/config.php:55'te tanımlıydı ama resolveAudioFormat() içinde hiçbir yerde kontrol edilmiyordu. Ölü ayardı.
Yeni: Karar zincirinin Adım 2'sine eklendi. Kurumsal hesapta 50'den fazla kullanıcı varsa otomatik MP3'e geçiyor. try-catch ile korumalı (test ortamında kolon yoksa hata vermez).
Eski: Zayıf mobil (mz_device=weak) → MP3 128kbps. Soft mode hiçbir zaman otomatik devreye girmiyordu.
Yeni: Zayıf mobil → hls_soft_mobile (Soft HLS). Şifreli, 3 seviye ABR (32+64+128 kbps). Güçlü mobil hâlâ tam HLS.
navigator.deviceMemory Safari'de desteklenmiyor → bu kriter her zaman 0. Sadece CPU + bağlantı kalır.
Safari'de güçlü bir iPhone bile weak çıkabilir (2 kriter yerine max 2 — eşik geçiyor ama marj az).
Etki: Sorun değil — telefonda MP3'e inmek yerine artık Soft HLS alıyor. Soft HLS de gayet iyi çalışır.
v1 raporunda soft modda sadece 2 seviye (ultralow+low) gösteriliyor. Gerçekte MUZIBU_SOFT_PLAYER_VARIANTS=ultralow,low,mid — 3 seviye. v2'de düzeltildi.
Eski: _debug_format'ta soft_player boştu. Debug bilgisi sadece console.log ile gösteriliyordu (herkes görebilir).
Yeni: is_soft ve corporate_id alanları eklendi. Debug bilgisi artık root kullanıcıya görsel overlay (sağ alt köşe, 5sn sonra kaybolur) olarak gösteriliyor. Console.log yerine DOM elementi.
23 Şubat 2026 • Muzibu.com.tr
v3 — Güncel akış (corporate, mobil soft, debug overlay) | v2: Kapsamlı analiz | v1: İlk analiz