Jump to content

AudioBook folder structure?


Inrego
 Share

Recommended Posts

Is there any information about how the structure should be for audio books?

I've tried, but it just shows up in web interface like the folders. Resume doesn't work, and no automatic queue of next file.

 

I've seen Luke post that resuming does indeed work for AudioBooks now, so I must be doing something wrong, and this is my first guess as to what it could be.

 

I even started development of my own Plugin for AudioBooks, but if it's already working well enough, I won't waste time with it.

 

I am running Version 3.2.25.7 beta

Edited by Inrego
Link to comment
Share on other sites

Some more info:

 

I click on AudioBook library:

 

596e271c2506e_Capture.png

 

I then select the book (cover found from cover.jpg inside the folder)

 596e274d709fd_Capture.png

 

And when clicking on the book, I just get tiles for each and every one of the media files:

596e27901b4b2_Capture.png

 

If I click the first one, I get info about it, and possibility to play that file only.

 

596e27f508b00_Capture.png

 

When I click play, it starts playing this file. But if I stop halfway through, there is no option for resume. If I listen all the way through, it just stops. It doesn't start playing the next.

  • Like 1
Link to comment
Share on other sites

Library structure is fine. Check your resume settings in the emby server dashboard under Playback.

Link to comment
Share on other sites

Ok, I see. It probably falls under the "Min resume duration".

 

How about the problem of only playing a single of the audio files at a time? Should I create a playlist?

Either way, I don't like the AudioBook support too much as it is now, so I will probably develop my plugin anyway.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Ok, I see. It probably falls under the "Min resume duration".

 

How about the problem of only playing a single of the audio files at a time? Should I create a playlist?

Either way, I don't like the AudioBook support too much as it is now, so I will probably develop my plugin anyway.

 

Let me know if you need anyone to help testing

Link to comment
Share on other sites

The plug-in in itself is done. It simply just makes sure to save progress on audio books, regardless of settings.

 

I am also developing an accompanying app for Android/iOS/Windows that will feel more like an audiobook player, with the expected features.

 

However, this is my first attempt at apps so it's probably still a good way from test ready. As soon as I have something, I'll post on these forums. I still haven't decided whether the app will be free or not

 

Sent from my ONEPLUS A3003 using Tapatalk

  • Like 2
Link to comment
Share on other sites

I still haven't decided whether the app will be free or not

 

I don't mind paying for it if the support is good :)

Link to comment
Share on other sites

  • 3 weeks later...

Hello again. Just a small progress update.

 

I'm making good progress on the app. Basic functionality is working, but I still need a few more functionality and some polish before it's even ready for a first alpha version. Anyway, this is what's currently implemented:

 

  • Browsing only AudioBook libraries on the server
  • Auto pre-cache files for playback
  • Settings to pre-cache next X minutes or audio-files
  • Setting to auto-cleanup files that are earlier than current progress
  • Saving progress on Emby server
  • Resuming from Emby server progress (so resume on different device)
  • Media notification with play/pause
  • Showing cover and description of book from Emby metadata

The app is being developed for Android, iOS and Windows. However, I am not able to test iOS yet, since I don't have any apple devices (my boss will provide me at some point, since he also has an interest in me learning to develop apps).

 

The following features are still missing, which I think are required before I give first alpha to close friends for testing (striked items are already done):

 

  • Proper offline support: That means caching metadata etc for books that has any audiofiles cached too. Currently, all except audiofiles are grabbed from server on each app start, which means it's not functional at all offline.
  • UI for currently playing: Need to be able to see what we are currently listening to, as well as current progress through the book.
  • General UI polish: UI is very basic at the moment. Both logout and login buttons are always visible in menu. Only one of them should be, depending on whether you're logged in or not. When logging in, you should automatically be redirected to browse page.
  • File list: Show a list of files in an audiobook, along with their size and duration. Also indicate which of them are already cached, and possibly manually cache extra files.
  • Loading indicators: Currently there's no way to know if the app is working on something. When pressing login button, or starting playback of an AudioBook where no files are precached yet, it should show some indication that it's actually currently working and not just frozen.
  • Theming: The app is currently very bright and blue. I want to give the app a theme/feel to make it a bit more Emby-esque (dark/green).

 

