Unofficial Flibusta API based on website search engine. If you like to read books - buy
npm install flibusta

Use yarn add flibusta or npm install flibusta
yarn install or npm install
For simple search
``sh`
yarn example-search-book-by-name [book name]
`sh`
yarn example-search-authors [author name]
`sh`
yarn example-search-book-by-series [series name]
For paginated search
`sh`
yarn example-search-book-by-name-paginated [book name] [page number] [items limit count]
`sh`
yarn example-search-authors-paginated [author name] [page number] [items limit count]
`sh`
yarn example-search-book-by-series-paginated [series name] [page number] [items limit count]
- The id of author##### Example
getBooksByAuthorOpds(6116)##### Response
Response
`json
[
{
"author": [
{
"name": "Конан Дойль Артур",
"uri": "/a/6116"
}
],
"title": "«Глория Скотт»",
"updated": "2022-02-22T08:35:39+01:00",
"categories": [
"Классический детектив"
],
"cover": "/i/0/214600/cover.jpg",
"downloads": [
{
"link": "/b/214600/fb2",
"type": "application/fb2+zip"
},
{
"link": "/b/214600/html",
"type": "application/html+zip"
},
{
"link": "/b/214600/txt",
"type": "application/txt+zip"
},
{
"link": "/b/214600/rtf",
"type": "application/rtf+zip"
},
{
"link": "/b/214600/mobi",
"type": "application/x-mobipocket-ebook"
}
],
"description": "Куда исчез фаворит предстоящих скачек жеребец Серебряный и кто убил его тренера? Кто пытается разлучить счастливых супругов Мунро и что за ужасное лицо появляется в окне соседнего дома? В какую аферу оказался вовлечен незадачливый биржевой маклер? И что делали таинственные гости из России в комнате пациента доктора Тревельяна? На эти вопросы берется ответить знаменитый Шерлок Холмс...
\n
Перевод: Любимова Галина
Формат: fb2
Язык: ru
Размер: 62 Kb
Скачиваний: 8387
Серия: Рассказы о Шерлоке Холмсе — 2. Записки о Шерлоке Холмсе #4
"
},
...
]
`
$3
* id - The id of author
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 20.##### Example
getBooksByAuthorOpdsPaginated(6116)##### Response
Response
`json
{
"items": [
{
"author": [
{
"name": "Конан Дойль Артур",
"uri": "/a/6116"
}
],
"title": "«Глория Скотт»",
"updated": "2022-02-22T08:35:39+01:00",
"categories": [
"Классический детектив"
],
"cover": "/i/0/214600/cover.jpg",
"downloads": [
{
"link": "/b/214600/fb2",
"type": "application/fb2+zip"
},
{
"link": "/b/214600/html",
"type": "application/html+zip"
},
{
"link": "/b/214600/txt",
"type": "application/txt+zip"
},
{
"link": "/b/214600/rtf",
"type": "application/rtf+zip"
},
{
"link": "/b/214600/mobi",
"type": "application/x-mobipocket-ebook"
}
],
"description": "Куда исчез фаворит предстоящих скачек жеребец Серебряный и кто убил его тренера? Кто пытается разлучить счастливых супругов Мунро и что за ужасное лицо появляется в окне соседнего дома? В какую аферу оказался вовлечен незадачливый биржевой маклер? И что делали таинственные гости из России в комнате пациента доктора Тревельяна? На эти вопросы берется ответить знаменитый Шерлок Холмс...
\n
Перевод: Любимова Галина
Формат: fb2
Язык: ru
Размер: 62 Kb
Скачиваний: 8387
Серия: Рассказы о Шерлоке Холмсе — 2. Записки о Шерлоке Холмсе #4
"
},
...
],
"currentPage": 0,
"hasNextPage": true,
"hasPreviousPage": false
}
`
$3
* name - The name of searched books.##### Example
getBooksByName('Шерлок')##### Response
Response
`json
[
{
"book": {
"id": 402475,
"name": "Шерлок Холмс и дело о папирусе (сборник) [= Шерлок Холмс против графа Дракулы (сборник)]"
},
"authors": [
{
"id": 33441,
"name": "Дэвид Стюарт Дэвис"
}
]
},
...
]
`
$3
* name - The name of searched books.##### Example
getBooksByNameFromOpds('Шерлок')##### Response
Response
`json
[
{
"author": [
{
"name": "Талышханов Адиль",
"uri": "/a/31745"
}
],
"title": "Путь бесхвостой птички или Иероглифика по методу Шерлока Холмса",
"updated": "2022-02-18T07:21:09+01:00",
"categories": [
"Языкознание, иностранные языки"
],
"downloads": [
{
"link": "/b/112478/download",
"type": "application/pdf+rar"
}
],
"description": "Формат: pdf
Язык: ru
Размер: 564 Kb
Скачиваний: 2632
"
},
...
]
`
$3
* name - The name of searched books.
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 20.##### Example
getBooksByNameFromOpdsPaginated('Шерлок', 0, 1)##### Response
Response
`json
{
"items": [
{
"author": [
{
"name": "Талышханов Адиль",
"uri": "/a/31745"
}
],
"title": "Путь бесхвостой птички или Иероглифика по методу Шерлока Холмса",
"updated": "2022-02-18T18:01:50+01:00",
"categories": [
"Языкознание, иностранные языки"
],
"downloads": [
{
"link": "/b/112478/download",
"type": "application/pdf+rar"
}
],
"description": "Формат: pdf
Язык: ru
Размер: 564 Kb
Скачиваний: 2632
"
}
],
"currentPage": 0,
"totalCountItems": 228,
"hasNextPage": true,
"hasPreviousPage": false,
"totalPages": 11
}
`
$3
* name - The name of searched books.
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 50.##### Example
getBooksByNamePaginated('Шерлок', 0, 1)##### Response
Response
`json
{
"items": [
{
"book": {
"id": 402475,
"name": "Шерлок Холмс и дело о папирусе (сборник) [= Шерлок Холмс против графа Дракулы (сборник)]"
},
"authors": [
{
"id": 33441,
"name": "Дэвид Стюарт Дэвис"
}
]
}
],
"currentPage": 0,
"totalCountItems": 228,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}
`
$3
* name - The name of searched books series.##### Example
getBooksBySeries('Шерлок')##### Response
Response
`json
[
{
"id": 242,
"name": "Шерлок Холмс с иллюстрациями",
"books": 11
},
{
"id": 30097,
"name": "Шерлок Холмс. Игра продолжается",
"books": 61
},
{
"id": 4154,
"name": "Шерлок Холмс. Новые приключения",
"books": 8
},
...
]
`
$3
* name - The name of searched books series.
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 50.##### Example
getBooksBySeriesPaginated('Шерлок', 0, 1)##### Response
Response
`json
{
"items": [
{
"id": 242,
"name": "Шерлок Холмс с иллюстрациями",
"books": 11
}
],
"currentPage": 0,
"totalCountItems": 39,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
`
$3
* name - The name of searched author.##### Example
getAuthors('конан')##### Response
Response
`json
[
{
"id": 6116,
"name": "Артур Конан Дойль",
"books": 584,
"translations": -1
},
{
"id": 17933,
"name": "Адриан Конан Дойл",
"books": 37,
"translations": -1
},
{
"id": 147059,
"name": "Андреас Конанос (архимандрит)",
"books": 19,
"translations": -1
},
{
"id": 6118,
"name": "Сьюзан Конант",
"books": 4,
"translations": -1
},
{
"id": 58754,
"name": "Александр Конаныхин",
"books": -1,
"translations": 1
}
]
`
$3
* name - The name of searched author.
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 50.##### Example
getAuthorsPaginated('конан', 0, 1)##### Response
Response
`json
{
"items": [
{
"id": 6116,
"name": "Артур Конан Дойль",
"books": 584,
"translations": -1
}
],
"currentPage": 0,
"totalCountItems": 5,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
`
$3
* id - The book id##### Example
getCoverByBookId(226302)##### Response
Response
`
File blob
`
$3
* name - The name of searched genre.##### Example
getGenres('роман')##### Response
Response
`json
[
{
"id": "det_irony",
"name": "Иронический детектив, дамский детективный роман"
},
{
"id": "love_contemporary",
"name": "Современные любовные романы"
},
{
"id": "love_history",
"name": "Исторические любовные романы"
},
{
"id": "love_detective",
"name": "Остросюжетные любовные романы"
},
{
"id": "love_short",
"name": "Короткие любовные романы"
},
{
"id": "love",
"name": "Любовные романы"
},
{
"id": "love_sf",
"name": "Любовное фэнтези, любовно-фантастические романы "
},
{
"id": "tale_chivalry",
"name": "Рыцарский роман"
},
{
"id": "adv_story",
"name": "Авантюрный роман"
},
{
"id": "gothic_novel",
"name": "Готический роман"
},
{
"id": "great_story",
"name": "Роман, повесть"
},
{
"id": "astrology",
"name": "Астрология и хиромантия"
}
]
`
$3
* name - The name of searched genre.
* page? - Optional to get books by name for page. By default 0.
* limit? - Optional. Limit rows count in items. By default 50.##### Example
getGenresPaginated('роман', 0, 2)##### Response
Response
`json
{
"items": [
{
"id": "det_irony",
"name": "Иронический детектив, дамский детективный роман"
},
{
"id": "love_contemporary",
"name": "Современные любовные романы"
}
],
"currentPage": 0,
"totalCountItems": 12,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
`
Onion Support
Thanks antis11 for an example
Example
`js
import { SocksProxyAgent } from 'socks-proxy-agent';import FlibustaAPI from 'flibusta';
(async () => {
// eslint-disable-next-line unicorn/no-unreadable-array-destructuring
const [/ original value /, / path to the file /, authorName] = process.argv;
const flibustaApi = new FlibustaAPI('http://flibustaongezhld6dibs2dps6vm4nvqg2kp7vgowbu76tzopgnhazqd.onion', {
httpAgent: new SocksProxyAgent('socks5h://127.0.0.1:9050'),
});
const searchAuthorsResult = await flibustaApi.getAuthors(authorName);
console.log(JSON.stringify(searchAuthorsResult, undefined, 2));
})();
``