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

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.

Setup: Requires a free Riot Games developer API key from developer.riotgames.com. Dev keys are rate-limited to 100 requests/2 min — a full initial fetch for a player with hundreds of games will take several minutes. The viewer.html link above is generated from local data and may not reflect the latest games. Not affiliated with Riot Games.