Known issues

  • (General) App checks for offline availability when looking at an audiobook. It's not necessary until you tap the file list button. Minor performance gain in changing this.
  • (General) When starting to play an audiobook, the book starts playing after the currently required file is downloaded. But the "Now Playing" screen doesn't show until after all files matching the caching strategy has been downloaded. Gives a feel that the app is frozen.
  • (General) Rewind/forward is a bit slow, so it's not possible to tap it really quickly to move quickly forward/backward. Could use some optimization.
  • (General) App crashes if you enter wrong login credentials
  • (Android) When reopening the app, it shows a weird sqlite permission error. App still works fine after dismissing.
  • (Android) when app launches it is briefly white. Should see if it's possible to change so you won't get blinded by a bright color when launching app.
  • (Android) Dismissed notification reappears, even when no media is playing.
  • (Android) Tapping a list item, gives an orange highlight. Would be nice with Emby green instead.
  • (iOS) app needs quite a lot of styling. Some parts are still white instead of dark.
  • (iOS) Menu button is called "Master". Should be renamed to "Menu".
  • (iOS) When app launches it is briefly bright blue. Should see if it's possible to change so you won't get blinded by a bright color when launching app.
  • (iOS) Status bar text and icons (clock + battery etc) are black on a dark background. Should be white for better visibility.
  • (iOS) Play/pause on lockscreen doesn't work
  • (iOS) Artwork is not shown in media notification
  • (iOS) Lockscreen current playback position and total duration is for current file. Consider changing to show for whole book.
  • (iOS) Tapping a list item, gives a white highlight. Would be nice with Emby green instead.
  • (Windows) Artwork is not shown in media notification unless it is embedded into the mp3 files.
  • (Windows) When app launches it is briefly bright blue. Should see if it's possible to change so you won't get blinded by a bright color when launching app.
  • (Windows) Browsing server and folders, list items are very short, making it hard to tap the right one.
  • (Windows) After tapping an item in the menu, the menu disappears and there is no way to bring it back. This might not be the case for mobile, but it is so for desktop. This may cause delays for Windows release.

 

