Skip to main content

How to stream audiobooks to your phone with Booksonic

If you are like me then you probably love audiobooks and services like Amazon’s Audible that lets you stream your books directly to your phone. Audible is great but what about all those other books that you buy on cd in the store or as mp3 downloads online, or how about those that you download for free from sites like Librivox? Those you need to put on your phone before you can listen to them right? No, you actually don’t anymore.

Until recently I used a software called Subsonic to stream audiobooks to my phone. Subsonic is a great piece of software but it’s aimed at music so there are some problems with using it for streaming audiobooks, for example you can’t get book descriptions in the app. Back in October 2015 this lead me to start looking for a replacement but surprisingly it seems there really aren’t any, or at least there wasn’t back then. Now there is Booksonic, the fork of Subsonic and DSub that I started working on when I realized that was going to be stuck with Subsonic for my streaming needs.

So what is Booksonic then, well the short version is that it’s Subsonic for audibooks. You install a server software on your home PC and then you connect to it with your android phone and it will allow you to stream all your audiobooks to your phone regardless of if you are at home or not. The server is completely free but the Android app will cost you a one time fee of $3, well worth it if you ask me but you probably should ask someone else since I’m a bit partial, being the developer and all.

Now that we know what Booksonic is lets get started installing it. In this guide we will be installing it on a windows machine but it’s also available for Debian based Linux like Ubuntu and Mint. For mac and other systems there is a war file so you can run it with tomcat. For more instructions about this, check out this guide by Luite posted in the comments

Step 1. Getting the server

The server is available for download at, since we are installing it on a windows machine we will be downloading the Windows Installer version

Step 2. Installing the server

Once the file has been downloaded you double click it to start the installation. The installer will start to look for java on your machine and if it can’t find it it will ask if you want to install it, hit yes. Once it finds java you will get a welcome screen, here you should click the next button. The next screen will allow you to change where to install booksonic, unless you have a specific reason for changing it you can leave it as it is and click Install. Now uncheck the view getting started document checkbox and hit finish. Congratulations, you have installed the Booksonic server!

Step 3. Setting up the audiobook files

Now it’s time to start setting your up audiobooks. Find somewhere on your computer where you want to store them and go there. I have a folder called Ljudbocker on an external drive called F so for me the location would be F:\Ljudbocker\. In your folder create a new folder for every author you have. It will look something like this

Now go into into the author folders and create new folders for every book. I like to use the format “year – Bookname”, that way I can quickly see what order they should be listened to directly in my file manager but you can use just the bookname as well if you want. Booksonic will get the year from the tags inside the files. As an example this is what my folder for Arthur Conan Doyle looks like this.

Now it’s time to put in your files. Booksonic can handle all major audio file formats. Put your audio files into the books folder, to add a cover put it in as a jpg called cover, if you want to add a book description create a file called desc.txt and put you description in that. To add a narrator you create a file called reader.txt and put in your narrator there. There is a third party tool called Booksonic Library Editor that can help you manage these txt files which has worked great for me.
As an example here is my directory for A Study in Scarlet.

As a last step we are going to set the tags of the music files. For editing those I am going to use a free piece of software called Mp3Tag, it can handle a lot of different formats including mp3, m4a and m4b. I should probably note here that while m4a and m4b usually works with Booksonic there have been some reports about weird bugs with them so I would recommend using mp3 files if possible.

How you prefer to tag the files is up to you but for me I do it like this. If I have a chapter name I set that as the title, if not I set the books name as the title. I set the Author as both Artist and Album artist. The Album is of course the book name, the year I prefer to set as the year the book was released but if you want to use the year the audiobook was released then go for it. Then I set the track number and the cover image. If you want to save some space you don’t have to set the cover in the tags since you already have the jpg in the folder but I recommend you set it anyway in case you want to use it somewhere else. To make it a bit easier for you here is what it looks like for my track 1 of A Study in Scarlet.

Step 4. Configuring the server

Now that you have the server and files in place we need to configure the server so it knows where to find your audiobooks and since we are going to make the server accessible from the Internet we are also going to change the default password. To do this click this URL and it will open Booksonic for you in a new tab. http://localhost:4040

