🔍 Dinleyici Sorun Analizi

9 kullanıcının dinleme deneyimi detaylı analiz edildi

📅 19 Şubat 2026 🚨 Kritik Sorunlar Tespit Edildi
5/9
Kullanıcı Ciddi Sorun Yaşıyor
%55.5 sorun oranı
48
Phantom Play (Hayalet Dinleme)
Toplam 95 dinlemeden
2
Yanlış Device Profile
Güvenlik riski

📝 Basit Anlatım (Herkes İçin)

🎯 Ana Sorun: Şarkılar Başlatılıyor Ama Çalmıyor

9 kullanıcıdan 5'i şarkıları başlatıyor ama gerçekten dinleyemiyor. Sanki "play" tuşuna basıyorlar ama ses gelmiyor. Sistem kayıt tutuyor ama kullanıcılar müziği duymuyor.

Neden önemli? Kullanıcılar premium üye olup para ödüyor ama hizmet alamıyor. Bu müşteri kaybı ve şikayet demektir.

👥 Kullanıcı Durumları

🔴 KRİTİK DURUM (2 kullanıcı)

Devlet & Soner: Hiçbir şarkıyı dinleyemedi. %100 başarısızlık oranı. Sisteme girip şarkı açmaya çalıştılar ama ses gelmedi.

🟠 ÇOK KÖTÜ (3 kullanıcı)

Ahmet, Zeynep, Always: 10 şarkı açtıklarında sadece 1 tanesi çalıyor. Diğer 9'u boşa gidiyor. Sürekli "next" tuşuna basmak zorunda kalıyorlar.

🟡 ORTA (2 kullanıcı)

Ali, Oğuzhan: Bazı şarkılar çalıyor ama yine de sorunlar var. 10 şarkıdan 3-4'ü çalmıyor.

🟢 İYİ (2 kullanıcı)

münir, Ali (kısmen): Düzgün dinleyebiliyor. Sorun yaşamıyor.

🐛 Tespit Edilen Sorunlar

1️⃣
Phantom Play (Hayalet Dinleme)

Şarkı başlatılıyor ama hiç çalmıyor. 95 dinlemeden 48'i böyle. Kullanıcı "play" dedi, sistem kaydetti ama ses gelmedi.

2️⃣
Dinleme Süresi Kaydedilmiyor

Kullanıcı 88 saniye şarkı dinledi ama sistem "0 saniye" diye kaydetti. Şarkı çalıyor olabilir ama süre güncellenmiyor.

3️⃣
Yanlış Cihaz Bilgileri

2 kullanıcının cihaz bilgileri başka kullanıcılara ait. Sanki birisinin hesabından başkası giriş yapmış gibi görünüyor (ama öyle değil, sistem hatası).

4️⃣
Tarayıcı Bilgisi Kaybolmuş

Hiçbir kullanıcının hangi tarayıcı/cihaz kullandığı kayıtlı değil. Sorun çıktığında "hangi cihazda oldu?" diye bulamıyoruz.

🔧 Teknik Detaylar (Geliştiriciler İçin)

📊 Veritabanı Analizi

Kullanıcı Email Toplam Play Phantom Zero Duration Gerçek Ort. Süre Durum
Ali aliaxacal@hotmail.com 23 15 (%65) 16 7 118s ORTA
Ahmet chefscharlotte@gmail.com 25 18 (%72) 24 1 31s KÖTÜ
Always always.waffle25@gmail.com 13 11 (%84.6) 11 2 134s KÖTÜ
Zeynep zynp.25.1968@gmail.com 20 18 (%90) 19 1 71s KÖTÜ
Devlet murrik13@gmail.com 7 7 (%100) 7 0 NULL KRİTİK
Oğuzhan idunncoffee@gmail.com 5 2 (%40) 2 3 37s ORTA
Soner modacafe07@gmail.com 2 0 (%0) 2 (%100) 0 0s KRİTİK
Phantom Play Tanımı:
ended_at IS NULL AND was_skipped = 0 AND stop_reason IS NULL

