Sesli kitap dinleme alışkanlığı arttıkça çoğu insanın koleksiyonu üç dört farklı yerin karışımına dönüşüyor: bir kısmı Audible hesabında, bir kısmı yıllar önce indirilmiş MP3 dosyalarında, bir kısmı da telefonun rastgele bir klasöründe. Bu dağınık yapının en can sıkıcı yanı ise ilerlemenin kaybolmasıdır. İşe giderken telefonda 4 saat 12. dakikada bıraktığınız bir kitabı akşam tabletten açtığınızda yeniden başa sarmak, uzun bir kitabı yarım bırakıp aylar sonra "acaba nerede kalmıştım?" diye dakikalarca ileri geri gezinmek tanıdık gelecektir. Audiobookshelf, tam olarak bu sorunu çözmek için tasarlanmış, açık kaynaklı bir sesli kitap ve podcast sunucusudur.
Bu rehberde Audiobookshelf'in ne olduğunu, sesli kitap ve podcast'i tek çatı altında nasıl yönettiğini, en güçlü özelliği olan cihazlar arası ilerleme senkronizasyonunu, Docker ile adım adım kurulumunu, dosyalarınızı düzgün tanıması için gereken kütüphane düzenini, meta veri (kapak, yazar, açıklama) çekme sürecini ve mobil uygulamayı kıdemli bir sistem yöneticisinin bakış açısıyla ele alacağız. Amaç, kendi sunucunuzda çalışan, verinizin sizde kaldığı ve reklam görmeyeceğiniz bir dinleme deneyimini baştan sona kurabilmenizdir.
Audiobookshelf Nedir?#
Audiobookshelf, sesli kitap ve podcast koleksiyonunuzu kendi sunucunuzda barındırıp her cihazdan dinlemenizi sağlayan, Node.js ile yazılmış açık kaynaklı bir uygulamadır. Plex veya Jellyfin'in medya sunucusu olarak yaptığı işi düşünün; Audiobookshelf de aynı mantığı yalnızca ses odaklı içeriğe uygular. Sunucu, dosyalarınızın durduğu bir dizini tarar, kitapları ve bölümleri tanır, kapak ve meta verileri düzenler ve bunların hepsini tarayıcıdan veya mobil uygulamadan erişilebilir tek bir kütüphaneye dönüştürür.
Uygulamanın en belirgin özelliği, ilerleme takibini merkezi olarak sunucuda tutmasıdır. Hangi cihazdan dinlerseniz dinleyin, kaldığınız saniye sunucuya kaydedilir; başka bir cihazdan aynı kitabı açtığınızda tam bıraktığınız yerden devam eder. Bu, çoklu cihaz kullanan herkes için oyunun kurallarını değiştiren bir özelliktir. Ayrıca uygulama çok kullanıcılıdır: aile bireyleri veya ekip arkadaşları için ayrı hesaplar açabilir, her birinin kendi ilerleme kaydını ve isteğe bağlı erişim kısıtlarını tanımlayabilirsiniz.
Audiobookshelf tamamen ücretsiz ve reklamsızdır. Verinizin tamamı sizin sunucunuzda durduğu için hangi kitabı ne zaman dinlediğiniz bir şirketin sunucusuna gitmez. Abonelik yerine sahiplik modelini benimseyen, dijital kütüphanesini kendisi yönetmek isteyen kullanıcılar için ideal bir çözümdür. Docker desteğiyle kurulumu oldukça sadeleştirilmiştir ve mütevazı bir sanal sunucuda bile rahatça çalışır.
Sesli Kitap ve Podcast Yönetimi#
Audiobookshelf, içeriği iki ana türde ele alır ve her biri için ayrı kütüphane oluşturmanızı önerir: sesli kitaplar ve podcast'ler. Bu ayrım önemlidir çünkü uygulama iki türü farklı davranışlarla yönetir. Sesli kitap kütüphanesinde her öğe, bir yazara ve seriye bağlı, tek seferde okunan bir eserdir. Podcast kütüphanesinde ise öğeler, düzenli aralıklarla yeni bölüm eklenen aboneliklerdir.
Sesli kitap tarafında uygulama; yazar, seri, tür, yayın yılı, anlatıcı ve süre gibi alanları anlayarak koleksiyonunuzu zengin bir şekilde filtrelemenize izin verir. Bir yazarın tüm kitaplarını tek tıkla görebilir, bir seriyi doğru sırada dizebilir veya "henüz başlanmamış" ile "devam eden" kitapları ayırabilirsiniz. Uzun kitaplar birden fazla ses dosyasına bölünmüş olsa bile Audiobookshelf bunları tek bir kitap olarak birleştirir ve dosyalar arasındaki geçişi sizin adınıza yönetir.
Podcast tarafı ise daha çok bir abonelik yöneticisi gibi çalışır. Bir podcast'in RSS akış adresini eklediğinizde uygulama mevcut bölümleri listeler ve dilerseniz otomatik olarak yeni bölümleri indirir. Böylece internet bağlantısı olmayan bir ortamda bile podcast'lerinizi dinleyebilirsiniz. İzlenen/izlenmeyen bölüm durumu, tıpkı sesli kitaplardaki ilerleme gibi tüm cihazlarda senkron kalır. Aşağıdaki tablo iki türün pratikteki farklarını özetliyor.
| Özellik | Sesli Kitap Kütüphanesi | Podcast Kütüphanesi |
|---|---|---|
| İçerik kaynağı | Yerel ses dosyaları | RSS akışı + otomatik indirme |
| Organizasyon | Yazar, seri, tür | Program adı, bölüm sırası |
| Yeni içerik | Manuel ekleme / tarama | Otomatik yeni bölüm çekme |
| Meta veri | Kitap sağlayıcılardan çekilir | RSS akışından okunur |
| Tipik kullanım | Uzun eserler, seriler | Düzenli bölüm serileri |
İlerleme Senkronizasyonu Nasıl Çalışır?#
Audiobookshelf'i benzerlerinden ayıran en kritik özellik, ilerleme senkronizasyonudur ve mantığını anlamak, aracın neden bu kadar rahat ettirdiğini açıklar. Klasik dinleme uygulamalarında ilerleme, dinlediğiniz cihazın belleğinde tutulur. Telefonda kaldığınız yer telefonda kalır, tablet bundan habersizdir. Audiobookshelf bu bilgiyi cihazda değil, sunucuda saklar. Yani ilerleme, dinlediğiniz dosyaya değil, hesabınıza bağlıdır.
Pratikte şöyle işler: Bir bölümü dinlerken uygulama, düzenli aralıklarla ve duraklattığınız her an güncel konumunuzu sunucuya bir "medya ilerlemesi" kaydı olarak gönderir. Bu kayıt; hangi kitap, hangi saniye, ne kadarı tamamlandı bilgisini içerir. Başka bir cihazdan aynı hesapla giriş yaptığınızda uygulama önce sunucudan en güncel ilerlemeyi çeker ve oynatıcıyı o saniyeye ayarlar. Sonuç olarak sabah metroda dinlediğiniz kitabı akşam evde tabletten açtığınızda tek bir saniye bile kaybetmezsiniz.
Bu senkronizasyonun çevrimdışı senaryoları da düşünülmüştür. Mobil uygulamada bir kitabı cihazınıza indirdiğinizde ve internet olmayan bir yerde dinlediğinizde ilerleme geçici olarak yerelde tutulur; bağlantı geri geldiğinde sunucuyla otomatik olarak eşitlenir. Çok kullanıcılı yapıda ise her hesabın ilerlemesi kendine özeldir. Eşinizin okuduğu kitabın kaldığı yer sizin ilerlemenizi etkilemez; aynı kitabı ikiniz de farklı yerlerden dinleyebilirsiniz. Bu tasarım, tek bir sunucuyu tüm ailenin veya küçük bir ekibin kişisel dinleme geçmişiyle paylaşmasını mümkün kılar.
Docker ile Kurulum#
Audiobookshelf'i kurmanın en temiz yolu Docker'dır; çünkü tüm bağımlılıklar imajın içinde gelir ve sisteminize Node.js sürümleriyle uğraşmadan tek komutla kurabilirsiniz. Docker ve temel kavramlarına yabancıysanız önce Docker'a giriş rehberimizi okumanızı, konteynerleri görsel bir arayüzden yönetmek isterseniz de Portainer yazımızı incelemenizi öneririm. Başlamadan önce sunucunuzda üç dizin planlayın: yapılandırma, meta veri ve ses dosyalarınız (kütüphane) için.
Aşağıdaki docker-compose.yml, üretim ortamında rahatça kullanabileceğiniz sade bir başlangıçtır. Yolları kendi sunucunuza göre uyarlamanız yeterli.
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- "13378:80"
volumes:
- /opt/abs/config:/config
- /opt/abs/metadata:/metadata
- /srv/medya/sesli-kitaplar:/audiobooks
- /srv/medya/podcastler:/podcasts
environment:
- TZ=Europe/Istanbul
restart: unless-stopped
Dosyayı oluşturduktan sonra dizinleri hazırlayıp konteyneri ayağa kaldırın. Volume yollarındaki soldaki (host) dizinlerin var olduğundan ve doğru sahiplikte olduğundan emin olun:
mkdir -p /opt/abs/config /opt/abs/metadata
mkdir -p /srv/medya/sesli-kitaplar /srv/medya/podcastler
docker compose up -d
docker compose logs -f audiobookshelf
Konteyner başladıktan sonra tarayıcıdan http://sunucu-ip:13378 adresine gidin. İlk açılışta sizden bir yönetici (admin) hesabı oluşturmanızı isteyecektir; bu hesap sunucunun tam yetkili sahibidir, güçlü bir parola belirleyin. Uygulamayı dış dünyaya bir alan adı üzerinden açacaksanız önüne bir ters vekil (reverse proxy) koymanız ve HTTPS kullanmanız şarttır. Aşağıda Nginx için tipik bir yapılandırma bloğu görüyorsunuz; WebSocket bağlantısı ilerleme senkronizasyonu için gerekli olduğundan Upgrade başlıklarını atlamayın.
server {
listen 443 ssl;
server_name kitaplik.ornek.com;
ssl_certificate /etc/letsencrypt/live/kitaplik.ornek.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kitaplik.ornek.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:13378;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# İlerleme senkronizasyonu için WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
Sertifikayı ücretsiz alacaksanız Let's Encrypt tarafını SSL sertifikası hizmetimizden yönetebilir, sunucunun kendisiyle uğraşmak istemiyorsanız da hazır bir VDS sunucu üzerine bu kurulumu dakikalar içinde tamamlayabilirsiniz.
Kütüphane Düzeni ve Dosya Yapısı#
Audiobookshelf'in kitaplarınızı doğru tanıması, büyük ölçüde dosyaları nasıl adlandırdığınıza ve düzenlediğinize bağlıdır. Uygulama tarama sırasında klasör yapısını okuyarak yazar, seri ve kitap adını tahmin eder; düzenli bir yapı verirseniz meta veri eşleşmesi kusursuza yakın olur. Önerilen düzen, her yazar için bir klasör, altında her kitap için bir alt klasördür. Seriler için araya bir seri klasörü eklemek mümkündür.
En temel ve en güvenilir yapı şöyle görünür:
/audiobooks/
├── Yaşar Kemal/
│ ├── İnce Memed/
│ │ ├── 01 - Bolum.mp3
│ │ ├── 02 - Bolum.mp3
│ │ └── cover.jpg
│ └── Yer Demir Gök Bakır/
│ └── kitap.m4b
└── Sabahattin Ali/
└── Kürk Mantolu Madonna/
└── kurk-mantolu-madonna.m4b
Seri barındıran koleksiyonlarda klasör adına seri ve sıra bilgisini eklemek, uygulamanın kitapları doğru sıralamasına yardımcı olur. Audiobookshelf, klasör ve dosya adlarındaki kalıpları tanıyacak şekilde tasarlanmıştır; aşağıdaki gibi bir isimlendirme seri sırasını otomatik yakalar:
/audiobooks/
└── Isaac Asimov/
└── Vakıf Serisi/
├── Vakıf 1 - Vakıf/
├── Vakıf 2 - Vakıf ve İmparatorluk/
└── Vakıf 3 - İkinci Vakıf/
Dosya formatı konusunda en iyi tercih .m4b'dir. Bu format tek dosyada bölüm işaretleri (chapter markers), kapak ve meta veriyi taşıyabildiği için Audiobookshelf ile mükemmel uyum gösterir; bir kitabın onlarca MP3 parçasıyla uğraşmak yerine tek .m4b dosyası kullanmak yönetimi çok kolaylaştırır. Yine de MP3, M4A, FLAC, OGG ve OPUS gibi yaygın formatların hepsi desteklenir. Elinizdeki bir sürü MP3'ü tek bir bölümlü .m4b'ye dönüştürmek için ffmpeg veya özel araçlar kullanabilirsiniz. Klasör yapınızı her değiştirdiğinizde uygulamanın yönetim panelinden ilgili kütüphaneyi yeniden taratmayı unutmayın; Audiobookshelf yalnızca değişen öğeleri işleyerek hızlı bir güncelleme yapar.
Meta Veri Çekme ve Kapak Görselleri#
Bir sesli kitap kütüphanesinin zevkli görünmesini sağlayan şey, doğru kapaklar ve düzgün meta verilerdir. Audiobookshelf, dosyalarınızdaki gömülü etiketleri okumanın yanında, harici sağlayıcılardan da otomatik meta veri çekebilir. Bir kitabın detay sayfasında "Meta Veri Eşleştir" (Match) düğmesine bastığınızda uygulama; başlık, yazar, anlatıcı, yayın yılı, açıklama, tür ve kapak görselini seçtiğiniz sağlayıcıdan getirir ve onaylamanız için önünüze koyar.
Uygulama, kitap ve podcast için farklı sağlayıcılar sunar. Sesli kitaplarda Google Books, Open Library ve Audible gibi kaynaklar öne çıkar; Audible sağlayıcısı özellikle anlatıcı ve seri bilgisinde çok başarılıdır. Podcast'lerde ise iTunes/Apple Podcasts dizini üzerinden arama yapılır. Kütüphane ayarlarından hangi sağlayıcının öncelikli kullanılacağını seçeb, yanlış eşleşen bir kitabın meta verisini elle düzeltebilir ve tek tek onaylamak yerine toplu (batch) eşleştirme yaparak yüzlerce kitabı bir defada güncelleyebilirsiniz.
Kapak görselleri iki şekilde ele alınır. Dosyaya gömülü bir kapak varsa Audiobookshelf onu kullanır; yoksa sağlayıcıdan bulunan kapağı indirir ve /metadata dizininde saklar. Kendi kapağınızı yüklemek isterseniz kitap klasörüne cover.jpg adında bir dosya koymanız veya arayüzden manuel yükleme yapmanız yeterlidir. Meta veriyi tek bir yerde toplu tutmanın bir başka yolu da her kitap klasörüne bir metadata.json (veya OPF) dosyası bırakmaktır; bu sayede sunucuyu yeniden kurduğunuzda tüm bilgiler dosyalarla birlikte taşınır. Kişisel arşivinizi uzun vadede korumak istiyorsanız bu meta veri ve ses dosyalarını düzenli olarak yedekleme hizmetimizle güvence altına almanızı öneririm; koleksiyon büyüdükçe onu yeniden oluşturmak günler alabilir.
Mobil Uygulama ve Dinleme Deneyimi#
Audiobookshelf'in en güçlü yanlarından biri, resmi mobil uygulamalarının olgunluğudur. Hem Android hem iOS için ücretsiz uygulamalar mevcuttur ve web arayüzünün sunduğu her şeyi cebinize taşır. Uygulamayı açtığınızda sizden sunucunuzun adresini ve hesap bilgilerinizi ister; giriş yaptıktan sonra tüm kütüphaneniz, ilerlemeniz ve indirmeleriniz doğrudan telefonunuzda hazır olur. Birden fazla sunucu tanımlayıp aralarında geçiş yapmak da mümkündür.
Dinleme deneyimi, ticari uygulamalarla yarışacak düzeydedir. Oynatma hızını ayarlayabilir (örneğin 1.5x veya 2x), belirli saniyeler kadar ileri/geri atlayabilir, uyku zamanlayıcısı kurabilir ve bölüm işaretleri arasında hızlıca gezinebilirsiniz. Araba kullanırken güvenli dinleme için Android Auto ve CarPlay desteği vardır; kulaklık düğmeleri ve kilit ekranı kontrolleri sorunsuz çalışır. Yer imleri (bookmarks) sayesinde bir kitapta ilerideki bir bölümü işaretleyip sonra dönebilirsiniz.
En pratik özellik ise çevrimdışı indirmedir. Uzun bir yolculuk öncesi kitapları telefonunuza indirip mobil veri harcamadan ve bağlantı kesintisinden etkilenmeden dinleyebilirsiniz; bağlantı geri geldiğinde ilerlemeniz sunucuyla otomatik eşitlenir. Sunucunuzu ev dışından erişilebilir yaptığınızda güvenlik önemlidir: uygulamayı doğrudan internete açmak yerine önüne bir ters vekil ve HTTPS koymak, hatta bir WAF veya VPN katmanı eklemek riski ciddi biçimde azaltır. Sunucu yönetimiyle uğraşmak istemiyorsanız sunucu yönetimi hizmetimiz bu güvenlik katmanlarını sizin yerinize kurabilir.
Sıkça Sorulan Sorular#
Audiobookshelf ücretsiz mi?#
Evet, Audiobookshelf tamamen ücretsiz ve açık kaynaklıdır. Ne sunucu yazılımı ne de mobil uygulamaları için herhangi bir ücret ödemezsiniz; abonelik, kullanıcı başına lisans veya reklam yoktur. Yalnızca yazılımı çalıştıracağınız sunucu için (kendi donanımınız değilse) bir barındırma maliyeti oluşur. Projenin kaynak kodu herkese açık olduğu için isterseniz koduna göz atabilir, geliştirmeye katkı sağlayabilir veya kendi ihtiyaçlarınıza göre uyarlayabilirsiniz.
Audible'dan aldığım kitapları Audiobookshelf'te dinleyebilir miyim?#
Bu konuda dikkatli olmak gerekir çünkü Audible kitaplarının çoğu DRM (dijital haklar yönetimi) koruması taşır ve bu korumalı dosyalar Audiobookshelf'te doğrudan çalınmaz. Audiobookshelf yalnızca DRM içermeyen ses dosyalarını (MP3, M4B, M4A gibi) oynatır. Yasal olarak sahibi olduğunuz içeriği kişisel kullanım için DRM'siz formata dönüştürme hakkı ülkeden ülkeye değişir; bu nedenle yalnızca haklarına sahip olduğunuz ve platformun kullanım koşullarının izin verdiği içeriklerle çalışmanızı öneririm. En sorunsuz kaynak, zaten DRM'siz satılan sesli kitaplardır.
Aynı anda kaç kişi kullanabilir?#
Audiobookshelf çok kullanıcılı bir sunucudur; sınır büyük ölçüde donanımınızın gücüne bağlıdır. Yönetici hesabından istediğiniz kadar kullanıcı oluşturabilir, her birine kendi parolasını ve erişim yetkilerini tanımlayabilirsiniz. Her kullanıcının ilerlemesi ve dinleme geçmişi birbirinden bağımsızdır. Sesli kitap yayını çok az işlemci gücü gerektirdiği için mütevazı bir sunucu bile aynı anda dinleyen birkaç kullanıcıyı rahatça taşır; asıl belirleyici olan disk hızı ve internet bant genişliğinizdir.
Ne kadar disk alanı ve sunucu gücü gerekir?#
Uygulamanın kendisi çok hafiftir; 1 GB RAM ve tek çekirdekli bir sanal sunucu, yazılımı çalıştırmak için fazlasıyla yeterlidir. Asıl alanı ses dosyalarınız kaplar. Kaba bir hesapla sıkıştırılmış bir sesli kitap saati ortalama 25-50 MB civarındadır; yani 10 saatlik bir kitap yaklaşık 300-500 MB tutar. Yüzlerce kitaplık bir koleksiyon rahatlıkla birkaç yüz gigabaytı bulabilir. Bu yüzden sunucu seçerken işlemciye değil, disk kapasitesine ve verinin güvenli yedeklenmesine öncelik verin.
Podcast'leri otomatik indirir mi?#
Evet, bu Audiobookshelf'in podcast tarafındaki en kullanışlı özelliğidir. Bir podcast'in RSS akış adresini eklediğinizde uygulama mevcut bölümleri listeler; her podcast için otomatik indirmeyi açtığınızda sunucu, belirli aralıklarla akışı kontrol eder ve yeni yayınlanan bölümleri kendiliğinden indirir. Böylece bölümler zaten sunucunuzda hazır beklediği için çevrimdışıyken bile dinleyebilir, indirilecek eski bölüm sayısını sınırlayarak disk kullanımını kontrol altında tutabilirsiniz.
Kapanış#
Audiobookshelf, dağınık bir sesli kitap ve podcast koleksiyonunu, her cihazdan kaldığı yerden devam eden düzenli tek bir kütüphaneye dönüştüren, açık kaynaklı ve reklamsız bir çözümdür. Docker sayesinde kurulumu bir öğleden sonrası işidir; düzgün bir klasör yapısı ve otomatik meta veri çekme özelliğiyle koleksiyonunuz kısa sürede zengin görünümlü, aranabilir bir arşive dönüşür. En önemlisi, verinizin ve dinleme geçmişinizin bir şirketin değil, tamamen sizin kontrolünüzde kalmasıdır.
Bu deneyimi sağlam bir altyapıda çalıştırmak isterseniz Clou.TR olarak yardımcı olabiliriz. Küçük bir koleksiyon için sanal sunucu veya güçlü ve esnek bir başlangıç için VDS sunucu çözümlerimizi inceleyebilir, disk alanı büyüdükçe ölçeklenen bir yapı kurabilirsiniz. Kendi başınıza kurulum ve güvenlikle uğraşmak istemiyorsanız sunucu yönetimi ekibimiz Docker, ters vekil, SSL ve düzenli yedekleme dahil tüm süreci sizin adınıza üstlenir. Benzer kendi kendine barındırılan uygulamaları keşfetmek için App Center sayfamıza da göz atabilirsiniz.