Once the page has loaded you sign in with both the username and password admin

When you sign in for the first time you will be shown a getting started guide. The first thing on this guide is changing the password so lets do that, click on Change administrator password and it will take you to the manage users page. Make sure the user admin is selected and then check the change password box. Enter your new password in the textboxes that appear and hit save. You will be signed out, don’t worry about that, it is normal.

Sign back in with your new password and you will once again see the getting started guide. This time click on Set up media folders. You will see that there is already one folder added that is called music, you can rename that to whatever you want but I usually go Audiobooks, in the field for the folder put in the location to the folder containg your author folders, in my case this was F:\Ljudbocker\. Once that is done, scroll to the bottom and hit save. After this I recommend you do a scan, you can do this by clicking the link called Scan media folders now.

Click on home in the top navigation bar and you will be taken back to the getting started guide, at the bottom of the page you will see a link called Don’t show this again, click that. An alert box will pop up telling you how to get the guide again, click ok.

Step 5. Enable internet access

Congratulations, the server has been completely set up and if you only want to use it at home you are ready, if you want to use it from outside your own network you need to port forward port 4040. Since port forwarding is different on every router I am not going to shw you how to do that but you can find instructions for your router at this page. You only need to forward port 4040 and should ignore port 80.

Step 6. Installing the Android app

Now it is time to install the Android app. You can find it by searching for Booksonic on Google Play or clicking this link

Step 7. Configuring the app

It’s time to configure the app yo use your server and doing so is very easy.

When you open the app you will see a login prompt. It is prefilled with the information for the demo server but since we have just set up our own server we want to use that instead. Change the address, username and password so they match your server and then click on sign in. If you don’t know the address of your server, click demo and move on to the next paragraph where we go in to more detail about this.

If you want to add more servers or change the server you just added you can do so by tapping the three lines at the top of the left, this will get you a sidemenu or a drawer as it is called in the android world. Click on settings. Now click on servers. You will already have your server or a Demo server here. You can either set up another server or modify the one you already have.

Before we set the server address we will need the IP of your server so on the machine you installed Booksonic go to, this will show you your IP address. Now on your app hit server address and set it to http://IP:4040 where IP is the ip of your server. Remember to use both http:// and :4040 or it will not work.

Now set the username and password in the same way and hit Test connection. It should say Connection is OK, if you get anything else go back and redo step 5 and if you still can’t get it to work you can contact me and ask for help at [email protected] or leave a comment below. Once the tests sais Connection is OK you can hit the arrow at the top left corner a couple of times until you get the lines again, click them and the click home.

Congratulations, you are now ready to start streaming your own audiobooks.

I hope this guide has helped you understand how to use Booksonic and if you have any questions at all don’t hesitate to leave a comment below, send me an email at [email protected], visit /r/Booksonic on reddit or read the Booksonic FAQ. If you have any suggestions on how to make Booksonic better I would love to hear them (once again, here, email or reddit).

To end this post I would like to recommend you go and check out David Clarke at He is the reader of the free Sherlock Holmes books (LibriVox recordings) you saw in my collection and the quality of the recordings are just as good as the stories. If you are seeing this David, thank you once again for your amazing work!


