This specification provides a draft version of an Audiobook Profile for a Web Publication. It also references a framework for packaging audiobooks.

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.

Introduction

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

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 packaged.

The Publishing Working Group is currently working on this topic.

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 define how user agents are expected to render Audiobooks. Details about the types of afforances that user agents can provide to enhance the reading experience for users are instead defined in [[PWP-UCR]].

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 [[wpub]].

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 book.

Specification

Construction

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.

Primary Entry Page

The primary entry page represents the preferred starting resource for an Audiobook and enables discovery of its manifest. For the full specification of the primary entry page, please refer to [[wpub]].

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.

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.

The Web Publication specification [[wpub]] defines the general structure of the Table of Contents in HTML [[html]].

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

The requirement for a table of contents if supplemental content is present is being discussed in WPUB #408.

Refer to the table of contents property definition for more information on how to identify which resource contains the table of contents.

Manifest

Introduction

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 Web Publications [[wpub]]. Where these properties are extended from Web Publications is specified in this section.

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
		{
			"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
			…
		}
					

Publication Type

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

	{
			"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
			"type"     : "Audiobook"
			…
	}
	

Properties

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.

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:

		{
		    "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"
		    }
		}
		
		{
				"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/"
				}
		}
						

Duration

A duration is the length of the audio resources in an Audiobook. The duration property is fully defined in the Web Publications 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.

									{
									    "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" : "PT123456789S"
									}
								
									{
											"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" : "PT12345.235S"
									}
								

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.

The relationship to LinkedResource is explained in the core specification. The Working Group is exploring including AudioObject as well [[schema.org]].

								{
									"@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" : "12:45:03.123"
									}]
								}
							
								{
									"@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.mp3#0",
										"encodingFormat" : "audio/mp3",
										"name"  : "Chapter 1",
										"duration" : "457.931"
									}, {
										"type"  : "LinkedResource",
										"url"   : "audio/part001.mp3#457.932",
										"encodingFormat" : "audio/mp3",
										"name"  : "Chapter 2",
										"duration" : "234.245"
									}]
								}
							

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.

								{
									"@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"
									]
								}
							

Packaging

Audiobooks will be packaged using the method described in the Packaged Web Publications specification.

Manifest Examples

Simple Audiobook

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


			

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": "12:34:56.789",
						"inLanguage": "en",
						"dateModified": "2019-03-29T15:59:00Z",
						"datePublished": "2019-03-29",

						"readingOrder": [
							{"url": "audio/chapter001.mp3", "encodingFormat": "audio/mp3", "name": "Chapter 1", "duration": "1234.567"},
							{"url": "audio/chapter002.mp3", "encodingFormat": "audio/mp3", "name": "Chapter 2", "duration": "890.123"},
							{"url": "audio/chapter003.mp3", "encodingFormat": "audio/mp3", "name": "Chapter 3", "duration": "456.789"},
							{"url": "audio/chapter004.mp3", "encodingFormat": "audio/mp3", "name": "Chapter 4", "duration": "987.654"},
							{"url": "audio/chapter005.mp3", "encodingFormat": "audio/mp3", "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"}
						]
					}
				

Table of Contents Examples

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>
				

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>