League Match History Viewer
A Python CLI that fetches a League of Legends player’s complete match history from the Riot Games API and stores every piece of available data in a local SQLite database — full participant stats, item purchases, rune selections, challenge metrics, and per-minute timeline events. An export script generates a fully self-contained HTML viewer with no server required.
What it does
Complete History Fetch
Fetches every match ever played across all queues — ranked, ARAM, normals, Arena, URF — using the Riot Match v5 API.
Incremental Updates
Subsequent fetches only pull new matches since the last run, making repeat syncs fast regardless of total game count.
Full Participant Data
Stores ~70 structured fields per player per match: KDA, gold, damage, CS, vision, items, runes, summoner spells, and more.
Timeline Storage
Fetches and stores per-minute frames and every in-game event: kills, item purchases, objective kills, ward placements, level-ups.
Web Viewer Export
Generates a self-contained HTML file with match history, expandable scoreboards, win rate charts, and a sortable champion table.
Rich Terminal UI
Browse match history, view scoreboards, see aggregate stats, and summarize timelines directly in the terminal with Rich.
Roadmap
- ✓ Async Riot API client with rate-limit handling
- ✓ SQLite schema — matches, participants, timelines, players
- ✓ Full history fetch + incremental update mode
- ✓ Queue and champion filtering
- ✓ Per-match scoreboard with Data Dragon item/champion names
- ✓ Aggregate stats (win rate, KDA, penta counts, champion breakdown)
- ✓ Timeline event summary CLI
- ✓ Tab completion for player names and match IDs
- ✓ Self-contained HTML viewer with charts and expandable scoreboards
- ○ Rune breakdown per champion
- ○ Multi-player comparison view
- ○ Per-game timeline visualization
Tech Stack
Built with Python 3.10+, aiohttp for async Riot API requests, SQLite for local
storage, rich for terminal output, and vanilla JS + Chart.js for the web viewer.
Data Dragon provides champion and item icons. No machine learning or heavy dependencies.
viewer.html link above is
generated from local data and may not reflect the latest games. Not affiliated with Riot Games.