1. Mimari Yapı — Büyük Resim
Muzibu Player, tarayıcı tarafında (client) çalışan JavaScript modüllerinden ve sunucu tarafında (server) çalışan API katmanından oluşur. Aşağıda tüm bileşenler, dosya boyutları, satır sayıları ve görevleri gösterilmektedir.
Tarayıcı Katmanı (Client-Side)
Kullanıcının tarayıcısında çalışan tüm JavaScript dosyaları
HEAD'de Yükleniyor — Sayfa Açılmadan Önce İndirilmesi Gereken Dosyalar (Render Blocking)
player-core.js
384 KB8.310 satır — Ana motor dosyası
- HLS.js ile şifreli ses akışı yönetimi
- Howler.js ile MP3 fallback (yedek sistem)
- Çalma sırası (queue) yönetimi
- Sonraki şarkıyı önceden yükleme (preload)
- Ses akışı sağlık kontrolü (buffer health)
- Kalite seviyesi yönetimi (ABR)
- Çapraz geçiş (crossfade) — Şu an kapalı
play-helpers.js
37 KB1.017 satır — Çalma yardımcıları
- playAlbum() — Albüm çal
- playPlaylist() — Playlist çal
- playGenre() — Türe göre çal
- playRadio() — Radyo modu
- playSector() — Sektör bazlı çalma
performance-debug.js
180 KB3.505 satır — Debug & izleme paneli
- Donma (freeze) analizi
- Bellek (memory) izleme
- Jank tespiti (50ms+ uzun işlemler)
- Kök sebep analizi
Sadece geliştirme amaçlı — üretimde devre dışı bırakılmalı (~3-4 MB RAM tüketiyor)
Alpine.js Store ('muzibu')
— Tüm modüllerin paylaştığı ortak hafıza alanı
BODY'de Yükleniyor — Sayfa Açıldıktan Sonra Yüklenen Dosyalar (~328 KB)
spot-player.js
564 satır
Reklam sistemi. N şarkıdan sonra araya reklam girer. Sayacı tarayıcıda tutar.
spa-router.js
687 satır
Sayfa geçişlerini müzik kesmeden yönetir. 50 sayfayı önbelleğe alır (LRU).
speed-tester.js
395 satır
İnternet hız testi. Manuel: 100MB, Otomatik: 10MB indirerek ölçer.
buffer-monitor.js
295 satır
Ses akışındaki takılma/donma olaylarını izler. Sorun varsa hız testi tetikler.
device-profiler.js
356 satır
Cihaz parmak izi oluşturur (RAM, CPU, ekran, tarayıcı, dokunmatik).
favorites.js
~200 satır
Beğenme/favorilere ekleme işlemleri. Veriyi tarayıcıda ve sunucuda tutar.
session.js
190 satır
Oturum yönetimi. Çoklu cihaz çıkışı, tüm verileri silerek login'e yönlendirir.
api.js
99 satır
Tüm sunucu isteklerinin merkezi noktası. 401 hatalarında otomatik çıkış yapar.
Harici Kütüphaneler
Sunucu Katmanı (Server-Side)
Laravel PHP + Redis + MySQL — API endpointleri ve veri işleme
SongStreamController
Şarkı akışı ve dinleme takibi
- /stream — Şifreli stream URL üretir
- /track-start — Dinleme başlangıç kaydı
- /track-hit — 30 sn sonra sayaç artır
- /track-end — Bitiş kaydı
- /hls-key — Şifre çözme anahtarı
- /hls/* — Ses parçaları (segment)
SongController
Şarkı verileri ve listeleme
- /recent — Son eklenen şarkılar
- /popular — En çok dinlenenler (Redis 30dk cache)
- /show — Tek şarkı detayı
- /audio/cdn — CDN ses dosyası adresi
- /enc.bin — Şifreleme anahtarı servisi
SignedUrlService
Güvenlik servisi
- HMAC-SHA256 ile dijital imza
- Zamana bağlı URL (30-60 dk)
- Kullanıcıya özel URL (başkası kullanamaz)
- Parametre doğrulama
Veri & Depolama Altyapısı
2. Şarkı Çalma Akışı — Adım Adım
Kullanıcı "Çal" butonuna bastığında arka planda 5 aşamalı bir süreç başlar. Her adımda hem güvenlik kontrolleri yapılır, hem veriler toplanır, hem de bir sonraki şarkıya hazırlık yapılır.
Adım 1 — Kullanıcı "Çal" Diyor
0 msÖnce kullanıcının daha önce kaydettiği tercihler okunur: ses seviyesi, en son nerede kaldığı, hangi şarkıyı dinlediği. Eğer hala çalan bir şarkı varsa, o şarkının tüm izleri tarayıcıdan temizlenir.
Okunan Tercihler
- Son ses seviyesi
- Kaldığı çalma sırası ve pozisyonu
- Favori şarkıları listesi
- Cihaz profil kimliği
Eski Şarkının Temizliği
- Eski ses akışı kapatılır
- Şifreli bağlantı adresi bellekten silinir
- Ses oynatıcı sıfırlanır
- Zamanlayıcılar durdurulur (3 adet)
Adım 2 — Sunucu Güvenlik Kontrolü
100 - 400 msTarayıcı sunucuya "bu şarkıyı çalmak istiyorum" der. Sunucu 3 aşamalı kontrol yapar. Her aşamadan geçemeyen istek reddedilir — şarkı çalmaz.
Giriş Yapılmış mı?
Oturum çerezi kontrol edilir. Giriş yapmamışsa reddedilir.
Premium Üye mi?
Abonelik bitiş tarihi kontrol edilir. Süresi dolmuşsa reddedilir.
Şifreli URL Üretimi
Dijital imza ile korunan, süreli (30-60 dk) stream adresi üretilir.
Adım 3 — Şarkı Yükleniyor ve Çalıyor
300 ms - 1.2 snSunucudan gelen şifreli adres çözülür, şarkı parça parça indirilir ve şifresi çözülerek ses çıkışı yapılır. Aynı anda tarayıcıya yeni şarkının tüm bilgileri kaydedilir.
Tarayıcıya Kaydedilen
- Şarkı bilgisi (ad, sanatçı, kapak, süre, renk)
- Kilit ekranı kontrolleri (play/pause/ileri/geri)
- Durum kaydı (sayfa yenilenirse kaldığı yerden devam)
- Stream adresi geçici belleğe alınır
Başlatılan Zamanlayıcılar
- 250 ms aralık: İlerleme çubuğu güncelleme
- 500 ms aralık: Ses akışı sağlık kontrolü
- 30 sn sonra: Dinleme sayacı güncelleme
Adım 4 — Dinleme Verisi Toplanıyor
Şarkı boyuncaŞarkı çalmaya başladığı anda sunucuya bir dinleme kaydı açılır. 30 saniye sonra "gerçek dinleme" olarak sayılır. Bu, sahte istatistikleri engeller.
Başlangıç Kaydı
Kim, hangi şarkıyı, hangi cihazdan, nereden (albüm/playlist/arama) çalmaya başladı — kaydedilir.
30 sn Sonra
Dinlenme sayısı 1 artar. 30 saniyeden az dinlenen şarkılar sayılmaz — yapay şişirmeyi engeller.
Bitiş Kaydı
Kaç saniye dinlendi, şarkı atlandı mı, neden durdu (bitti / ileri bastı / tab kapattı) — kaydedilir.
Adım 5 — Sonraki Şarkıya Hazırlık
Şarkının %80'indeŞarkının sonuna yaklaşıldığında, sıradaki şarkı arka planda hazırlanır. Kesintisiz geçiş sağlanır. Reklam sırası geldiyse, reklam da önceden yüklenir.
3. Güvenlik & Yetkilendirme Detayı
Her şarkı isteği 3 katmanlı güvenlik duvarından geçer. Şarkı dosyaları AES-128 şifreleme ile korunur. Aşağıda her katmanın nasıl çalıştığı detaylı açıklanmıştır.
Oturum Doğrulama
Kullanıcının tarayıcısındaki oturum çerezi (session cookie) kontrol edilir. Giriş yapmamış veya oturumu sona ermiş kullanıcılar reddedilir.
Çoklu cihaz koruması: Başka bir cihazdan giriş yapıldığında, önceki cihazdaki oturum otomatik sonlandırılır. Tarayıcıdaki tüm kayıtlı tercihler temizlenir ve giriş sayfasına yönlendirilir.
Abonelik Kontrolü
Kullanıcının premium abonelik durumu anlık olarak kontrol edilir. Önbelleğe güvenilmez — her seferinde taze sorgu yapılır.
Aktif Premium
Devam eder
Süresi Dolmuş
Reddedilir
Free Kullanıcı
Paket sayfasına gider
Şifreleme & İmzalama
Şarkı dosyaları AES-128 ile şifrelenir. Stream adresleri HMAC-SHA256 imza ile korunur ve 30-60 dakika sonra otomatik geçersiz olur. Adres kopyalansa bile çalışmaz.
4. Toplanan Dinleme Verileri
Her şarkı dinlendiğinde 3 aşamalı veri toplama süreci işler. Bu sayede en çok dinlenen şarkılar, kullanıcı tercihleri ve dinleme alışkanlıkları analiz edilebilir.
Başlangıç Kaydı
Şarkı başlayınca
- Hangi şarkı
Şarkı kimliği - Kim dinliyor
Kullanıcı kimliği - Hangi cihaz
Cihaz profil kimliği - Nereden geldi
Albüm / Playlist / Arama - IP adresi
Coğrafi konum analizi için
5 sn içinde tekrar kaydedilmez
Dinleme Onayı
30 saniye sonra
Dinleme Sayısı +1
Popülerlik sayacı güncellenir
Neden 30 saniye? 5 sn dinleyip geçen kullanıcılar sayılmaz. İstatistiklerin güvenilir olmasını sağlar.
Reklam sayacı: Her onaylanan dinleme, reklam sayacını da artırır (ör: her 10 şarkıda bir reklam).
Bitiş Kaydı
Şarkı bitince
- Dinleme süresi
Kaç saniye dinlendi - Atlandı mı?
Atlayarak mı geçti - Durma sebebi
Doğal bitti İleri basıldı Tab kapatıldı
Tab kapatılsa bile veri gönderilir
5. Cihaz Tanıma & Profilleme
Her kullanıcının cihaz özellikleri analiz edilerek benzersiz bir "dijital parmak izi" oluşturulur. Eski/yavaş cihazlar otomatik tespit edilerek ses kalitesi düşürülür ve donmalar önlenir.
Dijital Parmak İzi — Toplanan Bilgiler
Tarayıcı
Chrome, Firefox, Safari...
İşletim Sistemi
Windows, iOS, Android...
RAM
2 GB, 4 GB, 8 GB...
CPU Çekirdek
2, 4, 8 çekirdek...
Ekran
1920x1080, 375x812...
Dokunmatik
Var / Yok
Cihaz Tipi
Masaüstü, Mobil, Tablet
Marka / Model
Samsung, iPhone...
Eski Cihaz Tespiti
Otomatik Uyarlama
6. Bellek & Kaynak Yönetimi
Player, kullanıcının tarayıcısında çeşitli bilgileri saklar. Kalıcı veriler sayfa yenilenince bile kalır, geçici veriler sadece o oturum boyunca durur.
Kalıcı Veriler — Sayfa yenilenince bile kalır
Ses Seviyesi
Çalma Durumu
Son şarkı, sıra, pozisyon
Favoriler
Cihaz Kimliği
Reklam Sayacı
Geçici Veriler — Sayfa kapatılınca kaybolur
Aktif Şarkı Bilgisi
HLS Ses Akışı
~20 MB RAM
Preload (Hazırlık)
~20 MB RAM
URL Önbelleği
30 şarkı, 5 dk geçerli
İzleme Verileri
Çıkış Yapılınca Silinen Her Şey
Kullanıcı çıkış yaptığında veya oturumu başka cihazdan sonlandırıldığında, tüm kişisel veriler temizlenir. Sadece cihaz kimliği ve hatırlanan e-posta kalır.
Çalma durumu
Çalma sırası
Favoriler
Ses seviyesi
Oturum verileri
7. Bir Şarkının Tam Yaşam Döngüsü — Zaman Çizelgesi
Bir şarkının "doğumundan ölümüne" kadar tüm adımlar zaman çizelgesi olarak: