Muzibu Şarkı Sistemi Analizi

Kapsamlı sistem incelemesi ve mevcut durum raporu

16 Mart 2026 v1

Basit Anlatım (Herkes İçin)

Ne incelendi? Muzibu'nun müzik altyapısı - şarkılar, albümler, playlistler ve ses dosyası dönüşüm süreçleri.

Özetle: Sistemde 32,907 aktif şarkı var. Bunların %99.9'u HLS formatına dönüştürülmüş durumda. Sadece en son eklenen 8 şarkı henüz işlenmemiş (kuyrukta bekliyor).

Sorun: Silinmiş şarkıların bazıları hâlâ playlistlerde "hayalet" olarak görünüyor (2,919 kayıt). Bu, eski silmelerden kalan artık veriler.

Ana İstatistikler

32,907
Aktif Şarkı
628
Albüm
720
Playlist
42
Tür
47
Sanatçı

HLS Dönüşüm Durumu

HLS Dönüşüm Oranı 99.9%
32,887
HLS Hazır
20
HLS Yok
33,525
HLS Klasör
4
Kalite Seviyesi

HLS Variant Yapısı (Adaptive Bitrate)

Variant Bitrate Sample Rate Kanal
ultralow 32 kbps 22050 Hz Mono
low 64 kbps 22050 Hz Mono
mid 128 kbps 44100 Hz Stereo
high Orijinal 48000 Hz Stereo

MP3 Fallback Durumu

HLS başarısız olursa MP3 fallback devreye girer. İki kalite seviyesi mevcut:

MP3 64k
33,524
dosya mevcut
MP3 128k
33,535
dosya mevcut
MP3 fallback sistemi sorunsuz çalışıyor. Tüm şarkıların MP3 versiyonları mevcut.

Playlist İlişkileri

118,914
Toplam İlişki
875
Şarkılı Playlist
66
Boş Playlist

En Çok Şarkılı Playlistler

Radio Mahser 576 şarkı
Modern Anadolu Halk Müziği 575 şarkı
DÜKKAN 531 şarkı
Radio Homeware 501 şarkı
Metal Playlist 499 şarkı

Tür Dağılımı (Top 10)

Instrumental
4,691
Electro
3,350
Jazz
2,154
Rock
1,980
Blues
1,644
Funk
1,600
House
1,332
Pop
1,189
Rap & Hip-hop
1,039
Japanese Music
956

Tespit Edilen Sorunlar

Orphan Playlist Kayıtları

Silinmiş şarkıların playlist ilişkileri tam olarak temizlenmemiş. Bu "hayalet" kayıtlar playlist'lerde görünmeye çalışıp hata verebilir.

636
Silinmiş Şarkı
2,919
Orphan Pivot
101
Etkilenen Playlist
Neden oluştu? SongObserver'a cleanupPlaylistPivot() metodu sonradan eklendi. Eski silmeler bu metod olmadan yapıldı.

HLS Dönüşümü Bekleyen Şarkılar

Son eklenen 8 şarkının HLS dönüşümü henüz tamamlanmamış. Queue tarafından işlenmeyi bekliyor.

# HLS bekleyen şarkılar (ID: 41339-41346)
41346 | You Came Back Late
41345 | Wrapped In Rag
41344 | Words I Don't Say
... ve 5 şarkı daha

Teknik Detaylar (Geliştiriciler İçin)

Dosya Yapısı

Modules/Muzibu/
├── App/
│   ├── Models/
│   │   ├── Song.php          # Primary key: song_id
│   │   ├── Album.php         # Primary key: album_id
│   │   ├── Playlist.php      # Primary key: playlist_id
│   │   ├── Genre.php         # Primary key: genre_id
│   │   └── Artist.php        # Primary key: artist_id
│   ├── Jobs/
│   │   └── ConvertToHLSJob.php    # HLS + MP3 dönüşüm
│   ├── Observers/
│   │   └── SongObserver.php       # Cache + pivot temizlik
│   └── Services/
│       └── SongService.php        # CRUD operasyonları
└── database/migrations/tenant/
    ├── create_muzibu_songs_table.php
    ├── create_muzibu_playlist_song_table.php
    └── add_hls_fields_to_muzibu_songs_table.php

app/Services/Muzibu/
└── HLSService.php                 # FFmpeg + HLS mantığı

Storage Yapısı

storage/tenant1001/app/public/muzibu/
├── songs/
│   ├── {collection_id}/           # Orijinal MP3'ler
│   ├── mp3_64/{song_id}.mp3       # 64k fallback
│   └── mp3_128/{song_id}.mp3      # 128k fallback
└── hls/
    └── {song_id}/
        ├── master.m3u8            # ABR variant listesi
        ├── playlist.m3u8          # High kalite
        ├── segment-*.ts           # 4sn parçalar
        ├── enc.bin                # AES-128 key
        ├── enc.keyinfo            # Key URI + IV
        ├── ultralow/playlist.m3u8 # 32k variant
        ├── low/playlist.m3u8      # 64k variant
        └── mid/playlist.m3u8      # 128k variant

Veritabanı Tabloları

Tablo Primary Key Kayıt
muzibu_songs song_id 33,543 (636 soft deleted)
muzibu_albums album_id 676 (48 soft deleted)
muzibu_playlists playlist_id 1,080 (360 soft deleted)
muzibu_playlist_song composite 118,914
muzibu_genres genre_id 42
muzibu_artists artist_id 47

Şarkı Ekleme İş Akışı

  1. Admin panelden şarkı yüklenir (SongManageComponent)
  2. SongService::createSong() kayıt oluşturur
  3. Spatie Media Library dosyayı kaydeder
  4. ConvertToHLSJob dispatch edilir (hls queue)
  5. HLSService 4 kalite seviyesinde HLS + 2 MP3 fallback oluşturur
  6. Veritabanında hls_path güncellenir
  7. Cache invalidate edilir

Önerilen Aksiyonlar

ÖNCELİK 1

Orphan Pivot Kayıtlarını Temizle

Silinmiş şarkıların playlist ilişkilerini kaldır. Bu, 101 playlist'i etkileyecek.

DELETE FROM muzibu_playlist_song WHERE song_id IN (SELECT song_id FROM muzibu_songs WHERE deleted_at IS NOT NULL)
ÖNCELİK 2

HLS Bekleyenleri İşle

Queue worker'ın çalıştığından emin ol. 8 şarkı HLS dönüşümü bekliyor.

php artisan horizon:status
ÖNCELİK 3

Boş Playlistleri Değerlendir

66 boş playlist var. Bunların silinmesi veya içerik eklenmesi gerekebilir.