Booksonic-Air icon indicating copy to clipboard operation
Booksonic-Air copied to clipboard

[Feature Request] Support W3C Publication Manifest as source for metadata

Open DigitalFeonix opened this issue 2 years ago • 3 comments

The W3C has been working on a method on a recommendation for a standard package for Audiobooks like has happened to ebooks with EPUB. The W3C Audiobooks spec makes use of their Publication Manifest to describe both the metadata of the audiobook overall as well as the tracks.

I have been creating some of these publication.json files for the audiobooks I have collected. I just installed Booksonic-Air via Docker and would love for it to be able to read these files instead of having to create a bunch of reader.txt and desc.txt files to get any metadata into the server's DB.

It would be even better if Booksonic would support the packaged version so we could have a single compressed file on the server.

Sources: https://github.com/w3c/audiobooks https://github.com/w3c/wpub/blob/main/explainers/audio-explainer.md https://github.com/w3c/publ-tests/

DigitalFeonix avatar Mar 14 '22 05:03 DigitalFeonix

Looks great, will be looking in to this

popeen avatar Apr 25 '22 19:04 popeen

Awesome. Could you provide an example? The spec is a little intense.

On Mon, Apr 25, 2022, 12:19 PM Patrik Johansson @.***> wrote:

Looks great, will be looking in to this

— Reply to this email directly, view it on GitHub https://github.com/popeen/Booksonic-Air/issues/66#issuecomment-1108946990, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ7H6JF6CMPFR3LPMQAKILVG3V5JANCNFSM5QUPUYCA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

wtanksleyjr avatar Apr 25 '22 20:04 wtanksleyjr

You can look for the publication.json files inside of https://github.com/w3c/publ-tests/tree/main/test_content/audiobooks for several examples from W3C. The README in that directory also has some links to .lpf files -- which are the packaged versions of some of those samples.

Packaged audiobooks must conform with the LPF (lightweight packaging format) spec -- which is just a zip file with a different extension -- MUST include at least one of these:

  • publication.json (publication manifest)
  • index.html (the Primary Entry Page (or PEP) that will link to or embed the manifest file)

The publication manifest only requires the following keys

  • @context
  • conformsTo
  • name (publication title)
  • readingOrder (array of either URL strings or LinkedResource objects with a minimum of the url key)

Partial example from one of my created manifest files

{
  "@context": ["https://schema.org", "https://www.w3.org/ns/pub-context"],
  "conformsTo": "https://www.w3.org/TR/audiobooks/",
  "name": "World of Warcraft: Shadows Rising",
  "author": "Madeleine Roux",
  "readBy": "Susan Wokoma",
  "readingOrder": [
      {
        "url": "Shadows Rising World of Warcraft  - 003.mp3",
        "encodingFormat": "audio/mpeg",
        "name": "Prologue: Westfall",
        "duration": "PT22M53S"
      }
  ]
}

If you want to, the JSON schema for the audiobook manifest is here: https://github.com/w3c/audiobooks/tree/main/schema

In the context of this issue, I think you would only need to look for and parse a publication.json file in addition to the desc.txt and reader.txt files when handling a directory of audio files. I understand that supporting the packaged format would take significantly more development time.

DigitalFeonix avatar Apr 27 '22 19:04 DigitalFeonix