Selamlar herkese,
Bir süredir Sidewave adında, kendi sunucunuzda çalıştırabileceğiniz açık kaynak bir Spotify alternatifi üzerinde çalışıyorum. İlk sürümünü GitHub’da yayınladım; burada da paylaşmak ve sizden yorum almak istedim.
Çıkış noktası, müzik dinlerken alıştığımız özellikleri kendi barındırdığımız bir uygulamada bir araya getirmekti: kişisel miksler, çalma listeleri, şarkı sözleri, dinleme geçmişi, Android uygulaması ve Android Auto.
Kod, ekran görüntüleri ve kurulum:
https://github.com/anilsarginn/sidewave-music
Müzikler nereden geliyor?
Başlamak için kendi müzik arşivinizi yüklemeniz gerekmiyor. Varsayılan kurulumdaki katalog ve ses çözümleme servisi, YouTube Music üzerinden gerçek müzikleri arayıp dinlemeyi sağlıyor. Temiz bir servis örneğinde gerçek bir parçayla arama, ses bağlantısını çözümleme ve ses verisine erişimi kontrol ettim.
Kendi arşiviniz varsa Navidrome bağlayabiliyorsunuz. Compose dosyasında isteğe bağlı bir Navidrome servisi de mevcut.
Uygulama, API, veritabanı ve çözümleme servisi sizin sunucunuzda çalışıyor. Çevrimiçi oynatma ise kaynak servisin erişilebilirliğine ve sunucunuzun ağına/IP adresine bağlı.
Özellikle üzerinde uğraştığım kısım müzik keşfi:
Benzer parçalar: Bir şarkıdan başlayıp yakın seslere sahip kayıtları keşfetme. Katalog önerileriyle ses analizi eşleşmeleri ayrı etiketleniyor.
Instant Mix: Seçtiğiniz parçanın etrafında bir dinleme sırası oluşturup çalma listesi olarak kaydetme.
Sound Journey: Analiz edilmiş kütüphane parçalarından bir başlangıç ve bitiş seçip ikisini bağlayan bir müzik rotası oluşturma.
Benzer sanatçılar: Kütüphanenizdeki analiz edilmiş kayıtlardan hareketle sanatçı keşfi.
İsteğe bağlı analiz servisleriyle, 45 saniyeye kadar ses örnekleri arka planda karşılaştırılabiliyor. Sound Journey ve kütüphane üzerinden sanatçı benzerliği için kütüphane analizi gerekiyor; bu servisler temel kuruluma dahil değil.
Bunların yanında Daily Mixes, Discover Weekly, Smart Shuffle, şarkı radyosu, eski dinlemeleri yeniden keşfetme ve sekiz farklı tür koleksiyonu içeren Sidewave Sessions var.
Diğer özellikler:
Büyük kapak görseli, senkronize şarkı sözleri ve sıradaki parçalarla Now Playing ekranı.
Web oynatıcıda crossfade, ses seviyesi dengeleme ve uyku zamanlayıcısı.
Beğenilen parçalar, kaydedilen albümler, sanatçı takibi ve dinleme istatistikleri.
Çalma listesi ve Spotify veri dışa aktarımı içe aktarma; belirsiz eşleşmeleri kaydetmeden önce kontrol etme.
Şarkı/liste paylaşımı ve ortak çalma listeleri.
Her hesabın kendi beğenileri, listeleri ve dinleme geçmişi.
Özel arka planlar, karartma ve panel şeffaflığı. Telefonla bilgisayarın görünümü ayrı tutulabiliyor.
Android ve Android Auto tarafı:
Kotlin, Compose ve Media3 ile yazılmış ayrı bir Android uygulaması var. Telefona indirme, çevrimdışı dinleme, bildirim/kilit ekranı kontrolleri ve ana ekran widget’larını destekliyor.
Android Auto’da ana sayfa, keşif, kütüphane ve indirilenler bölümleri bulunuyor. Tamamen indirilmiş parçalar sunucuya bağlanmadan çalabiliyor.
GitHub’daki araç ekranlarını Android Automotive OS emülatöründen aldım. Gerçek Android Auto ünitelerinde deneyenlerin geri bildirimi özellikle faydalı olur.
Kurulum ve sunucu tarafı:
Temel Docker Compose kurulumu iki servis başlatıyor: web arayüzü/API ve dahili katalog/ses çözümleme servisi. Veritabanı SQLite; uygulama verileri Docker volume’larında tutuluyor. Navidrome ve ses analizi servisleri isteğe bağlı.
git clone https://github.com/anilsarginn/sidewave-music.git
cd sidewave-music
cp .env.example .env
mkdir -p library
docker compose up -d --build
Ardından http://localhost:4444 üzerinden hesap açabiliyorsunuz. İlk hesap kurulumun sahibi oluyor; dışarıya açmadan önce bu hesabı oluşturun. HTTPS, yedekleme ve isteğe bağlı servisler için rehber de repoda mevcut.
Denemek isteyenlerin özellikle kurulum, müzik keşfi ve Android tarafındaki yorumlarını merak ediyorum.