Audiobook Profile for Publication Manifest

W3C Working Draft

This version:
https://www.w3.org/TR/2019/WD-audiobooks-20190830/
Latest published version:
https://www.w3.org/TR/audiobooks/
Latest editor's draft:
https://w3c.github.io/audiobooks/
Previous version:
https://www.w3.org/TR/2019/WD-audiobooks-20190620/
Editor:
Wendy Reid (Rakuten/Kobo)
Participate:
GitHub w3c/audiobooks
File a bug
Commit history
Pull requests

Abstract

This specification provides a draft version of an Audiobook specification for the web. It references the [pub-manifest] for its vocabulary. This document also contains references to [lpf] and [sync-media-pub].

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

This draft is still under consideration within the Publishing Working Group and is subject to change. The most prominent issues will be referenced in the document with links provided.

This document was published by the Publishing Working Group as a Working Draft. This document is intended to become a W3C Recommendation.

GitHub Issues are preferred for discussion of this specification. Alternatively, you can send comments to our mailing list. Please send them to public-publ-wg@w3.org (archives).

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 1 March 2019 W3C Process Document.

1. Introduction

This specification is a profile of the Publication Manifest specification. It will describe the requirements to create an Audiobook.

An Audiobook is defined as a collection of audio resources grouped together by a reading order, metadata, and resources, all contained in a manifest. This Audiobook can live on the Open Web Platform, or as a packaged entity.

This specification is intended to standardize the audiobooks distribution model on the web and between businesses. It should facilitate different user agent architectures for the consumption of Audiobooks. The primary goal is to bring clarity to a part of the publishing industry currently underserved by standards, while opening Audiobooks to the Open Web Platform and new user agents. This specification does not outline what file types or formats should be used by content creators, only a manifest format for delivering them.

This specification does not define how user agents are expected to render Audiobooks. Details about the types of affordances that user agents can provide to enhance the reading experience for users are instead defined in [PWP-UCR].

1.1 Terminology

Terms with meanings specific to the publishing industry are capitalized in this document (e.g., "Reading System"). A complete list of these terms and definitions is provided in [pub-manifest].

Only the first instance of a term in a section is linked to its definition.

In addition, the following terminology is defined for use in this specification:

Supplemental Content

Supplemental content is any content relating to the audiobook content but not required for the full experience of the publication. Examples of supplemental content include photographs, charts, or data relating to topics mentioned in the audiobook.

2. Specification

2.1 Construction

2.1.1 Bounds

An Audiobook consists of a finite set of resources that represent its content. This extent is known as its bounds and is defined within its manifest — it is obtained from the union of resources listed in the default reading order and resource list.

To determine whether a resource is within the bounds of an Audiobook, user agents MUST compare the absolute URL of a resource to the absolute URLs of the resources obtained from the union. If the resource is identified in the enumeration, it is within the bounds of the Audiobook. All other resources are external to the Audiobook.

Resources within the bounds of a Audiobook do not have to share the same domain.

2.1.2 Primary Entry Page

The primary entry page represents the preferred starting resource for an Audiobook and enables discovery of its manifest.

The primary entry page is an HTML resource that typically introduces the audiobook and provides access to the content. It SHOULD contain the table of contents to facilitate user consumption. The address of the primary entry page is also the canonical identifier (i.e., it serves as its unique identifier) for the audiobook when present.

It is not required that the primary entry page be included in the default reading order, as the Audiobooks profile requires that only audio resources be present. The primary entry page should instead, if present, be included as a resource.

2.1.3 Table of Contents

The table of contents provides a hierarchical list of links that reflects the structural outline of the major sections of the Audiobook and any supplemental content it may contain.

The table of contents is expressed via an [html] element (typically a nav element) in one of the resources. This element MUST be identified by the role attribute [html] value "doc-toc" [dpub-aria-1.0], and MUST be the first element in the document — in document tree order [dom] — with that role value.

If the table of contents is not located in the primary entry page, the manifest SHOULD identify the resource that contains the structure.

When an Audiobook contains additional resources (i.e. supplemental content) a table of contents SHOULD be included, the table of contents SHOULD include a link to all resources, and all links SHOULD refer to resources within publication bounds.

2.2 Manifest

2.2.1 Introduction

This section is non-normative.

The Audiobook manifest is defined by a set of properties that describe the basic information a user agent requires to process and render an Audiobook. These properties are categorized in the Publication Manifest [pub-manifest]. Where these properties are extended from the Publication Manifest is specified in this section.

