[Support] Audiobookshelf


Recommended Posts

1 hour ago, AndreasLindroth said:

Hello, Quick question: 

Is there a way to reset the root password when you do not know it via CLI or so?

My password manager overwrote my generated password when i created a new account so now i don't know the root password anymore..

 

Im still able to log in to it via auto sign-in from one of my computers so i've made an other Admin account, but would still like to recover the root password.

 

Best regards

Currently the only way to do this is to open up the JSON file containing the root user and manually change the password.
The JSON files are located in /config/users/data and then you need to find the data.json file that has a JSON object id root.

These are not actually valid JSON files because each line will have a JSON object for each user, so don't edit these files in anything that will auto-format on save.

Once you find the root user object the attribute after id and username is "pash". Update the value of pash to empty quotes "".

Make sure you have turned down the server for this and do a backup of that data file you are updating so if something weird happens you can just copy in the old one and try again.


image.thumb.png.8fdf666dd92b291de6fae7de4a5d7b13.png

Edited by advplyr
  • Like 1
Link to comment
4 hours ago, advplyr said:

Currently the only way to do this is to open up the JSON file containing the root user and manually change the password.
The JSON files are located in /config/users/data and then you need to find the data.json file that has a JSON object id root.

These are not actually valid JSON files because each line will have a JSON object for each user, so don't edit these files in anything that will auto-format on save.

Once you find the root user object the attribute after id and username is "pash". Update the value of pash to empty quotes "".

Make sure you have turned down the server for this and do a backup of that data file you are updating so if something weird happens you can just copy in the old one and try again.


image.thumb.png.8fdf666dd92b291de6fae7de4a5d7b13.png

 

Thanks, Worked like a charm!

Link to comment
  • advplyr changed the title to [Support] Audiobookshelf
  • 2 weeks later...

Wanted to provide an update. Was able to get the Docker container up and running, have it run under a Linux service id, and can hit both from a browser AND the android app.

 

Here is my docker run command:

docker run  \
    -d \
    --user 999:999 \
    -p 14231:80 \
    -v <path to my audiobooks folder>:/audiobooks \
    -v <path to my config folder>:/config \
    -v <path to my metadata folder>:/metadata \
    -v <path to my podcasts folder>:/podcasts \
     --name audiobookshelf \
    ghcr.io/advplyr/audiobookshelf

 

A few things to note:

  1. I'm not using `-e AUDIOBOOKSHELF_UID` and `-e AUDIOBOOKSHELF_GID`. Using those two enviromental variables resulted in the container running as root, which is a security concern. By using `--user 999:999`, the container is able to run as user id 999 (which is the UID/GID of a system user called audiobookshelf), and is limited to only locations where that users has access
  2. If your copying a library/filesystems over from a install on server into a container, Then you need to do two things.  If you don't do the below, then you'll run into permission issues and books not being found
    1. change the fullpath string in /config/Libraries/data/data.0.json to point to /audiobooks instead of /where it currently points to (for example /usr/bin/share/audiobookshelf/somefolder/audiobooks to /audiobooks)
    2. run a Force Rescan of the library in the gui (gear wheel -> Libraries -> Force Rescan under the proper library)
    3.  

To access the docker container from a website, I just had to do http://MY_SERVER_ID_ADDRESS:14231. To use the app with this container, I used the same URL - http://MY_SERVER_ID_ADDRESS:14231.

 

Next steps:

 

What I'm working on now is trying to set it up a reverse proxy with a subfolder using nginx. Do note, this isn't a subdomain (audiobookshelf.cooldomain.com), this is a subfolder (cooldomian.com/audiobookshelf). There are two aspects to this. First, hitting the container through a website's subfolder. Say https://www.cooldomain.com/audiobookshelf . Second, using nginx to stream from an external port (59322) to the port exposed above (14231).

 

When I figure that out, I'll post to this site for all y'all.

Edited by WarblingWhales
wrong info
Link to comment
36 minutes ago, WarblingWhales said:

Wanted to provide an update. Was able to get the Docker container up and running, have it run under a Linux service id, and can hit both from a browser AND the android app.

 

Here is my docker run command:

docker run  \
    -d \
    --user 999:999 \
    -p 14231:80 \
    -v <path to my audiobooks folder>:/usr/share/audiobookshelf/audiobooks \
    -v <path to my config folder>:/config \
    -v <path to my metadata folder>:/metadata \
    -v <path to my podcasts folder>:/podcasts \
     --name audiobookshelf \
    ghcr.io/advplyr/audiobookshelf

 

A few things to note:

  1. I'm not using `-e AUDIOBOOKSHELF_UID` and `-e AUDIOBOOKSHELF_GID`. Using those two enviromental variables resulted in the container running as root, which is a security concern. By using `--user 999:999`, the container is able to run as user id 999 (which is the UID/GID of a system user called audiobookshelf), and is limited to only locations where that users has access
  2. The audiobooks path within the container is different then what is shown on the github site. I had to map my audiobooks specifically  to /usr/share/audiobookshelf/audiobooks (NOT /audiobooks)

To access the docker container from a website, I just had to do http://MY_SERVER_ID_ADDRESS:14231. To use the app with this container, I used the same URL - http://MY_SERVER_ID_ADDRESS:14231.

 

Next steps:

 

What I'm working on now is trying to set it up a reverse proxy with a subfolder using nginx. Do note, this isn't a subdomain (audiobookshelf.cooldomain.com), this is a subfolder (cooldomian.com/audiobookshelf). There are two aspects to this. First, hitting the container through a website's subfolder. Say https://www.cooldomain.com/audiobookshelf . Second, using nginx to stream from an external port (59322) to the port exposed above (14231).

 

When I figure that out, I'll post to this site for all y'all.

 

You are mistaken about #2, but that path is not necessary to map anymore the /audiobooks one. the /usr/share/audiobookshelf/audiobooks is your own path not the path inside the docker container.

You cannot use a subfolder yet, it is not supported. This is something being worked on now but you are limited to using a subdomain.

Link to comment
On 6/3/2022 at 12:24 PM, advplyr said:

 

You are mistaken about #2, but that path is not necessary to map anymore the /audiobooks one. the /usr/share/audiobookshelf/audiobooks is your own path not the path inside the docker container.

You cannot use a subfolder yet, it is not supported. This is something being worked on now but you are limited to using a subdomain.

 

That's what I thought as well. (See my earlier post about it trying to work with the andriod app). A bit of background, I had  audiobookshelf installed directly on my host machine (a ubuntu server) and wanted to move it to a docker container.

 

After much banging of head on wall, I finally got it to work, with an incorrect mapping of the audiobooks folder. Everything was hunky dory.

 

And then you left a comment and it got me thinking. I did a little more digging in the config folder to see what was going on. All my audiobooks had their full path mapped within the *.json files  (IE /usr/share/audiobookshelf/audiobook/Paradise Lost/ ). Which works fine for the bare metal install, however, the docker container tried to read those json and went "Hey, there is no /usr/share/audiobookshelf folder, permission denied".  By mapping my audiobooks to /usr/share/audiobookshelf/audiobooks in the container, everything worked out.

 

However, to have the container match the documentation of volume mapping

-v <my audiobook folder>:/audiobooks

 

I had to do two things:

  1. I had to tweak fullpath in /config/Libraries/data/data.0.json to point to /audiobooks instead of /usr/share/aduiobookshelf/audiobookshelf
  2. run a Force Rescan of the library in the gui (gear wheel -> Libraries -> Force Rescan under the proper library)

I'll fix my answer above to reflect this.

 

  • Like 1
Link to comment
  • 4 weeks later...
24 minutes ago, drvector said:

Outstanding docker, im testing mobile app on ios and is there any way to download books from my server for offline use? It will be great option

Not yet. It is planned but we are lacking in experienced iOS developers that will help. That feature is available for android.

Link to comment

I appreciate this app very much. Thanks for making it available!  I'm not a developer, just an end-user, so a lot of the behind the scenes stuff is completely beyond me. I do want to mention a couple of things. 

 