38 thoughts to “How to stream audiobooks to your phone with Booksonic”

  1. Thanks – I did read and well done with the comprehensive instructions – I’m sure you will help a lot of people – have you come across the Inkstone app Audiobook – it allows commercial and free audiobooks to be downloaded – including Librivox and is built to play those audiobooks in a user friendly manner

    1. Actually no I hadn’t, I looked it up now thou. The problem for me is that they don’t seem to have an Android version so I can’t try it out but the fact that they have premium services built in to the app sounds great. Adding LibriVox support is something I have planned for Booksonic as well but I thought the DRM on Audible would prevent us from using a third party app, will have to look in to this more and see if it would be possible to add it as well because that would be awesome.

    1. The configurations should be the same, as for installation I recommend you check out this docker container written by a guy called ironicbadger.

      EDIT: There was also a guide for installing it on Linux posted in the comments by Luite, you can find it here

        1. Sorry for the late reply, but if you or anyone else reading this are still looking for instructions check out the instructions posted by Luite below

  2. Hey looks exactly like what I’m searching for my Qnap NAS. One question about the app: is it also possible to download the audiobooks from the server for listening without active internet connection? Thats a must have for my needs.

    1. Yeah, the app will always cache the files for offline use. How many tracks you want it to preload when you start to listen to a book can be set in the app settings and it’s possible to have different settings for wi-fi and mobile data.

      By default it is allowed to use 2GB for cache (of I remember correctly) but this can also be changed in the settings.

  3. @popeencom: I’ve been playing with your software, but am having a hard time managing my audiobooks. (Reason I am looking for another streaming server for audiobooks than Plex is because of the lack of support for bookmarking the last point of play in a book). I installed the server on Win7.

    When testing the basics for local file access I notice that the created c:\audiobooks is found. However, when adding w:\àudiobooks2 or \\POLAR_WIND\audiobooks3 to the mix, these folders are not found (I have created them in windows and have added a few mp3 files for testing). What could be the cause of this?

    In the webbrowser, when playing a file by clicking on the play-arrow (index page), my Chrome responds by downloading the file. In IE it starts playing the file. How to fix this?

    When playing the file half way, stopping playback, closing and reopening the index page, and play the same file, it starts from the beginning. Shouldn’t it remember where I was (past point of play)?

    Finally I would like to test your android app (no plans for iOS?). When comparing to Plex, I am uncertain if your server really streams, or that download of the audiobook is required. I’ve been reading that you are caching files?

    1. Hi, sorry to hear that you are having some trouble.
      First of all what version of the server are you running?

      When testing the basics for local file access I notice that the created c:\audiobooks is found. However, when adding w:\àudiobooks2 or \\POLAR_WIND\audiobooks3 to the mix, these folders are not found (I have created them in windows and have added a few mp3 files for testing). What could be the cause of this?

      I would guess that you can’t use the first one becuase of the ´ on top of the a, if you use a regular a it should work fine.
      The network drive is a bit interesting and something I haven’t thought about before so thank you for bringing it to my attention. What you need to do is set what user should be used to access the drive booksonic service settings. I will be posting instructions for this in a few minutes. The instructions are available here.

      In the webbrowser, when playing a file by clicking on the play-arrow (index page), my Chrome responds by downloading the file. In IE it starts playing the file. How to fix this?

      Every device (or browser) you use will have it’s own player settings, it sound like your chrome player is set to use an external player. What I would recommend is that you set it to use the webplayer instead, usually the easiest thing is to just delete all the players for your user, next time you start to use Booksonic the server will just create a new one for you with the standard settings which should be web player for chrome. You delete your players at settigs->players.

      When playing the file half way, stopping playback, closing and reopening the index page, and play the same file, it starts from the beginning. Shouldn’t it remember where I was (past point of play)?

      In the app yes, the web player doesn’t have this functionality at the moment.

      Finally I would like to test your android app (no plans for iOS?). When comparing to Plex, I am uncertain if your server really streams, or that download of the audiobook is required. I’ve been reading that you are caching files?

      No, sorry. I have no plans for iOS however you could use any Subsonic app for iOS to connect to the server. I have heard good things about AVSub but I haven’t tried it myself.

      Yeah, technically it pre downloads the books when you hit play to a cache and plays them from there. You can set how many tracks you want to pre download and how much space you will allow the cache to use.

  4. I just stumble across BookSonic and I have a question regarding running Subsonic and Booksonic on the same machine.

    I currently have Subsonic installed and have used it for several years now. Looks like Subsonic and Booksonic both uses http://localhost:4040. How do I differentiate Subsonic vs Booksonic at http://localhost:4040?

    1. You could technically change the port for one of them but due to the fact that the Booksonic server is just a modified Subsonic server you won’t be able to run them on the same machine anyway unless you use something like docker (Booksonic is availiabe as a docker container through a third party, link is on

      They way I have mine set up is I use only a Booksonic server, then I have one folder for music and one for audiobooks. I then have two different accounts, one that only has access to the music folder and one that only has access to the audobook folder. It works great.

  5. I just installed the server and have a couple questions.
    1) Can I run my regular subsonic server and the booksonic server side by side? I’d still like to access my music using Dsub.
    2) It shows that it scanned my library and there are 317 books, but nothing showing up when I go to the library.

    1. 1. No you can’t but you can still continue to use use DSub for music and Booksonic for audiobooks, thats the way I do it too. The way I have mine set up is I use only a Booksonic server, then I have one folder for music and one for audiobooks. I then have two different accounts, one that only has access to the music folder and one that only has access to the audiobook folder. It works great.

      2. That sounds very weird. Contact me at [email protected] and I will try to help you out with it.

  6. It would have been nice if it contained cloud player, wherein people could paste their cloud url to stream abooks directly from those hosts.

    Anyways , a good program, but only limitation is it depends on diskspace of local drive. I have many audiobooks stored in my dropbox than on my HDD.

    1. I won’t be adding cloud support directly to the app BUT I am currently working on a framework for something I call Emulated Servers that will allow for online hosts like Dropbox, Librivox etc to be used as separate servers inside the app.

  7. I would really like to organize my audiobooks by genre first, then author and then title. Your server does not seem to support that kind of subdivision. My desire is based on knowing the rest of my family will not be interested in plowing through my large sci-fi collection to get to their fiction or non-fiction books.
    Thanks for your hard work!

  8. Hi all,
    I just finished installing Booksonic on my QNAP NAS through Container Station. Unfortunately I have not been able to add any media folders. My audiobooks are stored locally on this same NAS. I have tried multiple formats such as \\\share name\etc, /share/CACHE_DATA2/etc/etc. No matter what I add Booksonic does not find the folder. Could this be a permissions issue not allowing Booksonic to access the folder? Any ideas on how I can get my media folders added?


    1. It sounds like it might be yeah. Could also be that Container Station is using some kind of sanbox that prevents it from seeing the folders. Unfortunately I don’t know anything about Container Station so I can’t give you a good answer I’m afraid.

      If you where using a windows shared folder I would recommend checking this small guide but that won’t help in your case, I’m mentioning it only in case anyone else reading this is having the problem on a windows folder.

  9. Seriously a shame to have to uninstall this. Why on earth you would take code from a project like subsonic and not think to modify it so that it could run alongside it. It is called standing on shoulders of giants. Not standing on a giants severed head laying claim to all that he had accomplished as your own.

    I’m not going to run a completely separate vm/docker/container etc just because of your sloppiness.

    1. I’m sorry you feel this way and I sort of get it too. But the thing is it wasn’t just sloppiness that made me not modify it, there are tools out there that requires the service to be named Subsonic to function. I decided that I wanted to support those as well.

      That said I am working on a new solution where there will be no Subsonic server at all (well, at least not in the same way) so that you can use the Subsonic based server you prefer (in my case Madsonic)

      Oh and as a last note, I really hope that people don’t think I accomplished Booksonic on my own, the fact is that the Booksonic part of both the server and the app is incredibly small compared to the Subsonic and DSub parts. I have always tried to be very clear about this.

  10. Hi, just a helpful little tip for those running the docker by linuxserver on Unraid: You need to add the context_path variable in the docker settings after the :4040 in the server address field. Mine wouldn’t connect otherwise.

    So the server address needs to be as follows on the linuxserver docker in Unraid:
    http://[your-ip-address]:4040/booksonic (or whatever you changed the context path to in the docker settings).

    Just a heads up!

    Thanks for this amazing software Popeen, really great!

  11. So on iOS specifically, does the server automatically bookmark where the audio was last played? I’m using iSub and I couldn’t get this to work. Am I doing something incorrectly, or is this a feature thats only available on the app for Android?

    1. The server itself doesn’t do it no.
      But Subsonic (and therefore also Booksonic) has support for Bookmarks so if the app supports it it should work. As for if iSub supports it, I don’t know.

  12. Absolutely great stuff. I set up server in docker container and it is totally amazing. My other home media run from a mini-dlna server, but that was not good enough for books. Running booksonic server from the same server machine with booksonic android clients on home devices is however superb. Keep up the great work and I will try to spread the word and donate.

  13. Dear Popeen

    you did a very good job in creating this software “Booksonic – Audiobook streamer”! Thank you

    Nevertheless I do have some problems as I am a novice to linux. I am sure they are simple and I would be glad to learn from you:

    1 First and most important:
    Settings / Media folders:
    Is it possible to create a media folder with Booksonic or only organize if / if not an existing media folder is being used / scanned for audiobooks
    AND — is it possible to delete folders / audiobooks by using booksonic or does booksonic only deletes the link to the audiobook / folder

    2 Please explain
    More / Upload File
    The destination of Upload is by default: /books/Incoming. And Actually there is also a tags on the Index-page: <>. Please explain why this is needed. I would like to delete this.

    3 Plans to update the Index page?
    As for now it is only possible to list Authors by Name. tags like <>, <>, type (fiction, fantasy, roman, historical…) are not possible to apply. Any plans to change this in the near future?

    —-background information—
    Booksonic is running on a Linux / Ubuntu Server without a GUI. I’m running the Server by terminal commands only.

    Thanks for your help!

  14. Hi,

    I just installed, and it works great. However, is there a way to “track” the location in an audiobook? If I re-install or load booksonic on another device, it would be nice to sync where I left off.

    Is this a feature that is already included? or do I need to enable something?


    1. Hi,

      Glad you like it.
      This feature is already included. When you open the app on a new device the app should ask you if you want to keep playing where you left off on another device.

      You can also continue any book where you last left it by going in to the book and clicking the play icon at the top bar instead of an individual track.

  15. Bought the app today and installed the server.
    So far so good and my 400+ audiobooks all look good though not looking forward to downloading pics for all of them.

    I have a question though.
    I am able to connect to the server on my cell signal but get server offline when on my home wifi. Any idea what I need to do to connect to the server when on the same network?


    1. This is just a guess but I think it has to do with how your router handles loopbacks. If you try to visit the server in the browser (using external IP) from your home network I am guessing you will see your router interface instead.
      You might be able to change settings for this in your router but what I would do instead is just set up the local address in the app.

      * Make sure you are connected to your wifi
      * Go to settings -> servers -> your server
      * Select Local network SSID and click the button, this will make the app save your current network as the home network
      * Click ok
      * Select Local network address and enter the local address for the server, then click ok

      Now whenever you are at home it should connect over your local network instead of over the internet.
      If this doesn’t work. Try to connect on your home network and when it fails, send me a log file, you can do that from the top three dots of the main screen.

  16. Hi all
    I’m planing to install the BookSonic Container (Docker) on a Qnap.
    I tried earlier and getting the Container up and Running.
    Well i like to add an SMB to the Book Sonic Server. So i can Store the Books on a normaly SMB Share on the Qnap and can also access to it additional on SMB.
    Is there any guide who explain how to add an smb share over the Linux Container to the BookSonic?
    This is the Container i like to use.

  17. Disappointed from Aduiobook treatment by Plex i am looking for an alternative and would like to ask two questions before investing more time into this:

    1. From my time using Subsonic i remember to be able to have multiple users on the server. Does this also apply for Booksonic?
    2. Do you have plans to integrate providers for metadata like Audible? Copy & Paste all the information into text files seems pretty time consuming at first sight.

    1. Hi,

      1. Yes, you can have multiple users. The server side of Booksonic is pretty much the same as Subsonic but with a few extra api endpoints to support more metadata.
      2. Yes, I am currently working on replacing the current server with a new thing and that will get support for fetching metadata, maybe not at first but it is on the todo list.
      At the moment there is some limited meta data collection already. If the server contains no metadata the app will try to look it up on Google Books or

Leave a Reply

Your email address will not be published. Required fields are marked *