Şarkı başlatıldı ama hiç bitmedi, skip edilmedi, stop nedeni yok

Zero Duration Tanımı:
listened_duration IS NULL OR listened_duration = 0

Hiç dinleme kaydı yok veya 0 saniye

🔴 Kritik Vaka: Soner

created_at: 2026-02-19 19:10:52
ended_at: 2026-02-19 19:12:20
Gerçek Süre: 88 saniye (ended_at - created_at)
listened_duration: 0 saniye ❌
was_skipped: 1 (true)
stop_reason: "close"
Sorun: Kullanıcı şarkıyı 88 saniye açık tutmuş ama listened_duration güncellenmiyor! Frontend tarafında player progress tracking çalışmıyor olabilir.

🔐 Güvenlik Sorunu: Yanlış Device Profile

Always (user_id: 2905)
device_profile_id: 3401 kullanıyor ama bu profile user_id: 2899 (Ahmet)'e ait!
3 dinleme kaydı bu yanlış profile ile
Soner (user_id: 2916)
device_profile_id: 3073 kullanıyor ama bu profile user_id: 2431'e ait!
2 dinleme kaydı bu yanlış profile ile
⚠️ Olası Nedenler:
  • Device profiler fingerprint çakışması (aynı cihaz, aynı IP, farklı kullanıcılar)
  • Cache problemi (eski device_profile_id cache'den geliyor)
  • Session/Cookie karışıklığı
  • Device profile oluşturma logic'inde bug

📁 İlgili Dosyalar

📄 Modules/Muzibu/App/Http/Controllers/Api/SongStreamController.php:313-323 Play kaydı oluşturma
📄 Modules/Muzibu/App/Models/SongPlay.php SongPlay model
📊 muzibu_song_plays Play kayıtları tablosu
📊 muzibu_device_profiles Cihaz profilleri tablosu

🔍 Tespit Edilen Kod Sorunları

1. Browser/Platform Bilgileri Kaydedilmiyor
SongStreamController.php:318-322 satırlarında user_agent, browser, platform alanları comment'lendi (artık kaydedilmiyor)
// ❌ Artık buraya kaydetmiyoruz (eski veriler korunur):
// 'user_agent' => $request->userAgent(),
// 'device_type' => $deviceType,
// 'browser' => $browserName,
// 'platform' => $agent->platform(),
💡 Device profiles tablosuna taşındı ama tüm play kayıtlarında NULL görünüyor
2. updatePlay/endPlay Endpoint Eksik
listened_duration güncelleme endpoint'i bulunamadı. Player frontend'de şarkı süresini track ediyor olabilir ama backend'e gönderemiyor.
3. Device Profile Validation Eksik
Play kaydı oluştururken device_profile_id'nin gerçekten user_id'ye ait olup olmadığı kontrol edilmiyor

💡 Önerilen Çözümler

1. Player Progress Tracking Endpoint Ekle
POST /api/muzibu/songs/{playId}/progress endpoint'i oluştur. Frontend her 10 saniyede bir mevcut progress'i göndersin.
// Body
{
  "listened_duration": 45,
  "current_time": 45.2
}
2. Device Profile Validation Ekle
Play kaydı oluştururken device_profile'ın user'a ait olduğunu kontrol et
$deviceProfile = DeviceProfile::where('device_profile_id', $deviceProfileId)
    ->where('user_id', $userId)
    ->first();

if (!$deviceProfile) {
    // Yeni device profile oluştur veya hata dön
}
3. HLS Stream Error Logging
Frontend'de HLS stream başarısız olduğunda backend'e error log gönder. Phantom play'lerin gerçek nedenini anlamak için gerekli.
4. Sorunlu Kullanıcılarla Test
Devlet ve Soner'in cihazlarında test yapılmalı. Network tab'da HLS segment'leri yüklenemiyor olabilir. CORS, authentication veya file permission sorunu olabilir.
19 Şubat 2026 • Muzibu.com.tr