1) When I click into a podcast that I've downloaded, there is a drop down menu in the main panel which has the items Pub Date, Title, Season, and Episode. From their position in the interface, it seems like these are sorting options. I listen to a lot of fiction podcasts, and I would like to sort from oldest to newest, or something that gives me that result. However, when I make a different selection, nothing happens. I opened a log window when making the change, and don't see any observable change there either. Is this a feature in the works, or is there simply something wrong with my installation?

 

2) I've also downloaded the beta app for my iPhone using Test Flight. It looks great. Same thing with the sorting option, though I don't think I even am getting a drop down list of choices.  

 

3) Also related to the iPhone app, I'm wondering whether bluetooth audio functionality will be coming, and airplay functionality? Right now, it seems that the app is limited to local playback only (headphones or iPhone speaker). I'd love to be able to use this app in the car for podcast listening, but I don't think it's possible at the moment. Again, I could be missing something.

 

Thanks again!

Link to comment
18 minutes ago, bonmot said:

1) When I click into a podcast that I've downloaded, there is a drop down menu in the main panel which has the items Pub Date, Title, Season, and Episode

 

When you sort by pub date and the pub date is set for your podcast episodes then it should be working. Have you checked if the pub date actually got set? When the pub date is set it will show "Published ..."

image.png.33c8e5ce52284a777384c8501fbb0c72.png

 

 

 

21 minutes ago, bonmot said:

2) I've also downloaded the beta app for my iPhone using Test Flight. It looks great. Same thing with the sorting option, though I don't think I even am getting a drop down list of choices.  

 

 

The mobile app currently only allows for sorting by pub date. The podcast portion of audiobookshelf is only a few months old and could definitely use some help in designing a good user experience. The entire podcast experience needs to be thought through again. We have the developers to build it but deciding how things should function and where should be placed is another skillset.

 

25 minutes ago, bonmot said:

3) Also related to the iPhone app, I'm wondering whether bluetooth audio functionality will be coming, and airplay functionality? Right now, it seems that the app is limited to local playback only (headphones or iPhone speaker

 

I'm not an iOS user regularly so may be misunderstanding. We are planning to build CarPlay support but I'm not sure if AirPlay is something completely different that we should also plan for. CarPlay hasn't been built yet. Bluetooth should work since nothing extra is necessary for that.

Link to comment

Hey advplyr, thanks for the reply.

 

You're definitely on to something - it looks like the MP3 information isn't being filled. I'm using the app in conjunction with PodGrab (to get new episodes/download existing episodes) as has been suggested on this forum and elsewhere. It doesn't look like the metadata is populating.

 

I'm attaching a list view image, and a "edit" image from my system. The pub date does not appear to represent the time of the podcasts release, but rather something like when it was downloaded via pod grab, or when it was added to the audio bookshelf database.

 

Any ideas on how to fix this? I did a force refresh on the library, and that didn't help. It also doesn't seem to help if I match the podcast (using the iTunes source) on the last tab. The podcast in the picture has had both actions done with no effect to the sorting (nor does it populate metadata information for individual episodes in the interface).

 

Any suggestions on how to proceed?

 

Thanks!

 

CleanShot 2022-07-08 at 06.49.59.png

 

CleanShot 2022-07-08 at 06.51.16.png

Edited by bonmot
cropped image for clarity
Link to comment

As far as audio and airplay etc, in other frequently used apps, I get the airplay icon on the now-playing screen. I'm attaching screen grabs from both Overcast and Pocket Casts. They each seem to include this interface element in a similar way. By way of contrast, I'm including a grab from the now-playing screen on the beta version of your audiobookshelf app.

 

I've also included a screen capture of the menu which appears when you click on the airplay icon.  If I have headphones inserted/connected via bluetooth, they also appear here. This allows the user to easily switch between audio outputs on the fly (from headphones, to iPhone speaker, to airplay target).

 

Something like this would be really great in Audiobookshelf!

 

Thanks again for the follow up.

 

 

