Copyright © 2019 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
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].
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.
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].
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 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.
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.
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.
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.
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.
An Audiobook manifest MUST start by setting the JSON-LD context [json-ld]. The context has the following two major components:
https://schema.org
https://www.w3.org/ns/wp-context
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
…
}
An audiobook's< manifest MUST define its Publication Type using the type
term [pub-manifest], [json-ld]. The type MUST be Audiobook
[schema.org].
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
"type" : "Audiobook"
…
}
The requirements for the expression of Audiobook properties are defined as follows:
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.
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/"
}
}
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.
{
"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"
}
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
.
{
"@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"
}]
}
{
"@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"
}]
}
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"
]
}
Previews are a common way to provide users an experience of the full content before purchasing or downloading the full audiobook.
A preview is identified using the preview
link relation, as defined in [pub-manifest].
Previews MAY be located externally or included as a resource of the audiobook.
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
"type" : "Audiobook",
"url" : "https://publisher.example.org/janeeyre",
"name" : "Jane Eyre",
"resources" : [{
"type" : "LinkedResource",
"url" : "https://publisher.example.org/jane-eyre-preview.wav",
"encodingFormat" : "audio/wav",
"rel" : "preview"
}]
}
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/wp-context"],
"type" : "Audiobook",
"url" : "https://publisher.example.org/janeeyre",
"name" : "Jane Eyre",
"resources" : [{
"type" : "LinkedResource",
"url" : "preview.wav",
"encodingFormat" : "audio/wav",
"rel" : "preview"
}]
}
This section is non-normative.
Audiobooks will be packaged using the method described in the Lightweight Packaging Format note.
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.
{
"@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",
"alternate" : "sync-media/part001-1.json"
}, {
"type" : "LinkedResource",
"url" : "audio/part001.wav#457.932",
"encodingFormat" : "audio/vnd-wav",
"name" : "Chapter 2",
"duration" : "234.245",
"alternate" : "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"
}...
]
}
As Audiobooks is a profile of Publication Manifest [pub-manifest], all security and privacy considerations detailed in that specification are applicable to this profile.
This profile acknowledges the following considerations:
This section is non-normative.
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 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",
"abridged": "false",
"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"}
]
}
This section is non-normative.
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>
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>
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>
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: