База даных audiobooks.by

audiobooks.by - самы поўны каталог беларускіх аўдыякніг. У дадатак да зручнага вэб-інтэрфейса наш каталог кніг можна атрымаць у структураваным JSON фармаце па спасылцы:

https://audiobooks.by/data.json

Навошта data.json?

data.json будзе карысны, калі вы хочаце стварыць свой уласны сайт ці праграму, альбо інтэграваць аўдыякнігі ва ўжо існуючы сайт. Замест таго, каб парсіць старонкі audiobooks.by, мы прадстаўляем адмысловы файл.

Таксама файл можа быць выкарыстаны, каб зрабіць аналіз беларускіх аўдыякніг. Напрыклад, знайсці аўдыякнігу з найбольшай колькасцю агучак:

// run from devtools on data.json page
const data = JSON.parse(document.body.innerText);
data.books.reduce((a, b) => a.narrations.length > b.narrations.length ? a : b);

Схема data.json

Ніжэй мы апісваем схему файла з дапамогай TypeScript сінтаксіса. Але майце на ўвазе, што бягучая схема можа не супадаць з тым, што ніжэй. Таму самы надзейны спосаб — гэта адкрыць data.json і паглядзець.

interface Data {
  books: Book[];
  people: Person[];
  link_types: LinkType[];
  tags: Tag[];
  publisers: Publisher[];
}

interface Book {
  uuid: string;
  title: string;
  description: string;
  description_source: string;
  slug: string;
  // list of Person.uuid
  authors: string[];
  narrations: Narrations[];
  // list of Tag.id
  tags: number[];
}

interface Narration {
  // list of Person.uuid
  narrators: string[];
  date: string;
  links: Links[];
  duration: number;
  cover_image: string|null;
  cover_image_source: string;
  // list of Person.uuid
  translators: string[];
  description: string;
}

interface Link {
  url: string;
  // list of LinkType.id
  url_type: number;
}

interface Person {
  uuid: string;
  name: string;
  description: string;
  description_source: string;
  photo: string|null;
  photo_source: string;
  slug: string;
  gender: string;
}

interface LinkType {
  id: number;
  name: string;
  caption: string;
  icon: string;
}

interface Tag {
  id: number;
  name: string;
  slug: string;
}

interface Publisher {
  uuid: string;
  name: string;
  slug: string;
  description: string;
  logo: string;
  url string;
}
    

Умовы выкарыстання

Пры выкарыстанні data.json спасылацца на audiobooks.by не абавязкова, але пажадана. Нам будзе прыемна ведаць, што плён нашай працы карысны іншым.

data.json аднаўляецца штогадзінна.

Калі ёсць пытанні — пішыце на contact@audiobooks.by.