- Initialize TypeScript Node project (ESM)
- Configure linting, formatting, testing (ESLint, Prettier, Vitest/Jest)
- Set up basic CI/check workflows (optional)
- Capture sample API responses for fixtures
- Implement
MovieboxSessionwith mirror + proxy support - Handle default headers, cookies, mirror fallback, retries
- Provide low-level
fetchJson,fetchHtmlhelpers
- Build
search({ query, type, page, perPage }) - Normalize results to TS interfaces (id, title, year, pageUrl, rating, etc.)
- Unit tests with fixtures
- Parse movie detail page JSON
- Extract metadata (title, synopsis, genres, poster)
- Resolve downloadable files, map qualities + sizes
- Capture available subtitles
- Implement
seriesDetails(pageUrl)(seasons, episodes) - Implement
episodeQualities(pageUrl, season, episode) - Tests for season/episode extraction
-
getMovieStreamUrl(pageUrl, quality) -
getEpisodeStreamUrl(pageUrl, season, episode, quality) - Return stream URL + subtitles + size metadata
- Node downloader (parallel chunks, resume)
- CLI commands (download movie/episode)
- Progress callback support
- Custom error classes (GeoBlockedError, MirrorError, etc.)
- Configurable retry/mirror strategy
- Detailed logging (pino/debug)
- Environment-based proxy config (
MOVIEBOX_API_PROXY) - Document VPN/proxy usage for consumers
- Comprehensive README (install, quickstart, config)
- Examples: Node download script, Next.js API route, Vue integration
- TypeDoc or API reference generation
- Prepare npm package metadata (ESM/CJS exports)
- Automated build/test pipeline
- Publish v0.1.0 to npm
- Integrate into Makaveli Nuxt app (replace Python service)