How theryston/trailers-api works
Trailers API accepts title- or trailer-page-based requests, searches supported streaming catalogs, downloads language-aware trailer media, and stores downloadable results and process status. Its web application exposes request and process views, while the API also documents process lookup, a completed-trailers feed, service listing, Swagger, and webhook support. The sampled backend shows request handling, worker execution, provider implementations, and SQLite persistence; connections for unsampled web and webhook behavior are left unasserted.
Main entry points: worker.js Download worker · src/index.js HTTP API · services/index.js Provider registry · netflix/index.js Netflix provider
Components 28
API and process control
- HTTP API
src/index.js - Worker queue
src/index.js - Download worker
src/worker.js - Process recovery
src/continue-process.js - Startup checker
src/check-process.js - Webhook callbacks
src/index.js
Trailer providers
- Provider registry
src/services/index.js - Apple TV provider
src/services/appleTv/index.js - Netflix provider
src/services/netflix/index.js - Prime Video provider
src/services/primeVideo/index.js - IMDb provider
src/services/imdb/index.js
Media processing
- HLS downloader
src/utils/download-hls.js - File downloader
src/utils/download-file.js - FFmpeg processing
src/utils/ffmpeg.js - Language matching
src/utils/compre-lang.js - Subtitle conversion
src/utils/subtitle-xml-to-vtt.js - Thumbnail extraction
src/extract-thumbnail.js - File upload
src/upload-file.js
Results and state
- SQLite database
src/db/index.js - Process and media records
src/db/schema.js - Process lookup
src/db/find-process.js - Status logging
src/utils/process-log.js
Web application
- Web application
web/app/page.tsx - New request form
web/components/new.tsx - Process detail view
web/app/process/[id]/content.tsx - Data fetchers
web/lib/fetchers.ts - Client hooks
web/lib/hooks.ts
Other components
- API client
Connections 37
- API client → HTTP API: submits requests
src/index.js - HTTP API → Provider registry: selects providers
src/index.js - HTTP API → SQLite database: creates processes
src/index.js - HTTP API → Process lookup: reads process
src/index.js - HTTP API → Worker queue: enqueues work
src/index.js - Worker queue → Download worker: runs jobs
src/index.js - HTTP API → Process recovery: resumes jobs
src/index.js - Startup checker → SQLite database: checks records
src/check-process.js - Download worker → Provider registry: invokes providers
- Download worker → Status logging: records progress
src/worker.js - Download worker → Thumbnail extraction: extracts thumbnails
src/worker.js - Download worker → File upload: uploads results
src/worker.js - Download worker → SQLite database: stores trailers
src/worker.js - Download worker → Process and media records: writes records
src/worker.js - Provider registry → Apple TV provider: registers provider
src/services/index.js - Provider registry → Netflix provider: registers provider
src/services/index.js - Provider registry → Prime Video provider: registers provider
src/services/index.js - Provider registry → IMDb provider: registers provider
src/services/index.js - Apple TV provider → HLS downloader: downloads streams
src/services/appleTv/index.js - Netflix provider → File downloader: downloads media
src/services/netflix/index.js - Netflix provider → FFmpeg processing: merges tracks
src/services/netflix/index.js - Netflix provider → Language matching: matches language
src/services/netflix/index.js - Netflix provider → Subtitle conversion: converts subtitles
src/services/netflix/index.js - Prime Video provider → File downloader: downloads media
src/services/primeVideo/index.js - Prime Video provider → Language matching: matches language
src/services/primeVideo/index.js - Prime Video provider → Subtitle conversion: converts subtitles
src/services/primeVideo/index.js - HLS downloader → File downloader: downloads segments
src/utils/download-hls.js - HLS downloader → FFmpeg processing: merges tracks
src/utils/download-hls.js - HLS downloader → Language matching: matches language
src/utils/download-hls.js - Thumbnail extraction → FFmpeg processing: extracts image
src/extract-thumbnail.js - Process lookup → SQLite database: queries records
src/db/find-process.js - Process lookup → Process and media records: reads entities
src/db/find-process.js - Status logging → SQLite database: updates status
src/utils/process-log.js - Status logging → Process lookup: loads process
src/utils/process-log.js - Web application → New request form: renders form
- Process detail view → Data fetchers: loads process data
- Client hooks → Data fetchers: uses fetchers
web/lib/hooks.ts