And my to-do list for things I want to implement later. Some might be implemented before first alpha, if I find them more interesting than what I'm currently working on:

 

  • Adjust media notification buttons to forward/rewind X seconds instead of their current skip skip/back file functionality.
  • Option to automatically rewind X seconds when resuming (to catch up on last sentence from your last listening session) (already started research how to do).
  • Sleep timer (stop playing after X minutes)
  • Seek to.. If you start listening to a new audiobook, where you've already heard halfway, it's currently very tedious to forward to the point you're at. I'll implement a button where you can enter timestamp for the time you'd like to seek to.
  • Tap notification to go to "Currently Playing" in app.
  • Show a "mini" version of "Currently Playing" on all pages of the app. Play/pause, seek, name and possibly cover. Tap to open full "Currently Playing".
  • Test multi-server support (should be implemented, but I haven't been able to test yet).
  • Cast to Google Cast (Chromecast etc).
  • Android Wear (control playback - it may already be supported through media notification controls, not sure).
  • I probably will never support Apple Watch. I don't expect enough income from this project, to make it worthwhile to buy an Apple Watch for development.
  • Open for more suggestions

Oh, and I made this logo for the app (I hope it's not against Emby rules that it bears so much resemblance)

5991b8f0e908b_logo_375x375.png

Edited by Inrego
  • Like 3
Link to comment
Share on other sites

Oh, and one more thing. I am also looking into providing automatic metadata search for AudioBooks via the server plugin. It will get metadata from google books api.

However, it seems that Emby Server doesn't support automatic metadata grabbing of AudioBooks. Read more here: https://emby.media/community/index.php?/topic/49936-audiobook-doesnt-inherit-ihaslookupinfo/&do=findComment&comment=476259

Link to comment
Share on other sites

I'm ordering a Mac Mini tomorrow (whether my boss will pay for it or not), to be able to build and debug iOS version too.

It's getting near ready for first alpha version to close friends. I've been testing on Android and Windows 10 so far, but looks are primarily designed for Android (it's not that pretty on Windows, but fully functional).

I'm thinking I will start the alpha before offline functionality is fully implemented, since it's an edge case anyway (everyone I know are always online).

  • Like 2
Link to comment
Share on other sites

First round of tests will be just close IRL friends. It's probably full of bugs, which I don't want the world to experience just yet. I expect to start that round during the weekend.

 

Sent from my ONEPLUS A3003 using Tapatalk

Link to comment
Share on other sites

But I can treat you to a few screenshots while you wait!
9ad133e9e057627c082aff259672c331.jpg77824deefcfb9a3b5de68ef2cf948c01.jpg3e270854eeae15f51e6d6e39be5be674.jpg2a7ffcf91034502b9ac7270baa949c4c.jpg

Sent from my ONEPLUS A3003 using Tapatalk

Edited by Inrego
  • Like 3
Link to comment
Share on other sites

This looks great! Thanx for taking the time to do this up, I'm pumped to try it out. Quick question, currently my folder structure is Audiobooks>Author-Name of book>files, or Author-series title>Name of Book>files, do you think an adjustment will be necessary?

Link to comment
Share on other sites

This looks great! Thanx for taking the time to do this up, I'm pumped to try it out. Quick question, currently my folder structure is Audiobooks>Author-Name of book>files, or Author-series title>Name of Book>files, do you think an adjustment will be necessary?

 

No that won't be necessary. You browse your folders just like on Emby. Difference is, that once you tap a folder that is full of audiofiles, the app will treat it as an AudioBook. So you can keep any folder structure that you want (although less nesting means fewer taps to find your book).

 

If you want artwork, you need to have it in the folder of your audiofiles.

If you want author, you need to fill either artist in the audiofile metadata, or add a writer person to the folder in Emby metadata manager.

If you want book description, you need to add it to the folder in Emby metadata manager.

 

I will also be looking into adding functionality to server plugin, to automate these things. But there doesn't seem to be a good way to add metadata to folders in Emby, so I'll have to come up with something clever.

If you haven't added artwork to a book, it will just use EmBook logo wherever artwork would've showed.

Edited by Inrego
  • Like 1
Link to comment
Share on other sites

I've added "known issues" to my "main post" (mostly a reminder to myself). However, once it hits public alpha/beta, I will create a seperate thread.

Link to comment
Share on other sites

btw I bought a Mac Mini today, so I can get working on making sure it's working on iOS. So far there are def. some iOS issues. I hope they will not delay the alpha too much.

Link to comment
Share on other sites

Any chance of making this part of the core?

 

 

If not no big and I would even be willing to pay for this.

Edited by mediacowboy
Link to comment
Share on other sites

Any chance of making this part of the core?

 

 

If not no big and I would even be willing to pay for this.

 

I don't think the app itself will be made part of the core.

I don't think their apps are open source (at least I haven't been able to find the source code).

 

The book metadata and generally better support for AudioBooks serverside should def. be made part of the core, and I have a vision that it will one day :D

Until then, I developed a server plugin that fills the gaps that I ran into. One of them being, that I wanted to save current progress for the whole book - not individual audiofiles. That means I need to save progress on a folder, which Emby understandably doesn't support normally. My plugin does that.

Another issue with using Emby's built-in "progress", is "Resume Settings":

5995cef2efa6b_Capture.png

 

While these make great sense for movies and tv series, they ruin the experience for AudioBooks. Just saving progress on folders gets me around that, while I can be rather confident that Emby will never mess with the value (for now, anyway).

Link to comment
Share on other sites

I've run into a small delay. iOS is causing unexpected problems.

 

I am developing in C#, sharing all code between the platforms (Windows, iOS and Android). So actually, I'm just developing 1 app that works for all the platforms. While it works on Android and Windows, iOS is giving me troubles in the login process to Emby server. I'm not sure the cause of it, but it means I've decided to do it a little differently. Instead of using the C# library for all platforms, I will change to use the platform-specific library for each platform. So that means iOS will use the Swift library, Android will use the Java library, and Windows will use the C# library (the one I'm currently using).

That also means, that all the code that has anything to do with connection to Emby server, will have to be written x3 (once for each platform). It's not that much code, but it still means there will be a little delay.

Link to comment
Share on other sites

I've run into a small delay. iOS is causing unexpected problems.

 

I am developing in C#, sharing all code between the platforms (Windows, iOS and Android). So actually, I'm just developing 1 app that works for all the platforms. While it works on Android and Windows, iOS is giving me troubles in the login process to Emby server. I'm not sure the cause of it, but it means I've decided to do it a little differently. Instead of using the C# library for all platforms, I will change to use the platform-specific library for each platform. So that means iOS will use the Swift library, Android will use the Java library, and Windows will use the C# library (the one I'm currently using).

That also means, that all the code that has anything to do with connection to Emby server, will have to be written x3 (once for each platform). It's not that much code, but it still means there will be a little delay.

 

Just fyi, I would strongly consider using shared javascript instead so that you can use our JS api libraries and pair that together with native UI for each platform.

 

The api libraries for each platform are getting to be too much for us to handle because they are quite large. If you are referring to this:

https://github.com/MediaBrowser/Emby.ApiClient.Swift

 

Nothing is currently using that, and to be honest it's not complete. The C# is also no longer used in production by any Emby app, although the Ember third party app uses it. We are using the java version in production, but hopefully not much longer.

Link to comment
Share on other sites

As far as core improvements go, we are happy to look at your plugin with the possibility of integrating it into the core.

Link to comment
Share on other sites

Just fyi, I would strongly consider using shared javascript instead so that you can use our JS api libraries and pair that together with native UI for each platform.

 

The api libraries for each platform are getting to be too much for us to handle because they are quite large. If you are referring to this:

https://github.com/MediaBrowser/Emby.ApiClient.Swift

 

Nothing is currently using that, and to be honest it's not complete. The C# is also no longer used in production by any Emby app, although the Ember third party app uses it. We are using the java version in production, but hopefully not much longer.

Thank you for the information. I'm quite invested in Xamarin already, so I don't think JS is really an alternative for me at this moment.

I am only using a few api calls, so maybe I should make my own implementation of it in C#, with the few things that I need - or another option could be to dig deeper as to why the current library is causing problems on iOS.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...