Jump to content

AudioBook folder structure?


Inrego

Recommended Posts

Inrego

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

I'm not sure if my "workarounds" would fit into the core. So far, I basically just have an endpoint that allows me to save CurrentTicks in UserInfo for a folder. This is what I can use to resume playback on different devices.

I think if it should be implemented in core, it would require a well thought-out re-implementation of AudioBooks in core. Here are the points I think one should have in mind when doing so:

 

  • Resume settings should be ignored, they don't make sense for AudioBooks.
  • Knowing progress of individual audio-files is generally not interesting. Just need current progress for whole audiobook.
  • AudioBooks should be abstracted into a Book (which contains the metadata, cover etc), and files that make up an audiobook. There's no reason to save metadata for each item inside an audiobook. There's typically up to 100 files that are just different bits/pieces of the same book.
  • Even the files could possibly be abstracted into a long stream of audio that you can cut up into specific-sized intervals (for example, book consists of 60 files of 12 MB. That is abstracted into a 720 MB file, that through api's etc is seen as 72 files of 10 MB. This gives better control for syncing only parts of a book to touch device. Some AudioBooks are delivered as a single file, and this would solve that inconsistency.
Link to comment
Share on other sites

Ok, I thought you had added internet metadata providers so in terms of incorporating something that would be the main point of interest.

Link to comment
Share on other sites

Inrego

Ok, I thought you had added internet metadata providers so in terms of incorporating something that would be the main point of interest.

I do plan on implementing internet metadata provider. But there are some issues that I have to overcome first.

  1. Emby does not seem to call metadataprovider of type IRemoteMetadataProvider<AudioBook, SongInfo> (see more in our discussion about it here: https://emby.media/community/index.php?/topic/49936-audiobook-doesnt-inherit-ihaslookupinfo/&do=findComment&comment=476357 )
  2. Even if the above worked, it would be grabbing metadata for each and every audio file in an audiobook. I would only want to put it on the containing folder.

So again, I can probably come up with some workarounds - but for it to be worthy of implementing into the core, I think AudioBook support would need some reconstruction (ref above point #2).

 

Just like many episodes are abstracted into a series, I think many audiobook files should be abstracted into an AudioBook, I think it's actually just a matter of determining which folder is the actual AudioBook folder, and make that an AudioBookFolder type. Metadata and progress is then saved there.

Link to comment
Share on other sites

Inrego

Ok so I started debugging why iOS didn't work, and I found the answer.. It was something so simple that my device name had characters in it that weren't valid for http headers.

EDIT: After I implemented filtering out invalid chars, it seems iOS app works great. Just some styling stuff to do (some pages are white, when they should be dark).

Edited by Inrego
Link to comment
Share on other sites

Dibbes

Looking great! And as I said before, I agree with this statement :)

 

mediacowboy, on 17 Aug 2017 - 6:59 PM, said:snapback.png

Any chance of making this part of the core?


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

Link to comment
Share on other sites

Inrego

The iOS app is now up to date looks-wise. So now that all apps are in sync again in that regard, I will continue implementing the last functionality before alpha.

I have updated the Known Issues list to be sorted by platform. I will likely not fix all of them before release (as some are so minor it's not really important).

Link to comment
Share on other sites

mediacowboy

Please let me know if you need a andriod tester. I have a Samsung S8 Plus.

Link to comment
Share on other sites

Inrego

Found some issues at first alpha test last night. They are fixed, and the app seems pretty stable now.

 

Today I'll focus on implementing automatic metadata grabbing on the server plug-in. I figured I do it as a scheduled task. You can run it manually after adding new books, or set it to run daily.

 

Also, I've published the app to play store for broader alpha testing soon. I'm awaiting publication from Google.

 

Sent from my ONEPLUS A3003 using Tapatalk

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

Inrego

So the metadata grabbing is done too. It searches on Google Books for metadata. But I did run into api limits when developing, so in order to make sure we don't call the webservice too often, I had to make some changes so we don't re-check every single book every time the task is run.

 

At first, I thought I'd just put a tag on books that we already grabbed for, and if you for some reason wanted to re-grab metadata, you could just go to metadata manager and remove the tag. However, I think I found a bug in Emby, in that all tags are deleted on server restart. So instead, I fill the "Sort Title" with the title of the book. That means, if for whatever reason you want the plugin to re-grab data for an audiobook next time it's run, you have to clear the Sort Title field. It's a bit of a hassle if you actually use it (for example to sort books in a series), but from my experience it's not too bad.

 

Also, there's the chance that it matches a wrong book. To fix that, you can create a file in your audiobook folder called isbn.txt which just contains the isbn number. Can be either isbn10 or isbn13. Please be aware that you have to provide isbn for the textbook versions of the audiobooks, since google books does not have any metadata for audiobooks.

 

If you want to exclude a book from the metadata grabbing altogether, you can either set a sort title yourself, or create an isbn.txt file that is empty or simply just contains the number 0.

 

Of course, all this information is quite relevant, so it will also be in the release post in a seperate thread (which I will make soon, when public beta testing is ready to begin).

 

Currently, the app is in closed alpha testing on play store, and I just have a single known bug on Android that I want to fix before letting you guys in. Stay tuned.

  • Like 1
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
×
×
  • Create New...