Shinei Nouzen
160f83acf7
docs: remove unverified streaming claims — mark Worker as experimental/untitled
...
- README.md: streaming status section restored to original
- README.md: Worker deployment marked as experimental, untested
- CHANGELOG.md: edge-to-edge bypass marked as theoretical/untested
- Honest about what's verified vs unverified
2026-08-05 21:01:42 +05:30
Shinei Nouzen
5b020e53b0
docs: update README.md for v2.3.2 — Cloudflare Worker deployment, version badges, streaming status
2026-08-05 20:54:33 +05:30
Shinei Nouzen
a2ba1df831
feat: add Cloudflare Worker implementation for edge-to-edge streaming bypass
...
- Add worker.js: full API on Cloudflare's edge network (1720 lines)
- Add wrangler.toml: deployment configuration for wrangler CLI
- Streaming endpoints now bypass Cloudflare bot detection via edge-to-edge
- Zero cold starts, 100K free requests/day, no npm dependencies
- 15 endpoints: search, trending, info, episodes, watch, genres, random, etc.
- Self-healing fallback: direct → ScraperAPI → FlareSolverr
- Proper code style: box headers, JSDoc, feature markers, inline notes
- Bump version to 2.3.2 across package.json, server.js, apiRoutes.js
Fixes #2
2026-08-05 20:39:31 +05:30
Shinei Nouzen
d08bb86931
Update README with API status notice
...
Added note about API status and hosting requirements.
2026-07-25 20:02:57 +05:30
Shinei Nouzen
4912b5d6eb
docs: update CONTRIBUTING.md with bypass solutions guide
...
- Added Contributing Bypass Solutions section (priority)
- Added free/open source tool table
- Added step-by-step guide for contributors
- Added code style examples (headers, section markers, feature markers)
2026-07-02 10:13:33 +05:30
Shinei Nouzen
5d2534eff2
docs: add bypass solutions for community contributions
...
Added Contributing Bypass Solutions section to README with:
- Free/open source tools (nodriver, Camoufox, curl_cffi, FlareSolverr, etc.)
- Paid APIs (Scrape.do 1K free, ZenRows, ScrapingBee)
- Implementation guide for contributors
- .env.example updated with SCRAPE_DO_TOKEN
Encourages community to implement streaming bypass methods.
2026-07-02 10:12:28 +05:30
Shinei Nouzen
45b436d752
chore: remove Cloudflare Worker edition
...
Worker approach tested and confirmed non-functional:
- Both AniList and Miruro block CF Worker IPs (HTTP 403)
- Edge-to-edge assumption was wrong
Removed:
- worker.js (885 lines)
- README Worker section
- docs/architecture.md Worker section
- Cloudflare Worker script deleted from CF account
CHANGELOG.md kept as historical record.
2026-07-02 10:01:13 +05:30
Shinei Nouzen
4293683ae4
fix: update docs to reflect CF Worker blocking reality
...
Both AniList and Miruro block Cloudflare Worker IPs (HTTP 403).
Worker approach tested and confirmed non-functional:
- /api/genres → AniList 403: 'manually blocked'
- /api/search → AniList 403: 'manually blocked'
- /api/episodes → Miruro 403: blocked
Updated README.md and docs/architecture.md:
- Worker section marked as experimental
- Troubleshooting reordered: FlareSolverr > ScraperAPI > self-host
- Architecture doc updated with actual test results
2026-07-02 09:58:21 +05:30
Shinei Nouzen
2c97ca2dd8
docs: add Cloudflare Worker edition documentation
...
- README.md: Added Worker deployment section, updated troubleshooting
- Fix 1: Cloudflare Worker (best — free, works)
- Fix 2: ScraperAPI (paid, 9/mo)
- Fix 3: FlareSolverr (self-hosted)
- Fix 4: Self-host API
- Added Worker vs Vercel comparison table
- docs/architecture.md: Added Worker architecture section
- Why Workers work (edge-to-edge bypass)
- Worker runtime differences table
- 15 Worker endpoints listed
- Deploy instructions
- CHANGELOG.md: Added v2.3.1 entry for Worker edition
2026-07-02 09:34:18 +05:30
Shinei Nouzen
3f667fe87f
feat: Cloudflare Worker edition — runs on edge, bypasses Cloudflare
...
- 15 endpoints (search, trending, info, episodes, watch, etc.)
- Pipe requests bypass Cloudflare bot detection (edge-to-edge)
- Zero cold starts, 100K free requests/day
- No npm dependencies (native fetch + DecompressionStream)
- Full codebase comments matching repo style:
- Box-style headers (project/author/license)
- Section markers (// ==== SECTION ====)
- Feature markers (// ---- FEATURE: XYZ ----)
- Function-level JSDoc (params, returns, tricks)
- Inline notes for non-obvious logic
- Footer with endpoint summary
2026-07-02 09:16:00 +05:30
Shinei Nouzen
015aa67ec2
fix: ScraperAPI requires premium plan for protected domains like Miruro
...
- pipe.js: add premium=true to ScraperAPI URL
- README.md: update ScraperAPI cost to $49/mo (premium required)
- .env.example: note protected domain requirement
- CHANGELOG.md: update ScraperAPI cost info
2026-07-02 08:58:05 +05:30
Shinei Nouzen
a918ed9d1a
chore: trigger redeploy for SCRAPER_API_KEY fix
2026-07-02 08:25:31 +05:30
Shinei Nouzen
125f088570
chore: trigger Vercel redeploy for new SCRAPER_API_KEY
2026-07-02 08:14:48 +05:30
Shinei Nouzen
0628189ad8
fix: animated endpoint counter 45 → 46 in index.html
2026-07-02 07:53:28 +05:30
Shinei Nouzen
bb68100ef0
fix: update all stale endpoint counts 35/44 → 46
2026-07-02 07:52:36 +05:30
Shinei Nouzen
2e0ef33b92
docs: add streaming status, Cloudflare fix guide, and troubleshooting
...
- Add Streaming Status section explaining why pipe endpoints fail (500)
- Add 'How to Fix Streaming Issues' with 3 solutions:
- ScraperAPI (free 1K req/month, easiest)
- FlareSolverr (self-hosted, unlimited)
- Self-host entire API on VPS
- Update Configuration table with SCRAPER_API_KEY and FLARESOLVERR_URL
- Add FAQ entries for streaming 500 errors and /api/pipe-health
- Add troubleshooting row for streaming 500 errors
- Add verification steps with example responses
2026-07-02 07:48:51 +05:30
Shinei Nouzen
a6acfc6445
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.
2026-07-02 07:23:27 +05:30
Shinei Nouzen
eb0e166310
feat(v2.3.0): self-healing fallback system — auto-recovery from Cloudflare blocks
...
pipe.js now tries 3 methods in order with automatic fallback:
1. Direct — mirror rotation (.ru → .to → .bz → .tv) with browser headers
2. ScraperAPI — free proxy (1K req/mo, no CC required)
3. FlareSolverr — self-hosted browser proxy (solves Cloudflare Turnstile)
When one method fails (403/timeout), the next is tried automatically.
Zero-config: works without any env vars. Add SCRAPER_API_KEY or
FLARESOLVERR_URL for Cloudflare bypass.
New endpoint: /api/pipe-health — tests all configured methods,
reports latency and working/failed status, recommends preferred method.
Files changed:
- src/helpers/pipe.js — methodDirect(), methodScraperAPI(), methodFlareSolverr(), pipeHealthCheck()
- src/routes/apiRoutes.js — added /api/pipe-health endpoint
- .env.example — documented SCRAPER_API_KEY, FLARESOLVERR_URL
Version bumped to 2.3.0 across package.json, server.js, /api/health,
/api/openapi, public/openapi.json. CHANGELOG updated.
2026-07-02 07:12:06 +05:30
Shinei Nouzen
92154d7ea2
fix(v2.2.0): migrate to new Miruro pipe protocol — restore streaming endpoints
...
The streaming endpoints (/episodes, /sources, /stream, /watch, /download)
returned 500 because the upstream Miruro pipe changed and www.miruro.tv is
now hard-blocked by Cloudflare.
Reverse-engineered the current Miruro frontend contract:
- Request is plain base64url of the JSON payload (no XOR).
- Response obfuscation is now signalled by the x-obfuscated header:
absent = plain JSON, 1 = base64+gzip, 2 = base64+XOR(PIPE_OBF_KEY)+gzip.
pipe.js now:
- rotates across mirrors (miruro.ru > .to > .bz > .tv), one per retry;
- decodes based on the x-obfuscated header instead of always XOR+gunzip;
- sends full browser sec-fetch/sec-ch-ua headers to pass Cloudflare checks;
- raises maxRetries to 4 and rotates on 403/444.
proxy.js default referer/Origin -> https://www.miruro.to (miruro.tv is dead).
AniList-backed endpoints were already healthy and are unaffected.
Version bumped to 2.2.0 across package.json, server.js, /api/health,
/api/openapi, public/openapi.json. CHANGELOG updated.
2026-07-02 06:57:58 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
5a8879f2ba
fix: Add explicit routes for clean URLs (docs, tos, privacy, openapi.json)
2026-06-25 12:25:01 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
6bda1d9c95
feat: Update index.html with all 44 endpoints in explorer section
...
- Stats counter: 35 → 44
- Explorer: 16 endpoints → 44 endpoints
- Added: trending/daily, trending/weekly, top, random, upcoming/countdown
- Added: seasonal, studio, tags, genre, year, status, format
- Added: character, staff, characters search, staff search
- Added: anime characters, relations, recommendations
- Added: batch episodes, sources, stream, download
- Added: compare, genre stats, calendar, timeline
- Added: health, stats, providers, openapi
- All endpoints with cURL, JavaScript, Python examples
2026-06-25 12:15:22 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
10560e36c3
docs: Update openapi.json to v2.1.4 with all 44 endpoints, fix docs.html count
2026-06-25 12:11:39 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
023e36c2d4
fix: Add static file serving for public/ directory on Vercel
2026-06-25 12:08:33 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
156f9b16a5
style: Add full doc comments to proxy.js, server.js, test.js, api/index.js
...
- Box-style header with project/author/license
- Section headers (═══ SECTION ═══)
- Function-level JSDoc (purpose, params, returns, examples)
- Inline notes for non-obvious logic
- Feature markers (---- FEATURE: XYZ ----)
- Footer on every module
2026-06-25 10:55:48 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
16eb0236d7
docs: Update README for v2.1.4 — version, endpoints, env vars, changelog
2026-06-25 10:51:20 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
73b510589e
Fix CORS — allow non-browser requests (no Origin header)
2026-06-25 10:42:09 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
8297d8f27d
v2.1.4: Security hardening, bug fixes, code quality improvements
...
- Move XOR keys to env vars (PRU_PROXY_KEY, PIPE_OBF_KEY)
- Fix multi-search to combine query + filters
- Fix deepTranslate to return clone instead of mutating
- Improve getBestStream quality matching and fallback
- Add input sanitization for all route params
- CORS blocks unknown origins in production
- Security headers in vercel.json at CDN level
- stats/genre uses Promise.allSettled for parallel execution
- Delete dead server.py, fix version strings
2026-06-25 10:34:12 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
1d0ec95f19
Update CHANGELOG with full diagnostic sweep results
2026-06-25 10:03:53 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
94421af2dd
Add no-cache headers to /random to prevent CDN caching
2026-06-25 10:03:22 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
7394a1c94c
Improve random entropy with multi-source seed
2026-06-25 10:00:28 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
b59ca7e1ec
Fix random (Date.now+hrtime seed) + character/staff 404 detection
2026-06-25 09:58:44 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
5acf8a2e1e
Fix diagnostic sweep bugs — tags, random, 404s, security headers
...
- Tags: data.TagCollection→data.MediaTagCollection (was returning empty array)
- Random: Math.random()*50→crypto.randomInt(1,500) for true randomness
- Character/Staff: return 404 instead of 500 on not-found
- Security: added X-XSS-Protection header
- All 44 endpoints tested in full diagnostic sweep
2026-06-25 09:56:58 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
00275adb42
Fix AniList queries — trending args, studio type arg, tags field name
...
- Trending: removed invalid trending:7/30 args (not in AniList schema)
- Studio: removed type:ANIME from Studio.media (not supported)
- Tags: TagCollection→MediaTagCollection, removed rank field
2026-06-25 09:26:18 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
90cdd26241
Fix tags query — TagCollection→MediaTagCollection, remove rank field
2026-06-25 09:21:27 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
4509c0add3
Fix character/staff queries — remove dateOfDeath, fix MediaEdge role field
...
- Character: removed dateOfDeath (not in AniList schema), changed role→characterRole
- Staff: removed dateOfDeath, removed invalid role field from staffMedia edges
- Fixes 400 errors on /api/character/:id and /api/staff/:id
2026-06-25 09:18:45 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
d1dec20788
Update CHANGELOG v2.1.3 with working endpoints and bug fixes
2026-06-25 09:02:24 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
bff4c5b7c6
Fix getWatchSources to handle both raw and slugged episode IDs
...
- Handle raw pipe IDs (animedao:witch-hat-atelier:1) with colon separator
- Handle slugged IDs (watch/bonk/147105/sub/animedao-1) with slash separator
- Use rawPipeId for decoded ID recovery in both cases
2026-06-25 08:59:58 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
84d7e75372
Fix getWatchSources slug matching after injectSourceSlugs mutation
...
- Match slug against last segment of ep.id (after injectSourceSlugs)
- Use rawPipeId + translateId to recover original decoded ID
- Fixes 'Episode slug not found' error for all providers
2026-06-25 08:57:05 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
e35d934190
v2.1.3: Pipe resilience — retry logic, caching, optimized streaming
...
- Added pipeRequest() with retry + exponential backoff (3 attempts)
- Cached episodes (5min) and sources (10min) responses
- Confirmed kiwi/bonk CDNs serve real content, bee/ally serve decoys
- Updated version to 2.1.3 across package.json, health, OpenAPI
2026-06-25 08:53:02 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
398db2b4f0
docs: v2.1.2 changelog — pru proxy discovery and streaming architecture
2026-06-25 08:34:58 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
94b59b3bc9
fix: add Origin header to pipe requests to bypass Cloudflare 444
2026-06-25 08:29:04 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
6cd2b9a19e
feat: return raw CDN URLs for streams (browser loads directly via CORS *); keep subtitle proxy for third-party CDNs
2026-06-25 08:22:34 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
76c47368a7
feat: proxy through pru.ultracloud.cc for real video content
2026-06-25 08:10:11 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
f208becd27
fix: rewrite relative M3U8 URLs (variant playlists like 313625720.m3u8)
2026-06-25 08:06:39 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
74f3dcd7c3
feat: pipe XOR decode + CDN CORS proxy for streaming
...
- decodePipeResponse now XOR-decodes with obfuscation key before gzip
- Updated pipe version to 0.2.0 to match miruro.tv
- Added /api/proxy endpoint for CORS-safe M3U8/VTT streaming
- Proxied stream/subtitle URLs through /api/proxy for browser playback
- M3U8 content rewritten to proxy variant playlists and segments
2026-06-25 08:04:13 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
90b0999d7d
fix: store original base64 rawPipeId in deepTranslate + use decoded id in getWatchSources
2026-06-25 04:10:34 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
f7b3e32cb7
fix: pipe stream resolution - rawPipeId + creatorInfo
2026-06-25 03:55:01 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
a65138e575
fix: preserve rawPipeId for stream resolution + fix creatorInfo message overwrite + match slug against tail of episode ID
2026-06-25 03:51:13 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
399f9b1917
fix: Vercel deployment - skip app.listen() on Vercel, fix vercel.json routes
2026-06-25 02:37:27 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
4ec1ff69f4
feat: provider capabilities, enriched metadata, skip times (v2.1.0)
2026-06-25 02:02:47 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
56e3500d3e
fix: extractSubtitles returns empty array when subtitles undefined (dub)
2026-06-25 01:48:10 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
9b1ac11ff0
feat: improve subtitle extraction, quality fallback, and documentation
2026-06-25 01:43:11 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
3ab0bae18d
v2.0.0: Update index.html — 35 endpoints
2026-06-25 01:19:52 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
33e5e8e136
v2.0.0: Sync all docs — README, endpoints, OpenAPI, test suite
2026-06-25 01:18:28 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
3675bbba77
v2.0.0: Major upgrade — 35 endpoints, compression, streaming improvements, new features
2026-06-25 01:09:35 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
9ada6e1016
v1.4.0: Add creator attribution middleware
2026-06-25 00:54:18 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
3a28c4d182
v1.4.0: Fix Vercel deployment, security headers, rate limiter, cache cleanup
2026-06-25 00:52:26 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
68f7ea7cf4
Update README.md
2026-06-10 22:11:26 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
37e70c3bda
Update README.md
2026-06-10 22:06:57 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
af08c91624
Update README.md
2026-06-10 22:05:04 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
1433afdca1
v1.3.0: Full landing page upgrade + feature parity with AniKotoAPI
...
- Full index.html rewrite with AniKotoAPI-style features:
* Canvas particle effects (cyan particles)
* Scroll-reveal animations (IntersectionObserver)
* Animated stat counters (count up on scroll)
* Infinite scrolling marquee (8 feature badges)
* Live interactive API console (5 presets: Search, Trending, Episodes, Info, Health)
* Sidebar endpoint explorer (16 endpoints, multi-language tabs: cURL/JS/Python)
* 4 interactive playground cards (Search, Info, Episodes, Trending)
* Custom scrollbar, JetBrains Mono font
* 4-column grid footer with API/Resources/Legal
* Fixed header with scroll-aware glass blur
* Ambient orb gradient animations
* CTA section with gradient overlay
- Added public/404.html (glitch animation error page)
- Added public/manifest.json (PWA, theme: #38bdf8)
- Added public/robots.txt (Allow /, Disallow /api)
- Added public/sitemap.xml (4 URLs)
- Added public/tos.html (13 sections)
- Added public/privacy.html (8 sections)
- Added .env.example, CONTRIBUTING.md, LICENSE, render.yaml, test.js
- Added docs/ (5 files: index, endpoints, streaming, examples, architecture)
- Updated server.js: clean URL routes (/tos, /privacy), 404.html fallback
- Updated package.json: devDependencies nodemon, repository, dev script
- All branding: AniKotoAPI → MiruroAPI, cyan color scheme (#38bdf8)
2026-06-09 16:21:30 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
b73d8d09bf
fix: replace SVG favicons with real Miruro icons scraped from miruro.tv HTML
2026-06-09 15:59:55 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
99d7c15750
docs: full README rewrite matching AniKotoAPI style - emojis, blockquote endpoints, parameter tables, roadmap, troubleshooting, star history, author footer
2026-06-09 15:48:46 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
faa4888f77
docs: comprehensive README upgrade with badges, visuals, real API data, streaming flow, provider tables, TypeScript schemas
2026-06-09 15:44:19 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
a1cc22e84a
feat: integrate real Miruro assets from official domains
...
Replaced placeholder SVGs with actual scraped assets:
- favicon.svg → icon-dark.svg (real Miruro dark mode SVG)
- share.svg → og-image.png (real maskable icon for OG/Twitter)
- Added: icon-light.svg, icon-512x512.png, favicon.ico, apple-touch-icon
- Nav logos now use real Miruro icon image instead of text div
- OG meta tags updated: SVG→PNG for proper social previews
- Both index.html and docs.html updated
- Version badge: v1.1.0 → v1.2.0
2026-06-09 15:22:27 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
d2193670f4
feat: add scraped assets from official Miruro domains
...
Scraped from miruro.com, miruro.bz, miruro.ru, status.miruro.com:
- 6 favicons: dark/light SVG, 512px PNG, ICO, apple-touch, maskable
- 1 logo: status page logo (12KB)
- 4 fonts: Inter, FontAwesome brands/solid, CSS
- 18 media: testimonial avatars from homepage
- README documenting sources and structure
All streaming domains use identical assets.
SVG favicons support dark/light mode via prefers-color-scheme.
2026-06-09 15:15:00 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
20041a8984
v1.2.0: fix critical response format bug (18/18 endpoints passing)
...
Root cause: createApiRoutes() parameter shift
- Function signature was (app, jsonResponse, jsonError)
- Called from server.js as apiRoutes(jsonResponse, jsonError)
- All params shifted: jsonResponse→jsonError, jsonError→undefined
- Every success response returned {success: false, message: data}
- Health worked because it used res.json() directly
Fix: Removed unused 'app' parameter from createApiRoutes()
All 18 endpoints now return {success: true, results: data}
2026-06-09 15:04:26 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
14d5c22fc7
fix: remove unused 'app' param from createApiRoutes to fix jsonError/jsonResponse parameter shift
...
The function signature was (app, jsonResponse, jsonError) but called
with (jsonResponse, jsonError) from server.js, causing all parameters
to shift by one. jsonResponse() was actually calling jsonError(),
returning {success: false, message: data} instead of
{success: true, results: data}.
2026-06-09 15:00:58 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
240e90fe51
chore: force redeploy to fix response format
2026-06-09 14:45:55 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
18a73c324e
feat: premium landing page, Swagger UI docs, full OG meta stack
...
- Premium landing page with nav, hero, stats, streaming flow, endpoint cards
- Full OG meta stack (OG, Twitter Card, JSON-LD WebAPI schema)
- SVG favicon matching miruro.tv icon style
- SVG share image for social sharing (1200x630)
- Dedicated docs.html with custom header and Swagger UI styling
- Canonical URLs, theme-color, robots meta
- Apple-touch-icon and mask-icon from miruro.tv
- Responsive design (mobile-friendly)
- Font: Inter (Google Fonts)
2026-06-09 14:38:44 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
4b083a9bf7
docs: rewrite all files with AniKotoAPI documentation style
...
- Box-style file headers (======= border, @description, @exports, @author, @license)
- Section headers (═════════════════════════════════════════)
- Function-level JSDoc comments with @param, @returns, @example
- Inline notes for non-obvious logic (lazy eviction, pipe decoding, slug resolution)
- Feature markers (---- FEATURE: description ----)
- Footer on every module (═══════════ END: filename ═══════════)
- Added /stats and /openapi endpoints to router
2026-06-09 14:27:29 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
b0aa5d2281
docs: update URLs to mirurotvapi.vercel.app
2026-06-09 14:19:28 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
c13e0bbd7e
feat: v1.1.0 - Swagger docs, mappings, Docker, premium landing page
...
- Swagger UI interactive docs at /docs
- OpenAPI 3.0 spec at /openapi.json
- mappings field in episodes response (anilistId, malId, kitsuId)
- Docker support (Dockerfile + .dockerignore)
- Premium landing page with try-it buttons (Walter-style)
- Health endpoint with providers list and endpoint count
2026-06-09 14:16:33 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
85b8dcfcf0
docs: update production URL to miruroapi-zeta.vercel.app
2026-06-09 14:06:45 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
0f8b295b7b
chore: trigger deployment on new project
2026-06-09 14:00:08 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
df79875917
chore: redeploy with SSO protection disabled
2026-06-09 13:56:56 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
7420ef0d40
chore: trigger Vercel deployment
2026-06-09 13:53:40 +05:30
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
776e1b9649
feat: MiruroAPI v1.0.0 - Free anime streaming API
...
- 16 API endpoints powered by AniList GraphQL
- Miruro pipe integration for streaming sources
- 12 streaming providers (kiwi, pewe, bee, bonk, etc.)
- M3U8 streaming URLs with subtitles and skip timestamps
- In-memory caching with TTL
- CORS support and health endpoint
2026-06-09 13:51:39 +05:30