2.2.2 Manifest Contexts

An Audiobook manifest MUST start by setting the JSON-LD context [json-ld]. The context has the following two major components:

  • the [schema.org] context: https://schema.org
  • the publication context: https://www.w3.org/ns/wp-context
Example 1: The context declaration.
{
	"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
	…
}

2.2.3 Publication Type

An audiobook's< manifest MUST define its Publication Type using the type term [pub-manifest], [json-ld]. The type MUST be Audiobook [schema.org].

Example 2: Setting a publication's type to Audiobook.
{
		"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
		"type"     : "Audiobook"
		…
}

2.2.4 Properties

2.2.4.1 Requirements

The requirements for the expression of Audiobook properties are defined as follows:

REQUIRED:
RECOMMENDED:

These properties do not all have to be serialized in the authored manifest. Refer to each property's definition to determine whether it is required in the manifest or can be compiled into the canonical manifest from other information.

2.2.4.2 Creators

A creator is an individual or entity responsible for the creation of the Web Publication. The Audiobooks profile can use the full list of creators specified in Web Publications.

The creators list includes two recommended creators for Audiobooks:

Example 3: Author of a book
{
    "type"     : "Audiobook",
    "@context" : ["https://schema.org","https://www.w3.org/ns/wp-context"],
    …
    "url"      : "https://publisher.example.org/janeeyre",
    "author"   : {
        "type"  : "Person",
        "name"  : "Charlotte Bronte"
    }
}
Example 4: Author and Narrator of an Audiobook
{
		"type"		: "Audiobook";
		"@context": ["https://schema.org", "https://www.w3.org/ns/wp-context"],
		…
		"url"			: "https://publisher.example.org/janeeyre",
		"author"	: {
				"type": "Person",
				"name": "Charlotte Bronte"
		}
		"readBy"	: {
				"type": "Person",
				"name": "Ivan Herman",
				"id"	: "https://www.w3.org/People/Ivan/"
		}
}
2.2.4.3 Duration

A duration is the length of the audio resources in an Audiobook. The duration property is fully defined in the Publication Manifest specification.

Duration SHOULD be expressed for the entirety of the audiobook as part of the manifest, and SHOULD be present at the item level in the default reading order.

Example 5: Duration of an Audiobook in Seconds
{
		"type"     : "Audiobook",
		"@context" : ["https://schema.org","https://www.w3.org/ns/wp-context"],
		…
		"url"      : "https://publisher.example.org/janeeyre",
		"author"   : {
				"type"  : "Person",
				"name"  : "Charlotte Bronte"
		},
		"duration" : "12345.235"
}
2.2.4.4 Default Reading Order

The default reading order is a specific progression through the audio resources in the audiobook.

The default reading order MUST contain at least one audio resource, which MAY be identified by the type of LinkedResource.

Example 6: Audiobook Reading Order for a Single Resource
{
	"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
	"type"		 : "Audiobook",
	"url"			 : "https://publisher.example.org/janeeyre",
	"name"		 : "Jane Eyre",
	"readingOrder" : [{
		"type"	: "LinkedResource",
		"url"   : "audio/janeeyre.mp3",
		"encodingFormat" : "audio/mp3",
		"name"  : "Jane Eyre",
		"duration" : "124503.123"
	}]
}
Example 7: Audiobook Reading Order for Multiple Resources
{
	"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
	"type"		 : "Audiobook",
	"url"			 : "https://publisher.example.org/janeeyre",
	"name"		 : "Jane Eyre",
	"readingOrder" : [{
		"type"	: "LinkedResource",
		"url"   : "audio/part001.wav#0",
		"encodingFormat" : "audio/vnd-wav",
		"name"  : "Chapter 1",
		"duration" : "457.931"
	}, {
		"type"  : "LinkedResource",
		"url"   : "audio/part001.wav#457.932",
		"encodingFormat" : "audio/vnd-wav",
		"name"  : "Chapter 2",
		"duration" : "234.245"
	}]
}
2.2.4.5 Resource List

The resource list enumerates any additional resources used in the processing and rendering of an audiobook that are not listed in the reading order. It is expressed using the resources property.

If an audiobook includes supplemental content it MUST be referenced in the resource list.

Example 8: Audiobook with Supplemental Content
{
	"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
	"type"		 : "Audiobook",
	"url"			 : "https://publisher.example.org/janeeyre",
	"name"		 : "Jane Eyre",
	"resources" : [
		"cover.jpg",
		"portrait_CB.jpg",
		"supplement.pdf"
	]
}

