How stars4422335/biliarchive-pro works
BiliArchive-Pro is a local Bilibili media-archiving and library-management tool. Its main workflow loads account credentials and configuration, scans configured or discovered sources, parses assets, then downloads and organizes media while recording archive status. A separate WebUI process presents scan and library information and allows limited configuration edits; it does not control downloads. The graph preserves documented article, tombstone, component-check, and UI capabilities. Some subsystem links rely on README documentation because their implementation was not sampled.
Main entry points: main.py Runtime orchestrator · scanner.py Source scanner · App.jsx UI application · downloader.py Media downloader
Components 26
Archive engine
- Account login
login.py - Runtime orchestrator
main.py - Source scanner
app/scheduler/scanner.py
Media processing
- Source parser
app/core/parser.py - Media downloader
app/core/downloader.py - Library metadata
app/core/metadata.py - Danmaku renderer
app/core/danmaku.py - Path manager
app/core/path_manager.py
Configuration and state
- Config manager
app/core/config_manager.py - Archive database
app/core/database_manager.py - Runtime state
app/core/runtime_state.py - Component updater
app/scheduler/updater.py - Secure file writes
app/core/secure_file.py
Web API
- WebUI API
app/webui/app.py - WebUI service
app/webui/service.py
Web interface
- UI application
webui/src/App.jsx - API client
webui/src/api/client.js - Data normalization
webui/src/data/normalize.js - Overview view
webui/src/views/OverviewView.jsx - Assets view
webui/src/views/AssetsView.jsx - Settings view
webui/src/views/SettingsView.jsx - Shared UI
webui/src/components/ui.jsx
Other components
- Archive owner
- Bilibili
- Browser user
- yt-dlp
Connections 36
- Archive owner → Account login: authorizes
README.md - Account login → Secure file writes: writes credentials
login.py - Archive owner → Runtime orchestrator: starts scans
README.md - Runtime orchestrator → Config manager: loads settings
main.py - Runtime orchestrator → Source scanner: runs scans
main.py - Runtime orchestrator → Source parser: discovers sources
main.py - Runtime orchestrator → Runtime state: updates status
main.py - Runtime orchestrator → Component updater: checks components
main.py - Source scanner → Source parser: parses sources
app/scheduler/scanner.py - Source parser → Bilibili: reads listings
- Source scanner → Media downloader: downloads assets
app/scheduler/scanner.py - Source scanner → Library metadata: creates metadata
app/scheduler/scanner.py - Source scanner → Path manager: plans paths
- Source scanner → Archive database: records status
- Media downloader → Danmaku renderer: renders captions
app/core/downloader.py - Media downloader → Secure file writes: writes temp cookies
app/core/downloader.py - Media downloader → yt-dlp: invokes downloader
- Component updater → Secure file writes: writes verified files
app/scheduler/updater.py - Runtime orchestrator → WebUI API: starts optional UI
main.py - WebUI API → WebUI service: routes requests
app/webui/app.py - WebUI service → Archive database: reads assets
README.md - WebUI service → Config manager: loads configuration
app/webui/service.py - WebUI service → Secure file writes: writes overrides
app/webui/service.py - Browser user → UI application: uses dashboard
- UI application → API client: requests API
webui/src/App.jsx - UI application → Data normalization: normalizes responses
webui/src/App.jsx - UI application → Overview view: renders overview
webui/src/App.jsx - UI application → Assets view: renders assets
webui/src/App.jsx - UI application → Settings view: renders settings
webui/src/App.jsx - Overview view → API client: loads dashboard
webui/src/views/OverviewView.jsx - Assets view → Data normalization: formats assets
webui/src/views/AssetsView.jsx - Settings view → Data normalization: formats settings
webui/src/data/normalize.js - Overview view → Shared UI: uses controls
webui/src/views/OverviewView.jsx - Assets view → Shared UI: uses controls
webui/src/views/AssetsView.jsx - Settings view → Shared UI: uses controls
webui/src/views/SettingsView.jsx - API client → WebUI API: calls same-origin API