>group books by author
That's an interesting need, and not one I've heard before. I sort all of my books on a hard drive, with all my books as tagged Opus (single) files in folders by author and series (like yours), and rarely if ever have more than five or six books on my phone at a time.
>simply trust the metadata, wherever it finds the file, I would use it. If it had reasonable sorting and grouping
If Voice is 90% of the way to the app you need, and it sounds like it might be, there's no harm in dropping a feature request on GitHub. I've had great luck working with open source developers in the past, and most are eager to implement new features that would make their app more attractive. You can create an issue about books in subfolders getting merged as a bug while you're at it.
I have found this old issue in their issue queue: https://github.com/PaulWoitaschek/Voice/issues/699
Maybe that folder is empty or Voice is not recogniting the files in it for some reason.
Try adding something else, some other mp3 or mp4 file or directory with it.
They are available as MP3s. You can use any audio or audiobook player that supports MP3. I use Voice on Android, which you can get though the Play Store, F-Droid, or sideload directly.
If you want a specific app to browse and download them, I don't have one to recommend.
I've developed an audiobook player where you can add a root folder containing your audiobooks and it will recognize audiobooks based on the exact folder structure:
​
Does that mean that my app is effectively dead once Android Q goes live? Or is it possible somehow to use the document file api to check which folders / audio files / cover files are in a directory and what the exact subfolder structure is?
well, as far as i know, m4b's are just mpeg-4 containers and mpeg-4 is just quicktime.
so, maybe this will be useful: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html
i also found this kotlin code: https://github.com/PaulWoitaschek/Voice/tree/master/chapterreader/src/main/java/de/ph1b/audiobook/chapterreader
which seems to imply it depends on what audio format is being held in the mp4 container.