HLS Conversion ve AI Görsel Üretimi - Kullanım Kılavuzu
Sisteminiz şarkılar için otomatik olarak iki işlem yapabilir:
🎵 HLS Dönüşümü
MP3 şarkıları küçük parçalara böler ve güvenli streaming formatına çevirir. Böylece şarkılar kolay kolay indirilemez, sadece dinlenebilir.
🎨 AI Görsel Üretimi
Şarkı adından otomatik olarak yapay zeka ile profesyonel albüm kapağı görseli oluşturur. Her şarkıya benzersiz, yüksek kaliteli kapak resmi.
✨ 3 Farklı Kullanım Şekli:
🎯 Ne Zaman Kullanılır?
⚙️ Ne Yapar?
📁 Dosya Konumları
HLS Klasörü:
/var/www/vhosts/muzibu.com/httpdocs/storage/tenant1001/app/public/muzibu/hls/
Şarkı Yapısı:
hls/song-{id}/master.m3u8
💡 Örnek: Song ID: 12345
HLS Path: muzibu/hls/song-12345/master.m3u8
🗄️ Veritabanı Güncellemesi
Tablo: muzibu_songs
| Field | Açıklama | Örnek Değer |
|---|---|---|
hls_path |
M3U8 playlist dosya yolu | muzibu/hls/song-12345/master.m3u8 |
encryption_key |
AES-128 encryption key | a1b2c3d4e5f6... |
is_encrypted |
Encrypt edildi mi? | true |
hls_converted_at |
Conversion zamanı | 2025-01-08 23:45:00 |
🎯 Ne Zaman Kullanılır?
⚙️ Ne Yapar?
🧠 AI İşlemi
GPT-4 Prompt Oluşturma
Şarkı başlığını analiz eder, dil tespit eder, İngilizce'ye çevirir, detaylı fotoğraf prompt'u oluşturur
"Paradise" → "Tropical beach, turquoise water, sunset..."
Leonardo AI Görsel Üretimi
GPT-4'ün prompt'unu kullanarak profesyonel fotoğraf tarzında görsel üretir
Model: Lucid Origin | Boyut: 1472x832px | Stil: GPT-4 seçimi
Görsel İndirme ve Kaydetme
Leonardo AI'dan görseli indirir, Spatie Media Library ile şarkıya bağlar
🗄️ Veritabanı Yapısı
Tablo: media
(Spatie Media Library)
| Field | Açıklama | Örnek Değer |
|---|---|---|
model_type |
Bağlı model (Song) | Modules\Muzibu\App\Models\Song |
model_id |
Şarkı ID'si | 12345 |
collection_name |
Media collection | hero (album cover) |
file_name |
Dosya adı | song-cover-12345.jpg |
disk |
Storage disk | public |
custom_properties |
AI metadata (JSON) | { "generation_source": "ai_generated", ... } |
📦 custom_properties İçeriği:
{
"generation_source": "ai_generated",
"generation_prompt": "Album cover art of tropical beach...",
"generation_params": {
"model": "leonardo-lucid-origin",
"size": "1472x832",
"style": "cinematic",
"provider": "leonardo",
"generation_id": "abc-123-def",
"detected_language": "English",
"translated_title": "Paradise",
"tenant_id": 1001,
"purpose": "song_cover"
}
}
💡 Önemli: Görsel dosyası media tablosunda, prompt ve AI bilgileri
custom_properties JSON field'inde saklanır. Ayrı bir "media_library_items" tablosu YOK!
🎯 Ne Zaman Kullanılır?
⚙️ Ne Yapar?
🔄 İşlem Sırası
HLS Conversion (Queue: muzibu_hls)
MP3 → HLS dönüşümü, song tablosunda hls_path güncellenir
Job: ConvertSongToHLSTimeout: 300s | Tries: 1
AI Görsel Üretimi (Queue: muzibu_my_playlist)
GPT-4 + Leonardo AI, media tablosuna kayıt
Job: GenerateSongCoverTimeout: 180s | Tries: 1
✅ Sonuç:
📁 HLS Dosya Yapısı
storage/tenant1001/app/public/muzibu/hls/
└── song-12345/
├── master.m3u8 # Ana playlist
├── stream.m3u8 # Segment listesi
├── segment-000.ts # Video segment 1
├── segment-001.ts # Video segment 2
├── segment-002.ts # Video segment 3
└── encryption.key # AES-128 key (opsiyonel)
🎨 Media Storage Yapısı
storage/tenant1001/app/public/
└── 12345/ # Model ID (Song ID)
└── song-cover.jpg # AI generated cover
Database: media tablosu
├── file_name: "song-cover.jpg"
├── disk: "public"
├── collection_name: "hero"
└── custom_properties: { AI metadata }
⚙️ Laravel Queue Sistemi
| Queue | İşlem | Timeout | Tries |
|---|---|---|---|
muzibu_hls |
HLS Conversion | 300s | 1 |
muzibu_my_playlist |
AI Cover Generation | 180s | 1 |
📦 Job Class'ları
Modules\Muzibu\App\Jobs\ConvertSongToHLS
→ MP3 → HLS conversion, song.hls_path günceller
Modules\Muzibu\App\Jobs\GenerateSongCover
→ GPT-4 + Leonardo AI, media tablosuna kayıt
Modules\Muzibu\App\Services\MuzibuLeonardoAIService
→ AI servisi (dil tespiti, çeviri, prompt oluşturma, görsel üretme)
Veritabanı Yapısı
"media_library_items" diye bir tablo YOK! Eski sistemde olabilir ama şu an Spatie Media Library kullanılıyor.
Tüm media bilgileri media tablosunda,
AI prompt ve generation bilgileri custom_properties JSON field'inde.
HLS Encryption
HLS parçaları AES-128 ile şifrelenebilir. Encryption key encryption_key field'inde saklanır.
Şifreleme aktifse is_encrypted = true olur.
Çok Dilli Destek
AI görsel sistemi otomatik dil tespiti yapar (Türkçe, İngilizce, İtalyanca, İspanyolca, Japonca vb.) ve
Leonardo AI için İngilizce'ye çevirir. Dil bilgisi custom_properties.detected_language içinde.
İşlem Süreleri
HLS conversion: ~2-5 dakika (şarkı uzunluğuna bağlı)
AI görsel üretimi: ~30-60 saniye (GPT-4 + Leonardo AI)
Kullanıcı Görseli Kontrolü
Eğer şarkıda zaten manuel yüklenmiş görsel varsa (hasMedia('hero')), AI görsel üretimi ATLANIR.
Kullanıcının görseli korunur, AI ezmez.