IMG_7719.jpeg

IMG_7720.jpeg

IMG_7721.jpeg

IMG_7722.jpeg

Link to comment
32 minutes ago, bonmot said:

Hey advplyr, thanks for the reply.

 

You're definitely on to something - it looks like the MP3 information isn't being filled. I'm using the app in conjunction with PodGrab (to get new episodes/download existing episodes) as has been suggested on this forum and elsewhere. It doesn't look like the metadata is populating.

 

I'm attaching a list view image, and a "edit" image from my system. The pub date does not appear to represent the time of the podcasts release, but rather something like when it was downloaded via pod grab, or when it was added to the audio bookshelf database.

 

Any ideas on how to fix this? I did a force refresh on the library, and that didn't help. It also doesn't seem to help if I match the podcast (using the iTunes source) on the last tab. The podcast in the picture has had both actions done with no effect to the sorting (nor does it populate metadata information for individual episodes in the interface).

 

Any suggestions on how to proceed?

 

Thanks!

 

CleanShot 2022-07-08 at 06.49.59.png

 

CleanShot 2022-07-08 at 06.51.16.png

 

Unfortunately that metadata will only be filled in if you download the episode from audiobookshelf. The match feature only matches the podcast metadata and not the individual episodes. This is something we still need to build out and I forgot about it actually since there is no github issue opened for that yet.

Link to comment
23 minutes ago, bonmot said:

As far as audio and airplay etc, in other frequently used apps, I get the airplay icon on the now-playing screen. I'm attaching screen grabs from both Overcast and Pocket Casts. They each seem to include this interface element in a similar way. By way of contrast, I'm including a grab from the now-playing screen on the beta version of your audiobookshelf app.

 

I've also included a screen capture of the menu which appears when you click on the airplay icon.  If I have headphones inserted/connected via bluetooth, they also appear here. This allows the user to easily switch between audio outputs on the fly (from headphones, to iPhone speaker, to airplay target).

 

Something like this would be really great in Audiobookshelf!

 

Thanks again for the follow up.

 

 

IMG_7719.jpeg

IMG_7720.jpeg

IMG_7721.jpeg

IMG_7722.jpeg

This is great, thanks for the overview and the screenshots. I will make note of this feature.

Edited by advplyr
Link to comment

Update on my metadata situation etc.  I've removed all of my current podcasts and am in the process of re-adding them via the audio bookshelf interface. It seems to be downloading them as expected, and the sort feature now works.

 

Playback via the web interface works as expected, but I'm having trouble with the iOS/iPadOS interface. I can see the downloaded episodes, but when I click the play button, nothing happens. In the logs that I see in the web interface (using ROOT user), I get messages like this one:
[PlaybackSessionManager] startSession: Closing open session "Preview - 16 Shots: The Police Shooting of Laquan McDonald" for user "mikeo"

It seems to indicate that it is closing my previous play attempt, and opening a new one (though no playback interface popped up either time).

 

I submitted feedback on TestFlight related to this issue. I hope we can find out what's happening. I don't have an android device to use for testing, unfortunately.

 

Thanks.

Link to comment
  • 3 weeks later...

Hello,

 

When I try and use the Merge feature, it immediately says that Download Failed. When I check the log file, I see this:

 

[2022-07-26 16:24:25]  INFO: Start audiobook merge for li_mlo6mbo68gz1xfb033 - DownloadId: abmerge_lbbnm85u510t9rxjmi - /metadata/downloads/abmerge_lbbnm85u510t9rxjmi
Write files.txt /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/files.txt
[2022-07-26 16:24:25]  INFO: [DownloadWorker] FFMPEG concat started with command: ffmpeg -safe 0 -f concat -i /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/files.txt -i /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/metadata.txt -y -loglevel error -map 0:a -acodec aac -ac 2 -b:a 64k -movflags use_metadata_tags -map_metadata 1 -f mp4 /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/D02.m4b
[2022-07-26 16:24:25]  INFO: [AbMergeManager] Removing download abmerge_lbbnm85u510t9rxjmi
[2022-07-26 16:24:25]  INFO: [AbMergeManager] Deleted download /metadata/downloads/abmerge_lbbnm85u510t9rxjmi

 