2.3 Packaging

This section is non-normative.

Audiobooks will be packaged using the method described in the Lightweight Packaging Format note.

2.4 Accessibility

This section is non-normative.

The history of the audiobook is rooted in the world of accessibility. To create a fully accessible audiobook, it is recommended to use the Synchronized Media note to create documents where text and audio can be completely synchronized.

To create an accessible audiobook using Synchronized Media, you need to both reference the alternative file on the item in the reading order, as well as list the file in the resources.

Alternatively, a content creator can provide the text equivalent as HTML [html] resources in the resources.

Example 9: Audiobook with Synchronized Media
{
	"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
	"type"		 : "Audiobook",
	"url"      : "https://publisher.example.org/janeeyre",
	"name"     : "Jane Eyre",
	"readingOrder" : [{
		"type"	: "LinkedResource",
		"url"   : "audio/part001.wav#0",
		"encodingFormat" : "audio/vnd-wav",
		"name"  : "Chapter 1",
		"duration" : "457.931",
		"alternative" : "sync-media/part001-1.json"
	}, {
		"type"  : "LinkedResource",
		"url"   : "audio/part001.wav#457.932",
		"encodingFormat" : "audio/vnd-wav",
		"name"  : "Chapter 2",
		"duration" : "234.245",
		"alternative" : "sync-media/part001-2.json"
	}],
	"resources" : [{
     "type": "LinkedResource",
     "url": "sync-media/part001-1.json",
     "encodingFormat" : "application/vnd.wp-sync-media+json"
   }, {
		"type": "LinkedResource",
		"url" : "sync-media/part001-2.json",
		"encodingFormat" : "application/vnd.wp-sync-media+json"
	}...
	]
}

3. Security

Editor's note
Placeholder for security issues.

4. Privacy

Editor's note
Placeholder for privacy issues.

A. Manifest Examples

This section is non-normative.

A.1 Simple Audiobook

A manifest for an audiobook. The canonical version of this manifest is also available.

{
  "@context": ["https://schema.org", "https://www.w3.org/ns/wp-context"],
  "type": "Audiobook",
  "id": "https://librivox.org/flatland-a-romance-of-many-dimensions-by-edwin-abbott-abbott/",
  "url": "https://w3c.github.io/wpub/experiments/audiobook/",
  "name": "Flatland: A Romance of Many Dimensions",
  "author": "Edwin Abbott Abbott",
  "readBy": "Ruth Golding",
  "publisher": "Librivox",
  "inLanguage": "en",
  "dateModified": "2018-06-14T19:32:18Z",
  "datePublished": "2008-10-12",
  "duration": "PT15153S",
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",

  "resources": [
    {
      "rel": "cover",
      "url": "http://ia800704.us.archive.org/9/items/LibrivoxCdCoverArt12/Flatland_1109.jpg",
      "encodingFormat": "image/jpeg"
    },{
      "rel": "contents", 
      "url": "toc.html", 
      "encodingFormat": "text/html"
    }
  ],

  "readingOrder": [
    {
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_1_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1371,
      "name": "Part 1, Sections 1 - 3"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_2_abbott.mp3",
      "encodingFormat": "audio/mpeg", 
      "length": 1669,
      "name": "Part 1, Sections 4 - 5"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_3_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1506,
      "name": "Part 1, Sections 6 - 7"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_4_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1669,
      "name": "Part 1, Sections 8 - 10"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_5_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1506,
      "name": "Part 1, Sections 11 - 12"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_6_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1798,
      "name": "Part 2, Sections 13 - 14"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_7_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1225,
      "name": "Part 2, Sections 15 - 17"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_8_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "length": 1371,
      "name": "Part 2, Sections 18 - 20"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_9_abbott.mp3", 
      "encodingFormat": "audio/mpeg",
      "length": 1659,
      "name": "Part 2, Sections 21 - 22"
    }
  ]
}

A.2 Audiobook with Supplemental Content

A manifest for an audiobook with supplemental content.

