Title here
Summary here
TK Clip Manager follows a modular service architecture using .NET’s dependency injection and the hosted-service pattern.
Game (Valorant / LoL)
│
▼
Overwolf GEP (port 8091)
│
▼
OverwolfGepService ──► GameEventRouter
│ │
│ ┌────┴────┐
│ ▼ ▼
│ Valorant LeagueOfLegends
│ Handler Handler
│ └────┬────┘
│ │
▼ ▼
ObsWebSocketService EventLogWriter
(OBS markers) (timestamped logs)
│ │
▼ ▼
LocalAiClipAnalyzer ClipExtractor
(scoring) (FFmpeg extraction)
│
▼
ClipManagerService (orchestrator + WebSocket server + dashboard)The backend registers seven services as singletons via Host.CreateDefaultBuilder with UseWindowsService():
| Service | Interface | Responsibility |
|---|---|---|
OverwolfGepService | IGameEventSource | WebSocket client connecting to Overwolf GEP with auto-reconnect |
ObsWebSocketService | IObsMarkerService | WebSocket client connecting to OBS v5 with auto-reconnect |
EventLogWriter | IEventLogWriter | Writes timestamped logs with millisecond precision (UTF-8) |
LocalAiClipAnalyzer | IAiClipAnalyzer | Rule-based scoring + optional ONNX model inference |
ClipExtractor | IClipExtractor | FFmpeg-based clip extraction service |
GameEventRouter | IGameEventRouter | Routes raw events to game-specific handlers |
ClipManagerService | IHostedService | Main orchestrator: WebSocket server, REST settings API, dashboard |
Two concrete handlers implement a common interface:
ValorantEventHandler — Processes Valorant-specific events (kills, spike actions, round flow, etc.)LeagueOfLegendsEventHandler — Processes LoL-specific events (kills, objectives, champion select, etc.)Each handler maps raw GEP events into normalized internal models and applies game-specific marker templates with placeholders like {weapon}, {round_number}, {champion}.
The frontend is a TypeScript + Vue 3 application packaged as an Overwolf app. It connects to the backend via WebSocket on port 8765 and provides:
TKClipManager/
├── Backend/ C# backend (.NET 8.0 Windows Service)
├── Frontend/ Overwolf frontend (TypeScript + Vue 3)
├── Tests/ xUnit unit tests
├── Installer/ WiX v4 MSI installer
├── Scripts/ Build, signing, prerequisites, Python clip extraction
├── Pipeline/ Azure DevOps CI/CD (build + release)
├── DOC/ User Guide, Developer Guide, Quick Reference
├── Examples/ Sample config and event log files
├── build.ps1 Unified build script
└── TKClipManager.sln Visual Studio solutionKey backend packages:
| Package | Version | Purpose |
|---|---|---|
Microsoft.Extensions.Hosting.WindowsServices | 8.0.0 | Windows Service hosting |
Newtonsoft.Json | 13.0.3 | JSON serialization |
Websocket.Client | 5.1.1 | WebSocket connectivity |
Microsoft.ML.OnnxRuntime | 1.17.0 | AI model inference |
NAudio | 2.2.1 | Audio processing |
OpenCvSharp4 | 4.9.0 | Video frame analysis |