Muzibu Ses Platformu — Tüm Akış, Tüm Parametreler
23 Şubat 2026 — 12 Bölüm
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).
| 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_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:1041 — 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 kullanDikkat: Mobilde mz_device cookie yoksa veya weak ise → MP3 128kbps. Soft mode otomatik devreye GİRMİYOR!
hls (full ABR, 4 seviye)| Ö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 | weak | MP3 | 128 kbps | Hayır | RAM<4GB veya CPU<4 core |
| Mobil | good | HLS | 4 seviye ABR | Hayır | Güçlü telefon → tam HLS (soft değil!) |
| Mobil | yok | MP3 | 128 kbps | Hayır | Cookie yoksa varsayılan = weak |
| Tablet | weak | MP3 | 128 kbps | Hayır | Zayıf tablet |
| Tablet | good | HLS | 4 seviye ABR | Hayır | Güçlü tablet → tam HLS |
| PC | — | HLS | 4 seviye ABR | Hayır | PC her zaman HLS (cookie kontrol edilmez) |
Mobilde soft mode hiçbir zaman otomatik devreye girmiyor!
Güçlü mobil (good) → tam HLS alıyor, soft değil. Zayıf mobil → direkt MP3. Arası yok.
Soft mode sadece admin panelden audio_preference=hls_soft atanırsa veya MUZIBU_AUDIO_FORCE=hls_soft ile zorlanırsa devreye girer.
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 KULLANILMIYOR |
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.
config/config.php:55'te tanımlı, .env'de 50 değeri var. Ama resolveAudioFormat() içinde hiçbir yerde corporate_mp3_threshold kontrolü yapılmıyor.
Beklenen davranış: Kurumsal hesapta 50'den fazla kullanıcı varsa otomatik MP3'e geç.
Gerçek davranış: Hiçbir etki yok. Ölü ayar.
Güçlü mobil (mz_device=good) → tam HLS (4 seviye) alıyor. Soft mode sadece admin'den atanırsa devreye girer.
Öneri: Güçlü mobil cihazlara soft HLS vermek bant genişliğini azaltır ve takılma riskini düşürür. İsteğe bağlı.
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).
v1 raporunda soft modda sadece 2 seviye (ultralow+low) gösteriliyor. Ama gerçekte MUZIBU_SOFT_PLAYER_VARIANTS=ultralow,low,mid — 3 seviye. v2'de düzeltildi.
Root kullanıcıya gösterilen debug bilgisinde (_debug_format) soft_player anahtarı var ama backend'de bu alana değer atanmıyor. Player'da df.soft_player ? ' [SOFT]' : '' kontrolü yapılıyor ama her zaman boş.
Dosya: SongStreamController.php:102-116 — formatDebug'a 'is_soft' => $isSoft eklenmeli.
23 Şubat 2026 • Muzibu.com.tr
v2 — Kapsamlı analiz (12 bölüm) | v1: İlk analiz