Skip to content

0rn0lf/docker-absautoconverter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Audiobookshelf - Autoconverter .m4b

A Docker to automatically convert all your current and future Audiobooks within Audiobookshelf to the single file .m4b format. Your need (of cause) a running instance of Audiobookshelf for this Docker to work with! (It can run on a different host than audiobookshelf if necessary)

About The Project

I had a huge library of Audiobooks. Some of them were already .m4b but most of them were multiple mp3's.

I wanted to archive 3 things:

  1. Convert all my mp3 only Audiobooks to .m4b but a maximum of X in parallel (to not stress the server CPU too much).
  2. Automatic convert of newly added Audiobooks if they are not single file .m4b and let it check in cron style within a container.
  3. Don't use 3rd party software and use the built in converter of Audiobookshelf instead. So the API of Audiobookshelf was the way to go.

https://hub.docker.com/r/cutzenfriend/abs-autoconverter

How it works

  1. Get all items from the specified library. Filtered so that only multifile Audiobooks get returned
  2. Start the .m4b converting process for the specified amount of Audiobooks via API
  3. Wait and repeat until no more Audiobooks to convert are available
  4. Look every (hour) for new multifile books

Getting Started

The easiest way is to use the docker-compose.yml in this repository.

Prerequisites

Before running the container please adapt the mandatory environment variables within the docker-compose.yml:

version: '3.3'
services:
  abs-autoconverter:
    image: cutzenfriend/abs-autoconverter:latest
    container_name: abs-autoconverter
    restart: unless-stopped
    environment:
      TZ: "Europe/Berlin"
      DOMAIN: "https://abs.example.com" #Please edit - mandatory
      LIBRARY_ID: "YOUR AUDIOBOOKSHELF LIBRARY ID" #Please edit - mandatory
      MAX_PARALLEL_CONVERSIONS: 3 #Keep CPU power in mind. Too many conversion in parallel decrease performance on your host!
      #CRON_SETTING: #optional - default is: (20 * * * * ) - every hour at minute 20
      BITRATE: "128k" #optional - default is: 128k 
      TOKEN: "YOUR AUDIOBOOKSHELF API TOKEN" #Please edit - mandatory

Acknowledgements

Built With

Built with the latest node container as base and 2 further node modules.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.1%
  • Dockerfile 3.9%