An OPDS 1.2 catalog server that bridges Readest to Library Genesis (libgen.li), allowing you to search and download books directly from Readest's OPDS reader — no download limits, no authentication required.
- Search Library Genesis's full catalog via OPDS
- Multi-format downloads (epub, pdf, mobi, azw3, fb2, djvu, and more)
- No rate limits — Library Genesis has no per-IP download restrictions
- No authentication — works out of the box, no accounts needed
- Personal library — track favorites, reading status, progress, and want-to-read lists
- Download & search history with stats
- Web frontend — full SPA with search, library, downloads, and settings
- Web dashboard with stats and quick search
- OPDS 1.2 compatible — works with Readest, Calibre, KOReader, and other OPDS clients
Readest ──→ OPDS Server ──→ libgen.li
(this app)
Readest ←── OPDS Server ←── libgen.li
- Readest sends a search query via OPDS
- This server fetches
https://libgen.li/index.php?req=<query>and parses the HTML - Book metadata is extracted and returned as an OPDS Atom feed
- When you tap download, the server proxies the file from Library Genesis CDN
cd cOPDS
npm install
npm run devServer starts at http://localhost:3000. Add http://localhost:3000/opds as an OPDS feed in Readest.
- Push this repo to GitHub
- Connect to Railway
- Set environment variable:
BASE_URL=https://your-app.up.railway.app - Railway auto-detects and deploys
- Push to GitHub
- Create a new Web Service on Render
- Set:
- Build Command:
npm install - Start Command:
node server.js - Environment variable:
BASE_URL=https://your-app.onrender.com
- Build Command:
| Endpoint | Description |
|---|---|
GET /opds |
Root OPDS navigation catalog |
GET /opds/opensearch.xml |
OpenSearch description |
GET /opds/search?q={query}&page={n} |
Search books |
GET /opds/library |
Your library (all statuses) |
GET /opds/library/:status |
Filter by: downloaded, reading, finished, want-to-read, favorite |
GET /opds/library/downloads |
Download history |
GET /libgen/dl/:md5 |
Download proxy |
GET /opds/cover?url={coverUrl} |
Cover image proxy |
| Endpoint | Description |
|---|---|
GET /api/info |
Server info and stats |
GET /api/search?q={query}&page={n} |
Search books (JSON) |
GET /api/book/:bookId/details |
Book details |
GET /api/library |
Library books |
POST /api/library/add |
Add to library |
POST /api/library/remove |
Remove from library |
POST /api/library/progress |
Update reading progress |
GET /api/stats |
Usage statistics |
GET /api/history/downloads |
Download history |
GET /api/history/searches |
Search history |
- Open Readest → Settings → OPDS Catalogs
- Add new catalog with URL:
https://your-deployed-url/opds - Search for any book — results appear with covers, metadata, and download links
- Tap a book to download it directly into Readest
- Node.js 18+ with native
fetch - Express for HTTP routing
- Cheerio for HTML parsing
- better-sqlite3 for library persistence
- Library Genesis as source — unlimited, auth-free downloads