Hörbücher hören wie bei Audible - nur frei

Artikel Bild
Freie Nutzung von Hörbüchern muss nicht umständlich sein. Mit audiobookshelf und Libation kann man sich eine Umgebung schaffen die ähnlich wie Audible funktioniert.

Ich hatte schon immer gerne Hörbücher gehört. Doch seit ich 2020 zu Linux gewechselt bin und Datenschutz auch immer ernster nahm, habe ich das Nutzen von proprietären Apps und Diensten weitgehend eingeschränkt. Mit dem Proxmox Server, der im Keller vor sich hin rechnet, habe ich Stück für Stück meine Freiheit zurück gehostet. So mittlerweile auch audiobookshelf in Kombination mit Libation.

Was ist eigentlich audiobookshelf? Ähnlich wie Audible ist audiobookshelf ein Dienst, mit dem man Hörbücher und Podcasts per Weboberfläche oder Client verwalten und hören kann. Das Ganze ist aber selbst gehostet und Datenschutz freundlich. Dazu nutze ich Libation um meine Hörbücher vom DRM zu befreien, was Lioh bereits in einem Beitrag vorgestellt hat. Allerdings läuft Libation bei mir in einem Docker Container, um audiobookshelf automatisch mit neuen Hörbüchern aus meinem Audible Abo zu füttern.

Ich setze das ganze Projekt in einem Debian LXC Container in Proxmox mit Docker auf.
Sobald man als root eingeloggt ist, wird erst einmal das System auf den aktuellen Stand gebracht.

apt update && apt dist-upgrade -y

Um Docker zu installieren, bediene ich mich dem Script der offiziellen Docker Installationsanleitung.

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Für das Projekt erstellt man jetzt eine Gruppe und Benutzer. Diesem weist man die Gruppen docker und sudo zu. Anschließend wechselt man in den Benutzer.

groupadd -g 1001 audiobookshelf adduser --uid 1001 --gid 1001 audiobookshelf usermod -aG sudo,docker audiobookshelf su – audiobookshelf

Nun erstellt man einen Ordner für das Projekt, wechselt in diesen und erstellt die docker-compose.yml Datei:

mkdir audiobookshelf cd audiobookshelf nano docker-compose.yml

In die Datei fügt man Folgendes ein:

services: audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest container_name: audiobookshelf restart: unless-stopped ports: - 13378:80 volumes: - ./audiobooks:/audiobooks - ./podcasts:/podcasts - ./config:/config - ./metadata:/metadata environment: - TZ=Europe/Berlin libation: image: rmcrackan/libation:latest container_name: libation restart: always volumes: - ./libation:/config - ./audiobooks:/data

Mit der Tastenkombination STRG + O speichert man, bestätigt mit Y/J und mit STRG + X schließt man den Editor.

Den Container startet man mit folgendem Befehl und stoppt sie direkt wieder. Dies erstellt die benötigten Ordner automatisch:

docker compose up -d && docker compose down

Anschließend passt man noch die Berechtigung für Libation an.

sudo chown -R 1001:1001 audiobooks libation

Damit Libation auch euren Account nutzt, muss man sich auf dem Desktop einmal in Libation mit seinem Account angemeldet haben. Im Libation Benutzerordner (unter Linux ~/Libation/) kopiert man den Inhalt der AccountsSettings.json und fügt ihn auf dem Server in der Datei ~/audiobookshelf/libationAccountsSettings.json ein und speichert diese:

cd libation nano AccountsSettings.json

Will man die Einstellungen von Libation anpassen, so kann man das in der Datei ~/audiobookshelf/libation/Settings.json tun. Diese muss man erst erstellen. Hier meine Settings.json als Beispiel.

