nhplayer Extractor API
Minimal API-only service. No frontend.
GET /api/extract?id=<video_id_or_url>
Solves the player challenge and returns the playable stream URL (with ?verify= token), title, expiry, signature, subtitle and thumbnail. Direct connection first; your Webshare proxy is used only when a request is blocked.
curl "http://localhost:3000/api/extract?id=TrJtixK9fkwWjQn"
{
"success": true,
"title": "Pure x Holic ... Episode 1",
"stream_url": "https://r2.1hanime.com/....mp4?verify=...",
"expires_at": 1789737275,
"expires_at_iso": "2026-09-18T13:14:35.000Z",
"signature": "2fcd9e14e2aac9d6",
"subtitle_url": "https://cdn.htstreaming.com/...ENG.srt",
"thumbnail_url": "https://nhplayer.com/content/previews/....jpg"
}GET /api/stream?id=<video_id>
Pipes the video through this server with Range/seek support (plays in any player).
Options
&debug=true add diagnostics (attempt trace, PoW info) &validate=true playback probe (debug mode only) &force_proxy=true route every request through the proxy immediately &proxy_url=... per-request proxy override (or X-Proxy-Url header) &verify=false skip challenge solving (returns the bare signed URL)
Proxy
Configured via the WEBSHARE_PROXY_URL environment variable in .env — used only as a fallback when the direct connection is blocked (403/429/503/Cloudflare/timeout).