How anidl/multi-downloader-nx works
Anime Downloader NX supports CLI and GUI workflows for Crunchyroll, HIDIVE and AnimationDigitalNetwork. The documented CLI path is service authentication, search, selection and episode download; service-specific modules implement provider behavior, while shared modules handle stream retrieval and media assembly. The GUI adds a React queue/search interface communicating with a server over WebSockets and dispatching requests to service handlers. Provider internals and several GUI paths are unsampled, so their detailed relationships are omitted; documented capabilities remain represented without implying unverified calls.
Main entry points: index.ts CLI entry · hidive.ts HIDIVE · adn.ts ADN · serviceHandler.ts Service dispatcher
Components 22
CLI workflow
- CLI entry
index.ts - CLI options
modules/module.app-args.ts
Anime providers
- Crunchyroll
crunchy.ts - HIDIVE
hidive.ts - ADN
adn.ts
Media processing
- HLS download
modules/hls-download.ts - Media merger
modules/module.merger.ts - DRM keys
modules/cdm.ts
GUI application
- React interface
gui/react/src/components/AddToQueue/DownloadSelector/DownloadSelector.tsx - Message channel
gui/react/src/provider/MessageChannel.tsx - WebSocket server
gui/server/websocket.ts - Service dispatcher
gui/server/serviceHandler.ts - GUI ADN handler
gui/server/services/adn.ts - GUI HIDIVE handler
gui/server/services/hidive.ts - GUI Crunchyroll handler
gui/server/services/crunchyroll.ts
Shared runtime
- Configuration
modules/module.cfg-loader.ts - HTTP fetch
modules/module.fetch.ts - Download archive
modules/module.downloadArchive.ts - Language metadata
modules/module.langsData.ts - Logging
modules/log.ts
Other components
- User
- GUI user
Connections 23
- User → CLI entry: runs commands
- CLI entry → CLI options: parses options
index.ts - CLI entry → Crunchyroll: dispatches service
index.ts - CLI entry → HIDIVE: dispatches service
index.ts - CLI entry → ADN: dispatches service
index.ts - User → Crunchyroll: authenticates, searches, downloads
- User → HIDIVE: authenticates, searches, downloads
- User → ADN: authenticates, searches, downloads
- GUI user → React interface: searches and queues
- React interface → Message channel: sends requests
- Message channel → WebSocket server: exchanges messages
gui/react/src/provider/MessageChannel.tsx - WebSocket server → Service dispatcher: routes events
gui/server/index.ts - Service dispatcher → GUI ADN handler: selects handler
gui/server/serviceHandler.ts - Service dispatcher → GUI HIDIVE handler: selects handler
gui/server/serviceHandler.ts - Service dispatcher → GUI Crunchyroll handler: selects handler
gui/server/serviceHandler.ts - GUI ADN handler → ADN: delegates provider work
gui/server/services/adn.ts - GUI HIDIVE handler → HIDIVE: delegates provider work
gui/server/services/hidive.ts - Crunchyroll → HLS download: downloads HLS
crunchy.ts - HIDIVE → HLS download: downloads HLS
hidive.ts - ADN → HLS download: downloads HLS
adn.ts - Crunchyroll → Media merger: assembles media
crunchy.ts - HIDIVE → Media merger: assembles media
hidive.ts - ADN → Media merger: assembles media
adn.ts