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>

Masz pyta­nia? Chcesz nawią­zać współ­pracę?

Skon­tak­tuj się z nami!

Znamy się na auto­ma­ty­za­cji i opty­ma­li­za­cji pro­ce­sów wydaw­ni­czych.
Przy­go­to­wu­jemy roz­wią­za­nia dla kon­kret­nego wydaw­nic­twa.
Co możemy dla Cie­bie zro­bić? Napisz do nas: kon­takt@eli­bri.com.pl