{ "Serilog": { "MinimumLevel": "Information", "WriteTo": [ { "Name": "File", "Args": { "path": "/var/log/libation.log", "rollingInterval": "Month", "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] (at {Caller}) {Message:lj}{NewLine}{Exception} {Properties:j}" } } ], "Using": [ "Dinah.Core", "Serilog.Exceptions" ], "Enrich": [ "WithCaller", "WithExceptionDetails" ] }, "Books": "/data", "InProgress": "/tmp", "FolderTemplate": " []", "FileTemplate": " []", "ChapterFileTemplate": " [] - - ", "ChapterTitleTemplate": " - : ", "ShowImportedStats": false, "ImportEpisodes": false, "DownloadEpisodes": false, "AllowLibationFixup": true, "DecryptToLossy": false, "SplitFilesByChapter": false, "BadBook": "Retry", "CreateCueSheet": true, "RetainAaxFile": false, "StripUnabridged": true, "StripAudibleBrandAudio": true, "LameTargetBitrate": false, "LameDownsampleMono": true, "LameBitrate": 64, "LameConstantBitrate": false, "LameMatchSourceBR": true, "LameVBRQuality": 0, "AutoScan": false, "DownloadCoverArt": true, "AutoDownloadEpisodes": false, "SavePodcastsToParentFolder": false, "ReplacementCharacters": { "Replacement": [ { "CharacterToReplace": "\u0000", "ReplacementString": "_", "Description": "All other invalid characters" }, { "CharacterToReplace": "/", "ReplacementString": "_", "Description": "Forward Slash (Filename Only)" }, { "CharacterToReplace": "\\", "ReplacementString": "_", "Description": "Back Slash (Filename Only)" }, { "CharacterToReplace": "\"", "ReplacementString": "'", "Description": "Open Quote" }, { "CharacterToReplace": "\"", "ReplacementString": "'", "Description": "Close Quote" }, { "CharacterToReplace": "\"", "ReplacementString": "'", "Description": "Other Quote" }, { "CharacterToReplace": "", "ReplacementString": "}", "Description": "Close Angle Bracket" }, { "CharacterToReplace": ":", "ReplacementString": "-", "Description": "Colon" }, { "CharacterToReplace": "‘", "ReplacementString": "'", "Description": "opening single quote" }, { "CharacterToReplace": "’", "ReplacementString": "'", "Description": "closing single quote" } ] }, "MergeOpeningAndEndCredits": true, "BetaOptIn": false }

Jetzt kann man die Docker Container wieder starten. Ohne Settings.json nutzt Libation die Standardeinstellungen.

cd ~/audiobookshelf docker compose up -d

Unter der IP des Servers mit dem Port 13378 kann man nun die Weboberfläche von Audiobookshelf erreichen. Hier erstellt man jetzt einen Benutzer und kann die Bibliothek einrichten. Freie Nutzung von Hörbüchern muss nicht umständlich sein. Mit audiobookshelf und Libation kann man sich eine Umgebung schaffen, die ähnlich, wie Audible funktioniert.

Beim Metadatenanbieter wähle ich natürlich Audible.de und beim Verzeichnis wählt man dann /Audiobooks aus. Die restlichen Einstellungen sind Geschmackssache, aber mir reicht das so schon.

Jetzt hat man ein funktionierendes audiobookshelf mit automatisiertem Libation welches automatisch neue Hörbücher erkennt, downloadet und DRM entfernt. Mit meinem Android-Smartphone lade ich dann die Audiobücher bequem mit der App runter, um sie unterwegs offline zu hören.
Es gibt allerdings noch andere Apps und Clients für verschiedenste Betriebssysteme.

Fazit

Anfangs war ich skeptisch, dass sich die Benutzung so glatt und problemlos anfühlt wie bei Audible selbst. Dazu kann ich nur sagen, ich lag absolut falsch. Einmal eingerichtet läuft alles so, wie man sich das vorstellt, nur halt ohne die Datenspionage, Dark Patterns etc. Einfach frei.

Ich nutze audiobookshelf nun schon mehrere Monate und möchte es nicht mehr missen. Auf dem Smartphone nutze ich die offizielle Android-App und bin zufrieden.

Quellen:

Screenshot von der Webseite https://www.audiobookshelf.org/
Alles andere aus eigener Feder oder eigene Screenshots.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.