Książki elektroniczne
Do systemu elibri są dodawane zarówno e-booki, jak i audiobooki. E-book może być dostępny w jednym lub większej ilości formatów, na przykład::
<Product>
<DescriptiveDetail>
<ProductForm>EA</ProductForm> <!-- e-book -->
<ProductFormDetail>E101</ProductFormDetail> <!-- EPUB -->
<ProductFormDetail>E127</ProductFormDetail> <!-- Mobipocket -->
</DescriptiveDetail>
</Product>
Audiobook ma zawsze tylko jeden format, jest nim albo archiwum zip z zapakowanymi w nim plikami mp3, albo format Audiobook W3C, czyli też archiwum zip z plikami, ale dodatkowo uzupełniony o plik json z manifestem.
<Product>
<DescriptiveDetail>
<ProductForm>AJ</ProductForm> <!-- audiobook w formie pliku -->
<ProductFormDetail>A113</ProductFormDetail> <!-- Audiobook W3C (LPF) -->
</DescriptiveDetail>
</Product>
ProductFormDetail zawiera informację o formacie pliku e-booka lub audiobooka:
| Wartość | Opis |
|---|---|
E101 (EPUB) |
EPUB |
E107 (PDF) |
PDF |
E127 (MOBIPOCKET) |
Mobipocket |
A103 (MP3) |
Pliki MP3 w archiwum ZIP |
A113 (LPF) |
Audiobook W3C (LPF) |
Wydawnictwa mogą podać również datę, po której e-book czy audiobook cyfrowy automatycznie zostaną wycofane ze sprzedaży. Używana jest do tego, podobnie jak to podania daty premiery,
struktura w PublishingDate. PublishingDateRole może przyjmować wartości:
| Wartość | Opis |
|---|---|
01 (PUBLICATION_DATE) |
data publikacji |
13 (OUT_OF_PRINT_DATE) |
data, po której książka zostanie wycofana z rynku |
<Product>
<PublishingDetail>
<PublishingDate>
<PublishingDateRole>01</PublishingDateRole> <!-- data publikacji -->
<Date dateformat="00">20210307</Date>
</PublishingDate>
<PublishingDate>
<PublishingDateRole>13</PublishingDateRole> <!-- data, po której książka zostanie wycofana z rynku -->
<Date dateformat="00">20340307</Date>
</PublishingDate>
</PublishingDetail>
</Product>
Audiobook W3C (LPF)
Format ten jest odpowiedzią na problem braku standardu przekazywania metadanych dla plików wchodzących w skład audiooboka. Nagranie ksiażki jest zwyczajowo dystrybuowane jako plik zip zawierający pliki mp3 z uzupełnionymi znacznikami (tytuł, artysta, album). W praktyce jednak nie działa to zbyt dobrze. Nowy standard rozwiązuje te problemy. Z perspektywy polskiego runku dwa problemy są najważniejsze: wydawca może przekazać spis treści audiobooka oraz załączyć dodatkowe dodatkowe pliki. Obie te informajce zostaną umieszczone w manifeście (plik package.json). Stworzyliśmy również bezpłatne narzędzie pozwalające na pakowanie audiobooków w nowym formacie: https://bookery.pl/w3c_audiobook_packager
Oto przykładowy manifest:
{
"@context": [
"https://schema.org",
"https://www.w3.org/ns/pub-context",
{
"language": "pl",
"direction": "ltr"
}
],
"conformsTo": "https://www.w3.org/TR/audiobooks/",
"type": "Audiobook",
"accessMode": "auditory",
"accessibilityFeature": [
"readingOrder",
"unlocked"
],
"accessModeSufficient": [
{
"type": "ItemList",
"itemListElement": [
"auditory"
],
"description": "Audio"
}
],
"id": "0d1c3367-2771-4cd4-b00d-aa6f099c140c",
"duration": "PT1H17M58S",
"name": "Wojna biedaków",
"author": "Éric Vuillard",
"readBy": "Waldemar Barwiński",
"publisher": "Wydawnictwo Literackie",
"inLanguage": "pl",
"readingOrder": [
{
"url": "001-i-dzieje-to-ma-sza-mun-zera.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT5M19S",
"name": "I. Dzieje Tomasza Münzera"
},
{
"url": "002-ii-zwic-kau.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT4M9S",
"name": "II. Zwickau"
},
{
"url": "003-iii-bog-i-lud-mo-wia-tym-sa-mym-je-zy-kiem.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT19M7S",
"name": "III. Bóg i lud mówią tym samym językiem"
},
{
"url": "004-iv-w-cze-chach.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT5M19S",
"name": "IV. W Czechach"
},
{
"url": "005-v-caly-swiat.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT3M",
"name": "V. Cały świat"
},
{
"url": "006-vi-slowo.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT2M16S",
"name": "VI. Słowo"
},
{
"url": "007-vii-ka-za-nie-do-ksia-zat.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT4M49S",
"name": "VII. Kazanie do książąt"
},
{
"url": "008-viii-lato-stoi-u-progu.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT3M49S",
"name": "VIII. Lato stoi u progu"
},
{
"url": "009-ix-bunt-zwy-klego-czlo-wieka.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT10M26S",
"name": "IX. Bunt zwykłego człowieka"
},
{
"url": "010-x-ostat-nie-li-sty.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT4M24S",
"name": "X. Ostatnie listy"
},
{
"url": "011-xi-slowa.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT2M54S",
"name": "XI. Słowa"
},
{
"url": "012-xii-bi-twa-pod-fran-ken-hau-sen.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT6M9S",
"name": "XII. Bitwa pod Frankenhausen"
},
{
"url": "013-xiii-mun-zer-sciety.mp3",
"encodingFormat": "audio/mpeg",
"duration": "PT6M17S",
"name": "XIII. Münzer ścięty"
}
],
"resources": [
{
"rel": "cover",
"url": "cover.jpeg",
"encodingFormat": "image/jpeg"
},
{
"url": "map.jpeg",
"encodingFormat": "image/jpeg",
"name": "Mapa Czech"
}
]
}
Fragmenty książek cyfrowych
W przypadku e-booków i audiobooków dołączana jest również informacja o plikach towarzyszących książce (jeśli tylko zostaną wgrane przez wydawcę).
Fragmenty książki są reprezentowane identycznie jak załączniki,
przy czym ResourceContentType ma wartość 15 (fragment publikacji), a linki do poszczególnych formatów są umieszczone w ResourceVersion.
W ResourceLink jest bezpośredni link do pliku, a wartości w ResourceVersionFeature oraz ContentDate pozwalają sprawdzić, czy posiadają Państwo
u siebie aktualną wersję pliku. Proszę nie linkować bezpośrednio do serwera elibri.
<Product>
<CollateralDetail>
<SupportingResource>
<ResourceContentType>15</ResourceContentType> <!-- fragment książki -->
<ContentAudience>00</ContentAudience> <!-- brak ograniczeń -->
<ResourceMode>04</ResourceMode> <!-- tekst -->
<ResourceVersion>
<ResourceForm>02</ResourceForm> <!-- plik do pobrania -->
<ResourceVersionFeature>
<ResourceVersionFeatureType>01</ResourceVersionFeatureType> <!-- format pliku -->
<FeatureValue>E101</FeatureValue> <!-- EPUB -->
</ResourceVersionFeature>
<ResourceVersionFeature>
<ResourceVersionFeatureType>06</ResourceVersionFeatureType> <!-- wartość hasha md5 -->
<FeatureValue>4b145ff46636b06f49225abdab70927f</FeatureValue>
</ResourceVersionFeature>
<ResourceVersionFeature>
<ResourceVersionFeatureType>07</ResourceVersionFeatureType> <!-- rozmiar w bajtach -->
<FeatureValue>2100230</FeatureValue>
</ResourceVersionFeature>
<ResourceLink>
https://www.elibri.com.pl/excerpt/767/fragment.epub
</ResourceLink>
<ContentDate>
<ContentDateRole>17</ContentDateRole> <!-- zawsze: data ostatniej aktualizacji -->
<Date dateformat="13">20121230T1518Z</Date>
</ContentDate>
</ResourceVersion>
<ResourceVersion>
<ResourceForm>02</ResourceForm> <!-- plik do pobrania -->
<ResourceVersionFeature>
<ResourceVersionFeatureType>01</ResourceVersionFeatureType> <!-- format pliku -->
<FeatureValue>E127</FeatureValue> <!-- Mobipocket -->
</ResourceVersionFeature>
<ResourceVersionFeature>
<ResourceVersionFeatureType>06</ResourceVersionFeatureType> <!-- wartość hasha md5 -->
<FeatureValue>6f534ab6ab573845bb7ab221192aa86a</FeatureValue>
</ResourceVersionFeature>
<ResourceVersionFeature>
<ResourceVersionFeatureType>07</ResourceVersionFeatureType> <!-- rozmiar w bajtach -->
<FeatureValue>2101254</FeatureValue>
</ResourceVersionFeature>
<ResourceLink>
https://www.elibri.com.pl/excerpt/768/fragment.mobi
</ResourceLink>
<ContentDate>
<ContentDateRole>17</ContentDateRole> <!-- zawsze: data ostatniej aktualizacji -->
<Date dateformat="13">20121230T1516Z</Date>
</ContentDate>
</ResourceVersion>
</SupportingResource>
</CollateralDetail>
</Product>
ResourceVersionFeatureType może przyjmować wartości:
| Wartość | Opis |
|---|---|
01 (FILE_FORMAT) |
format pliku |
06 (MD5_HASH_VALUE) |
wartość hasha md5 |
07 (SIZE_IN_BYTES) |
rozmiar w bajtach |
Informacja o masterach
W opisie produktu można również znaleźć informację, czy wydawca wgrał do kartoteki produktu tzw. pliki master, a więc pliki, które będą sprzedawane (po zwatermarkowaniu). Przy każdym pliku jest podana jego suma kontrolna md5 oraz data wgrania pliku.
<Product>
<ProductionDetail>
<ProductionManifest>
<BodyManifest>
<BodyResource>
<SequenceNumber>1</SequenceNumber>
<ResourceIdentifier>
<ResourceIDType>01</ResourceIDType> <!-- zawsze: wewnętrzny identyfikator -->
<IDTypeName>elibri internal numerical ID</IDTypeName>
<IDValue>765</IDValue>
</ResourceIdentifier>
<ResourceFileFeature>
<ResourceFileFeatureType>07</ResourceFileFeatureType> <!-- dokładny rozmiar pliku -->
<ResourceFileFeatureValue>4197382</ResourceFileFeatureValue>
</ResourceFileFeature>
<ResourceFileFeature>
<ResourceFileFeatureType>06</ResourceFileFeatureType> <!-- md5 -->
<ResourceFileFeatureValue>e9353ce40eaa677f8c5d666c2f8bbb3f</ResourceFileFeatureValue>
</ResourceFileFeature>
<ResourceFileLink>ebook.epub</ResourceFileLink>
<ResourceFileDate>
<ResourceFileDateRole>17</ResourceFileDateRole> <!-- zawsze: data ostatniej aktualizacji -->
<Date dateformat="13">20121230T1518Z</Date>
</ResourceFileDate>
</BodyResource>
<BodyResource>
<SequenceNumber>2</SequenceNumber>
<ResourceIdentifier>
<ResourceIDType>01</ResourceIDType> <!-- zawsze: wewnętrzny identyfikator -->
<IDTypeName>elibri internal numerical ID</IDTypeName>
<IDValue>766</IDValue>
</ResourceIdentifier>
<ResourceFileFeature>
<ResourceFileFeatureType>07</ResourceFileFeatureType> <!-- dokładny rozmiar pliku -->
<ResourceFileFeatureValue>5246982</ResourceFileFeatureValue>
</ResourceFileFeature>
<ResourceFileFeature>
<ResourceFileFeatureType>06</ResourceFileFeatureType> <!-- md5 -->
<ResourceFileFeatureValue>d2c75a26973a1888f241125717b166cf</ResourceFileFeatureValue>
</ResourceFileFeature>
<ResourceFileLink>ebook.mobi</ResourceFileLink>
<ResourceFileDate>
<ResourceFileDateRole>17</ResourceFileDateRole> <!-- zawsze: data ostatniej aktualizacji -->
<Date dateformat="13">20121230T1516Z</Date>
</ResourceFileDate>
</BodyResource>
</BodyManifest>
</ProductionManifest>
</ProductionDetail>
</Product>
ResourceFileFeatureType może przyjmować wartości:
| Wartość | Opis |
|---|---|
06 (MD5) |
md5 |
07 (EXACT_FILE_SIZE) |
dokładny rozmiar pliku |
E-prasa
Prasa w wydaniu elektronicznym ma identyczny format, jak e-book, z dwoma wyjątkami: wydanie prasy ma numer ISSN (w poniższym przykładzie 0137-8929), na ogół nie ma też numeru ISBN.
<Product>
<RecordReference>fdb8fa072be774d97a97</RecordReference>
<DescriptiveDetail>
<ProductComposition>00</ProductComposition> <!-- zawsze: samodzielny produkt -->
<ProductForm>EA</ProductForm> <!-- e-book -->
<Collection>
<CollectionType>10</CollectionType> <!-- zawsze: kolekcja wydawnictwa -->
<CollectionIdentifier>
<CollectionIDType>02</CollectionIDType>
<IDValue>0137-8929</IDValue>
</CollectionIdentifier>
<TitleDetail>
<TitleType>01</TitleType> <!-- tytuł -->
<TitleElement>
<TitleElementLevel>02</TitleElementLevel> <!-- kolekcja -->
<PartNumber>10/2014</PartNumber>
<TitleText>Wiedza i Życie</TitleText>
</TitleElement>
</TitleDetail>
</Collection>
<TitleDetail>
<TitleType>01</TitleType> <!-- tytuł -->
<TitleElement>
<TitleElementLevel>01</TitleElementLevel> <!-- produkt -->
<TitleText language="pol">Wiedza i życie 10/2014</TitleText>
</TitleElement>
</TitleDetail>
<TitleDetail>
<TitleType>10</TitleType> <!-- tytuł wydawcy -->
<TitleElement>
<TitleElementLevel>01</TitleElementLevel> <!-- produkt -->
<TitleText>WIEDZIA I ŻYCIE 10/2014</TitleText>
</TitleElement>
</TitleDetail>
</DescriptiveDetail>
</Product>