How crazysmile-phd/downkyicore works
DownKyi is a cross-platform Avalonia desktop client for parsing Bilibili content and downloading media. The main user journey is to provide a Bilibili entry, resolve its content and playback resources, then manage a staged download through completion and history. The graph preserves documented content categories and downloaded artifacts, plus settings, persistence, and API layers. README statements support the broad capabilities; sampled source supports task execution, history, settings, and application startup. Several subsystem connections remain unverified because their implementation was not sampled.
Main entry points: App.axaml.cs Desktop app · BilibiliInputParser.cs Input parser · BilibiliApiClient.cs Bilibili API client · DownloadTaskApplicationService.cs Task application service
Components 20
Desktop experience
- Desktop app
src/DownKyi.Desktop/App.axaml.cs - Download manager
src/DownKyi.Desktop/ViewModels/ViewDownloadManagerViewModel.cs
Bilibili content
- Input parser
src/DownKyi.Application/Media/BilibiliInputParser.cs - Bilibili API client
src/DownKyi.Infrastructure/Bilibili/BilibiliApiClient.cs - Video metadata
DownKyi.Core/BiliApi/Video/VideoInfo.cs - Content categories
DownKyi.Core/BiliApi - Playback resolver
DownKyi.Core/BiliApi/VideoStream - Bilibili service
src/DownKyi.Infrastructure/Bilibili/BilibiliApiClient.cs
Download lifecycle
- Add download
src/DownKyi.Desktop/Services/Download/AddToDownloadService.cs - Task application service
src/DownKyi.Application/Downloads/DownloadTaskApplicationService.cs - Task state model
src/DownKyi.Domain/Downloads/DownloadTask.cs - Download pipeline
src/DownKyi.Desktop/Services/Download/DownloadPipeline.cs - Download stages
src/DownKyi.Desktop/Services/Download - Media and sidecars
src/DownKyi.Desktop/Services/Download/DownloadArtifactWriter.cs - Download history
src/DownKyi.Application/Downloads/DownloadHistoryService.cs
Persistence and services
- SQLite task store
src/DownKyi.Infrastructure/Downloads/SqliteDownloadStoreDatabase.cs - Settings
src/DownKyi.Infrastructure/Settings/SettingsManager.cs - Application storage
src/DownKyi.Infrastructure/Storage/ApplicationStorage.cs
Other components
- Desktop user
- Bilibili
Connections 20
- Desktop user → Desktop app: runs
README.md - Desktop user → Input parser: provides entry
- Input parser → Bilibili API client: resolves content
- Bilibili API client → Bilibili: requests data
- Bilibili API client → Video metadata: returns metadata
- Input parser → Content categories: parses categories
README.md - Content categories → Playback resolver: selects playback
- Desktop user → Add download: requests download
- Add download → Task application service: creates task
- Task application service → SQLite task store: persists task
- Task application service → Task state model: transitions state
src/DownKyi.Application/Downloads/DownloadTaskApplicationService.cs - Download manager → Download history: loads history
src/DownKyi.Desktop/ViewModels/ViewDownloadManagerViewModel.cs - Download pipeline → Download stages: executes stages
src/DownKyi.Desktop/Services/Download/DownloadPipeline.cs - Download stages → Playback resolver: resolves streams
- Download stages → Media and sidecars: writes artifacts
- Download pipeline → Task state model: updates state
- Download history → SQLite task store: reads history
- Desktop app → Settings: loads preferences
- Settings → Application storage: uses data paths
- Desktop app → Bilibili service: hosts services