Not sure what I can do from here, other than manually trying to combine the audio files.

 

I have a bunch of audiobook's that I ripped from CD's over the years. So this one is in the folder format of:

 

Audiobooks/Clive Cussler/Dirk Pitt/01 - Mediteranean Caper/D01/Clive Cussler - (Dirk Pitt 01) The Mediterranean Caper - D01.01-18.mp3

 

Where D01 is disc one etc. I'm trying to combine the files so that Audiobookshelf sees the many discs as one book, instead of 7 in this instance.

 

Any thoughts on what I can do?

Link to comment
11 minutes ago, slughappy1 said:

Hello,

 

When I try and use the Merge feature, it immediately says that Download Failed. When I check the log file, I see this:

 

[2022-07-26 16:24:25]  INFO: Start audiobook merge for li_mlo6mbo68gz1xfb033 - DownloadId: abmerge_lbbnm85u510t9rxjmi - /metadata/downloads/abmerge_lbbnm85u510t9rxjmi
Write files.txt /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/files.txt
[2022-07-26 16:24:25]  INFO: [DownloadWorker] FFMPEG concat started with command: ffmpeg -safe 0 -f concat -i /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/files.txt -i /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/metadata.txt -y -loglevel error -map 0:a -acodec aac -ac 2 -b:a 64k -movflags use_metadata_tags -map_metadata 1 -f mp4 /metadata/downloads/abmerge_lbbnm85u510t9rxjmi/D02.m4b
[2022-07-26 16:24:25]  INFO: [AbMergeManager] Removing download abmerge_lbbnm85u510t9rxjmi
[2022-07-26 16:24:25]  INFO: [AbMergeManager] Deleted download /metadata/downloads/abmerge_lbbnm85u510t9rxjmi

 

Not sure what I can do from here, other than manually trying to combine the audio files.

 

I have a bunch of audiobook's that I ripped from CD's over the years. So this one is in the folder format of:

 

Audiobooks/Clive Cussler/Dirk Pitt/01 - Mediteranean Caper/D01/Clive Cussler - (Dirk Pitt 01) The Mediterranean Caper - D01.01-18.mp3

 

Where D01 is disc one etc. I'm trying to combine the files so that Audiobookshelf sees the many discs as one book, instead of 7 in this instance.

 

Any thoughts on what I can do?

 

How did that book get scanned in? Looking at that folder structure I think abs would scan that in as an audiobook named "D01" with 1 audio file.
You'll need to remove those D01 folders or rename them CD01. Abs will detect the disc folders if they are CD01, CD02, etc.

Link to comment
On 7/26/2022 at 4:45 PM, advplyr said:

 

How did that book get scanned in? Looking at that folder structure I think abs would scan that in as an audiobook named "D01" with 1 audio file.
You'll need to remove those D01 folders or rename them CD01. Abs will detect the disc folders if they are CD01, CD02, etc.

That's exactly what happened, and renaming from D01 to CD01 seems to have fully fixed what I was trying to do. Thanks so much!

  • Like 1
Link to comment

I did some searching, but couldn't find an answer to this question. So sorry if my searching skills aren't great. How do I organize books that are in their own series, but also in an overarching series?


For example:


This would be the overarching series

https://www.goodreads.com/series/50054-valdemar-chronological


But in that series, there are sub-series

https://www.goodreads.com/series/43489-valdemar-mage-wars

https://www.goodreads.com/series/309028-the-founding-of-valdemar

https://www.goodreads.com/series/41448-valdemar-last-herald-mage

etc.


Right now I have them arranged like this


Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/01 - The Black Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/02 - The White Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/03 - The Silver Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/04-06 Collegium Chronicles/01 - Foundation/files
Audiobooks/Mercedes Lackey/Valdemar Series/04-06 Collegium Chronicles/02 - Intrigues/files
etc.

Link to comment
22 minutes ago, slughappy1 said:

I did some searching, but couldn't find an answer to this question. So sorry if my searching skills aren't great. How do I organize books that are in their own series, but also in an overarching series?


For example:


This would be the overarching series

https://www.goodreads.com/series/50054-valdemar-chronological


But in that series, there are sub-series

https://www.goodreads.com/series/43489-valdemar-mage-wars

https://www.goodreads.com/series/309028-the-founding-of-valdemar

https://www.goodreads.com/series/41448-valdemar-last-herald-mage

etc.


Right now I have them arranged like this


Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/01 - The Black Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/02 - The White Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/01-03 The Mage Wars/03 - The Silver Gryphon/files
Audiobooks/Mercedes Lackey/Valdemar Series/04-06 Collegium Chronicles/01 - Foundation/files
Audiobooks/Mercedes Lackey/Valdemar Series/04-06 Collegium Chronicles/02 - Intrigues/files
etc.

 

I think this github request opened today is relevant to what you're saying https://github.com/advplyr/audiobookshelf/issues/870 but not regarding the folder structure. There was another issue brought up a while ago about folder structure for something like this but no good solution was found.

Abs is not going to pull in your folder structure correctly and I don't see that being supported until we figure out a way to allow customizing the folder scanner. I think your best option is to either put the books in a folder structure for the sub-series and add the overarching series manually in the UI, or vice-versa.

 

I want to add that I'm open to solving this since it's been brought up a few times but no one has put forward a solid solution. If you have ideas and want to chat about it the discord server is very active.

Edited by advplyr
Link to comment
  • 3 weeks later...
On 7/29/2022 at 10:55 AM, advplyr said:

 

I think this github request opened today is relevant to what you're saying https://github.com/advplyr/audiobookshelf/issues/870 but not regarding the folder structure. There was another issue brought up a while ago about folder structure for something like this but no good solution was found.

Abs is not going to pull in your folder structure correctly and I don't see that being supported until we figure out a way to allow customizing the folder scanner. I think your best option is to either put the books in a folder structure for the sub-series and add the overarching series manually in the UI, or vice-versa.

 

I want to add that I'm open to solving this since it's been brought up a few times but no one has put forward a solid solution. If you have ideas and want to chat about it the discord server is very active.

 

Now that I think about it. Having the ability for Series across Authors, and Universe series vs series in said universe. I think the manual assignment is probably the easiest. With that said, I think it would be nice to have a feature that dissociates a set of sub folders from the original match. That might make it a bit easier to reconfigure/rematch incorrect matches. That would make it easier to fix when folder structures are something like Author/Universe/Series 1/Book 1/Audio files.

 

Also, would it be possible to add another Match Provider? Something like Goodreads would be nice. I find that even when I have an audiobook, they aren't always found in Audible/Google Books, but they are found on Goodreads. I looked and found, https://github.com/advplyr/audiobookshelf/issues/568, but I'm not sure that would be the same as my request. So I didn't want to put in an enhancement request before chiming in here to see your thoughts.

Link to comment
13 hours ago, slughappy1 said:

 

Now that I think about it. Having the ability for Series across Authors, and Universe series vs series in said universe. I think the manual assignment is probably the easiest. With that said, I think it would be nice to have a feature that dissociates a set of sub folders from the original match. That might make it a bit easier to reconfigure/rematch incorrect matches. That would make it easier to fix when folder structures are something like Author/Universe/Series 1/Book 1/Audio files.

 

Also, would it be possible to add another Match Provider? Something like Goodreads would be nice. I find that even when I have an audiobook, they aren't always found in Audible/Google Books, but they are found on Goodreads. I looked and found, https://github.com/advplyr/audiobookshelf/issues/568, but I'm not sure that would be the same as my request. So I didn't want to put in an enhancement request before chiming in here to see your thoughts.

 

I think I closed most of the goodreads requests in github but it has been mentioned a lot. Goodreads won't be supported because they discontinued their public API and Abs is not going to do any web scraping itself. If someone built out a solid reliable Goodreads api that was free and public we would implement it.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.