{
	"@context": ["https://schema.org", "https://www.w3/org/ns/wp-context"],
	"type": "Audiobook",
	"id": "https://publisher.example.com/janeeyre",
	"url": "https://publisher.example.com/janeeyre",
	"name": "Jane Eyre",
	"author": "Charlotte Bronte",
	"readBy": "Jane Doe",
	"duration": "123456.789",
	"inLanguage": "en",
	"dateModified": "2019-03-29T15:59:00Z",
	"datePublished": "2019-03-29",

	"readingOrder": [
		{"url": "audio/chapter001.aac", "encodingFormat": "audio/aac", "name": "Chapter 1", "duration": "1234.567"},
		{"url": "audio/chapter002.aac", "encodingFormat": "audio/aac", "name": "Chapter 2", "duration": "890.123"},
		{"url": "audio/chapter003.aac", "encodingFormat": "audio/aac", "name": "Chapter 3", "duration": "456.789"},
		{"url": "audio/chapter004.aac", "encodingFormat": "audio/aac", "name": "Chapter 4", "duration": "987.654"},
		{"url": "audio/chapter005.aac", "encodingFormat": "audio/aac", "name": "Chapter 5", "duration": "321.987"}
	],

	"resources": [
	{"rel": "cover", "url": "images/cover.jpg", "encordingFormat": "image/jpeg"},
	{"rel": "contents", "url": "toc.html", "encodingFormat": "text/html"},
	{"url": "haworth_house.pdf", "encodingFormat": "application/pdf"}
	]
}

B. Table of Contents Examples

This section is non-normative.

B.1 Primary Entry Page with a Table of Contents

A primary entry page with a simple table of contents for an audiobook.

	<head><script type="application/ld+json">
    {
        "@context"        : ["https://schema.org","https://www.w3.org/ns/wp-context"],
        "type"            : "Audiobook",
        …
        "url"             : "https://publisher.example.org/janeeyre",
        …
    }
    </script></head>
<body><section role="doc-toc">
			<ol>
			 <li><a href="audio/chapter001.wav">Chapter 1. There was no possibility of taking a walk that day...</a></li>
			 <li><a href="audio/chapter002.wav">Chapter 2. I resisted all the way:...</a></li>
			 <li><a href="audio/chapter003.wav">Chapter 3. The next thing I remember is,...</a></li></ol>
    </section></body>

B.2 Simple Table of Contents

A table of contents for a simple audiobook.

<nav role="doc-toc">
	 <h2>JANE EYRE</h2>

	 <ol>
		<li><a href="audio/chapter001.mp3">Chapter 1. There was no possibility of taking a walk that day...</a></li>
		<li><a href="audio/chapter002.mp3">Chapter 2. I resisted all the way:...</a></li>
		<li><a href="audio/chapter003.mp3">Chapter 3. The next thing I remember is,...</a></li></ol>
	</nav>

B.3 Table of Contents with Media Fragments

A table of contents using media fragment references to locations in a single audio track.

<nav role="doc-toc">
	<h2>JANE EYRE</h2>

	<ol>
		<li><a href="https://example.publisher.org/janeeyre/part001.mp3">Chapter 1</a></li>
		<li><a href="https://example.publisher.org/janeeyre/part001.mp3#456.789">Chapter 2</a></li>
		<li><a href="https://example.publisher.org/janeeyre/part001.mp3#1234.567">Chapter 3</a></li>
	</ol>
</nav>

C. Acknowledgements

This section is non-normative.

The editors would like to specially thank the following individuals for making significant contributions to the authoring and editing of this specification:

Additionally, the following people were members of the Working Group at the time of publication:

D. References

D.1 Normative references

[json-ld]
JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 16 January 2014. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
[pub-manifest]
Publication Manifest. Matt Garrish; Ivan Herman. 2018-08-16. URL: https://www.w3.org/TR/pub-manifest/
[schema.org]
Schema.org. URL: https://schema.org

D.2 Informative references

[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[dpub-aria-1.0]
Digital Publishing WAI-ARIA Module 1.0. Matt Garrish; Tzviya Siegman; Markus Gylling; Shane McCarron. W3C. 14 December 2017. W3C Recommendation. URL: https://www.w3.org/TR/dpub-aria-1.0/
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[lpf]
Lightweight Packaging Format (LPF). Laurent Le Meur. 2018-08-07. URL: https://w3c.github.io/lpf/
[PWP-UCR]
Web Publications Use Cases and Requirements. Franco Alvarado; Joshua Pyle. W3C. 13 August 2019. W3C Note. URL: https://www.w3.org/TR/pwp-ucr/
[sync-media-pub]
Packaging Synchronized Narration for Web Publications. Marisa DeMeglio; Daniel Weck. 2019-07-12. URL: https://w3c.github.io/sync-media-pub/packaging.html