W3C Audiobooks specification


If you want to produce an Audiobook according to the recently published W3C specification, you need:

  • an HTML primary entry page (PEP)
  • a JSON-LD manifest, which may be embedded inside the former
  • a table of contents (TOC), likely <nav role="doc-toc"> inside the primary entry page
  • a resource list
  • audio files
  • supplemental files like pictures

Sample Manifest

  "@context": [
    {"language": "%LANGUAGE%"}
  "conformsTo": "https://www.w3.org/TR/audiobooks/",
  "type": "Audiobook",
  "name": "%ALBUM%", 
  "url": "%WWW…%",
  "author" : {
    "type": "Person",
    "name": "%LYRICIST%"
  "readBy": {
    "type": "Person",
    "name": "%ALBUMARTIST%",
    "id": "%WWWARTIST%"
  "duration" : "PT%_total_time_raw%S",
  "readingOrder" : [{
      "type": "LinkedResource",
      "url": "%_filename_rel%",
      "encodingFormat": "%_mimetype%",
      "name": "%TITLE%",
      "duration": "PT%_length_seconds%S"
    }, {
    … // loop output 
  "resources" : [
      "type" : "LinkedResource",
      "url": "cover.jpg", 
      "rel": "cover"
    "back.jpg", "spine.jpg", 
      "type" : "LinkedResource",
      "url" : "sample.mp3",
      "rel" : "preview"

I don’t think Mp3tag supports %_mimetype% for the media file yet (nor for the playlist).

The ISO 8601-1 notation for time periods can be constructed with an PT prefix and S suffix for the seconds, but it might be a good idea to introduce dedicated variables to output conformant strings like P2DT4H32M12S for roughly 52.5 hours.