Skip to content
This repository has been archived by the owner on Mar 23, 2024. It is now read-only.

Commit

Permalink
Aligned with RWPM
Browse files Browse the repository at this point in the history
  • Loading branch information
Hadrien Gardeur committed Aug 7, 2018
1 parent 41cb525 commit 89c1275
Show file tree
Hide file tree
Showing 14 changed files with 11 additions and 87 deletions.
52 changes: 7 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,43 +25,24 @@
{"rel": "alternate", "href": "http://example.org/audiobook.m3u", "type": "audio/mpegurl", "bitrate": 64}
],

"spine": [
"readingOrder": [
{"href": "http://example.org/part1.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1980, "title": "Part 1"},
{"href": "http://example.org/part2.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1200, "title": "Part 2"},
{"href": "http://example.org/part3.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1140, "title": "Part 3"}
],

"timeline": [
{"href": "http://example.org/part1.mp3#t=0,299", "title": "Introduction"},
{"href": "http://example.org/part1.mp3#t=300", "title": "Part 1", "children": [
{"href": "http://example.org/part1.mp3#t=300,1319", "title": "Chapter 1"},
{"href": "http://example.org/part1.mp3#t=1320", "title": "Chapter 2"}
]},
{"href": "http://example.org/part2.mp3", "title": "Part 2", "children": [
{"href": "http://example.org/part2.mp3#t=0,539", "title": "Chapter 3"},
{"href": "http://example.org/part2.mp3#t=540,839", "title": "Chapter 4"},
{"href": "http://example.org/part2.mp3#t=840", "title": "Chapter 5"}
]},
{"href": "http://example.org/part3.mp3", "title": "Part 3", "children": [
{"href": "http://example.org/part3.mp3#t=0,599", "title": "Chapter 6"},
{"href": "http://example.org/part3.mp3#t=600", "title": "Chapter 7"}
]}
]
}
```


## Introduction

There is no single dominant format for audiobooks and so far IDPF/W3C hasn't shown any particular interest in them.

The goal of this document is to provide an audiobook profile for the [Readium Web Publication Manifest](https://github.com/readium/webpub-manifest) that will cover the following requirements:

- provide metadata
- list the different components of an audiobook
- support multiple audio formats and means of accessing an audiobook (streaming or downloads)

While the Audiobook Manifest is technically a profile of the Web Publication Manifest, it has its own media type and file extension in order to maximize compatibilty with audio apps:
While the Audiobook Manifest is technically a profile of the Readium Web Publication Manifest, it has its own media type and file extension in order to maximize compatibilty with audio apps:

- its media type is `application/audiobook+json`
- its file extension is `.audiobook-manifest`
Expand All @@ -75,11 +56,11 @@ The core metadata for the audiobook manifest are based on [the default context f
- it must also include the `narrator` element


## Listing Audio Files (Spine)
## Listing Audio Files

An audiobook is divided into one or more audio files, which are all listed in the `spine` of the manifest, in reading order.
An audiobook is divided into one or more audio files, which are all listed in the `readingOrder` of the manifest, in reading order.

In addition to the normal requirements of a `spine`, all link objects have the following additional requirements:
In addition to the normal requirements of a `readingOrder`, all link objects have the following additional requirements:

- all link objects must point strictly to audio files
- every link object must include a `duration` that provides the duration of each individual audio file
Expand All @@ -99,25 +80,6 @@ A manifest can also specify the cover of an audiobook using the `cover` relation
```


## Timeline

A manifest can also provide additional navigation through a `timeline` collection.

A timeline is a list of labels pointing to specific timestamps in an audiobook.

Each link object in a `timeline` collection has the following requirements:

- it must point to an audio file listed in the `spine` and use a media fragment to point to a specific timestamp
- it must provide a `title`
- it must not use `type`, `duration` or `bitrate` to avoid duplication with the `spine`

If omitted, then the `spine` should have all infomation needed to label chapters.

Timelines are typically most useful for two scenarios:

- Audiobooks with a complex table of contents
- When the spine contains a single file, and therefore no chapter information.

## Container

In order to facilitate distribution, both manifest and audio files can also be distributed using a container.
Expand All @@ -131,8 +93,8 @@ The container also has the following properties:

When an audiobook is distributed in a container (instead of simply as a manifest), the manifest has the following additional restrictions:

- the `spine` must strictly reference audio files that are present in the container
- to reference such files, all URIs in the `spine` must be relative to the manifest (at the root of the container)
- the `readingOrder` must strictly reference audio files that are present in the container
- to reference such files, all URIs in the `readingOrder` must be relative to the manifest (at the root of the container)

## Live Demo

Expand Down
4 changes: 2 additions & 2 deletions examples/flatland.audiobook-manifest
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"@type": "http://bib.schema.org/Audiobook",
"identifier": "https://librivox.org/flatland-a-romance-of-many-dimensions-by-edwin-abbott-abbott/",
"title": "Flatland: A Romance of Many Dimensions",
"author": {"name": "Edwin Abbott Abbott", "sort_as": "Abbott, Abbott Edwin"},
"author": {"name": "Edwin Abbott Abbott", "sortAs": "Abbott, Abbott Edwin"},
"narrator": "Ruth Golding",
"language": "en",
"description": "Flatland: A Romance of Many Dimensions is an 1884 science fiction novella by the English schoolmaster Edwin Abbott Abbott. As a satire, Flatland offered pointed observations on the social hierarchy of Victorian culture. However, the novella's more enduring contribution is its examination of dimensions; in a foreword to one of the many publications of the novella, noted science writer Isaac Asimov described Flatland as \"The best introduction one can find into the manner of perceiving dimensions.\" As such, the novella is still popular amongst mathematics, physics and computer science students. (Summary by Wikipedia)",
Expand All @@ -24,7 +24,7 @@
{"rel": "alternate", "href": "http://www.archive.org/download/flatland_rg_librivox/flatland_rg_librivox_archive.torrent", "type": "application/x-bittorrent"}
],

"spine": [
"readingOrder": [
{"href": "http://www.archive.org/download/flatland_rg_librivox/flatland_1_abbott.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1371, "title": "Part 1, Sections 1 - 3"},
{"href": "http://www.archive.org/download/flatland_rg_librivox/flatland_2_abbott.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1669, "title": "Part 1, Sections 4 - 5"},
{"href": "http://www.archive.org/download/flatland_rg_librivox/flatland_3_abbott.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1506, "title": "Part 1, Sections 6 - 7"},
Expand Down
Binary file removed examples/flatland.audiobook/cover.jpg
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_1_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_2_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_3_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_4_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_5_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_6_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_7_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_8_abbott.mp3
Binary file not shown.
Binary file removed examples/flatland.audiobook/flatland_9_abbott.mp3
Binary file not shown.
38 changes: 0 additions & 38 deletions examples/flatland.audiobook/manifest.json

This file was deleted.

4 changes: 2 additions & 2 deletions examples/mousquetaires.audiobook-manifest
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"title": "Les Trois Mousquetaires",
"author": {
"name": "Alexandre Dumas",
"sort_as": "Dumas, Alexandre",
"sortAs": "Dumas, Alexandre",
"identifier": "http://www.isni.org/isni/0000000121012885"
},
"narrator": "Jc Guan",
Expand All @@ -25,7 +25,7 @@
{"rel": "cover", "href": "http://ia802605.us.archive.org/20/items/LibrivoxCdCoverArt5/troismousquetaires_dumas_1008.jpg", "type": "image/jpeg", "height": 300, "width": 300}
],

"spine": [
"readingOrder": [
{"href": "https://www.archive.org/download/trois_mousquetaires_0810_librivox/troismousquetaires_00_dumas.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 375, "title": "Préface"},
{"href": "https://www.archive.org/download/trois_mousquetaires_0810_librivox/troismousquetaires_01_dumas.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 2482, "title": "Les trois présents de M. d'Artagnan père"},
{"href": "https://www.archive.org/download/trois_mousquetaires_0810_librivox/troismousquetaires_02_dumas.mp3", "type": "audio/mpeg", "bitrate": 128, "duration": 1694, "title": "L'antichambre de M. de Tréville"},
Expand Down

0 comments on commit 89c1275

Please sign in to comment.