docs: full sweep — update all files to v2.3.0 with self-healing system

Updated 14 files across the repo to reflect v2.3.0:
- README.md: version badge, 46 endpoints, self-healing section, changelog
- test.js: version 2.3.0
- docs/*: architecture, endpoints, index, streaming — multi-mirror + fallback
- public/*: index.html, docs.html, openapi.json, manifest.json, privacy, tos
- api/proxy.js: updated example comments
- src/routes/apiRoutes.js: endpoint count 36→46

All version refs updated from 2.1.4/2.2.0 → 2.3.0.
Endpoint count updated to 46 (added /pipe-health).
miruro.tv refs updated to multi-domain (miruro.to/ru/bz/tv).
Syntax checks pass on all JS files.
This commit is contained in:
Shinei Nouzen
2026-07-02 07:23:27 +05:30
parent eb0e166310
commit a6acfc6445
14 changed files with 82 additions and 36 deletions
+12 -2
View File
@@ -62,7 +62,7 @@ MiruroAPI/
| Runtime | Node.js |
| Framework | Express.js |
| Metadata | AniList GraphQL (`graphql.anilist.co`) |
| Streaming | Miruro pipe (`miruro.tv/api/secure/pipe`) |
| Streaming | Miruro pipe (`miruro.{to,ru,bz,tv}/api/secure/pipe`) |
| Deployment | Vercel (Serverless) |
| Caching | In-memory Map with 1-5 min TTL |
| Static Files | Express static middleware |
@@ -120,11 +120,21 @@ Play M3U8 in HLS player (hls.js, video.js, native)
### Miruro Pipe
- **Endpoint:** `https://miruro.tv/api/secure/pipe`
- **Endpoint:** `https://miruro.{to,ru}/api/secure/pipe`
- **Data:** Episodes, streaming sources (M3U8 URLs)
- **Encoding:** Base64url + gzip compressed request/response
- **Providers:** kiwi, pewe, bee, bonk, bun, ally, nun, twin, cog, moo, hop, telli
## Self-Healing Fallback System (v2.3.0)
When Cloudflare blocks streaming requests, the API automatically tries fallback methods in order:
1. **Direct** → Mirror rotation across 4 domains (miruro.to, miruro.ru, miruro.bz, miruro.tv)
2. **ScraperAPI** → Free proxy bypass via ScraperAPI (1K req/month, requires `SCRAPER_API_KEY`)
3. **FlareSolverr** → Self-hosted browser proxy for full Cloudflare bypass
The system tracks success/failure rates per method and auto-rotates to the most reliable option. Check status via `/api/pipe-health`.
## Vercel Configuration
```json
+13 -3
View File
@@ -1,6 +1,6 @@
# API Endpoints Reference
Complete documentation for all 35 MiruroAPI v2.0.1 endpoints.
Complete documentation for all 45 MiruroAPI v2.3.0 endpoints.
---
@@ -591,12 +591,12 @@ API health status, version, uptime, memory, cache stats.
"success": true,
"results": {
"status": "healthy",
"version": "2.0.0",
"version": "2.3.0",
"uptime": "0h 0m 34s",
"node": "v24.14.1",
"memory": { "used": "13MB", "total": "15MB", "rss": "25MB" },
"cache": { "size": 12, "maxSize": 100 },
"endpoints": 35,
"endpoints": 45,
"providers": ["kiwi","pewe","bee","bonk","bun","ally","nun","twin","cog","moo","hop","telli"]
}
}
@@ -604,6 +604,16 @@ API health status, version, uptime, memory, cache stats.
---
## Pipe Health
```
GET /api/pipe-health
```
Returns the status of the self-healing fallback system — mirror availability, ScraperAPI/FlareSolverr status, and last successful method.
---
## Stats
```
+2 -2
View File
@@ -1,6 +1,6 @@
# MiruroAPI Documentation
> Free REST API for anime streaming data. 18 endpoints, 12 providers, M3U8 URLs. No API key required.
> Free REST API for anime streaming data. 46 endpoints, 12 providers, M3U8 URLs. No API key required.
## Overview
@@ -48,7 +48,7 @@ curl "https://mirurotvapi.vercel.app/api/episodes/20"
## Features
- **18 Endpoints** — Search, info, episodes, streaming, characters, relations, and more
- **46 Endpoints** — Search, info, episodes, streaming, characters, relations, and more
- **12 Streaming Providers** — M3U8 URLs with resolution, codec, fansub info
- **No API Key** — Just make requests, no registration needed
- **In-Memory Cache** — 1-5 minute TTL for fast responses
+10 -1
View File
@@ -234,5 +234,14 @@ const dubEps = kiwi.dub; // [{ id: "watch/kiwi/20/dub/...", ... }]
|-------|----------|
| "No episodes found" | Check the AniList ID is correct (use `/api/search` first) |
| "No providers" | The anime may not be available on any provider |
| Stream URL 403 | Some servers require specific referrer headers |
| Stream URL 403 | Some servers require specific referrer headers — the self-healing system auto-rotates mirrors |
| CORS error | Use a proxy or access from server-side |
## Self-Healing Fallback (v2.3.0)
When Cloudflare blocks streaming requests, the API automatically tries fallback methods:
- **Direct** → Mirror rotation across 4 domains (miruro.to, miruro.ru, miruro.bz, miruro.tv)
- **ScraperAPI** → Free proxy bypass (1K req/month, set `SCRAPER_API_KEY` env var)
- **FlareSolverr** → Self-hosted browser proxy for full Cloudflare bypass
Check the fallback system status: `GET /api/pipe-health`