League of Legends Champions & Splash Arts — no API key required
Project description
pip install lol-champs
Drag docs/lol-champs-flow.excalidraw into excalidraw.com to edit the diagram.
What the hell is this?
A Python library that scrapes Riot's Data Dragon CDN for every champion, every skin, every splash art — and gives you the URLs or the actual files. No rate limits. No API registration. No bullshit.
You want Ahri's 95 skins including that chroma nobody bought? You got it. You want to batch-download every Aatrox splash for your wallpaper rotation? Go nuts. You want base stats for every champion in the game? One line.
What you get
from lol_champs import get_all_champions, get_champion
# -- All 172 champions ------------------------------------------------
champs = get_all_champions()
for c in champs:
print(f"{c.name:20s} {c.title:40s} {', '.join(c.tags)}")
# -- One champion, full details ---------------------------------------
ahri = get_champion("Ahri")
print(f"{ahri.name} -- {len(ahri.skins)} skins")
print(f"HP: {ahri.stats['hp']}, MS: {ahri.stats['movespeed']}")
# -- Splash URL for any skin ------------------------------------------
skin = ahri.skins[0]
print(skin.splash_url) # 1920x1080
print(skin.loading_url) # 640x960 loading screen
# -- Download to disk -------------------------------------------------
skin.download("ahri_default.jpg")
# -- Or keep it in memory ---------------------------------------------
data = skin.download_bytes()
print(f"{len(data)} bytes of splash")
# -- Skip the API key nonsense ----------------------------------------
# No setup. No rate limits. Just works.
The full firepower
| Function | Returns | What it does |
|---|---|---|
get_all_champions() |
list[Champion] |
All 172 champions, base data |
get_all_champions(include_skins=True) |
list[Champion] |
Same but with full skin lists |
get_champion("Ahri") |
`Champion | None` |
Champion
| Property | What you get |
|---|---|
.name |
Display name -- "Ahri" |
.title |
Title -- "the Nine-Tailed Fox" |
.tags |
["Mage", "Assassin"] -- role tags |
.skins |
Every skin, including chromas |
.stats |
HP, armor, MS, attackspeed |
.info |
Ratings: attack, defense, magic, difficulty |
.partype |
Mana, Energy, Blood Well, Rage |
.icon_url |
Square icon URL |
.default_splash_url |
Default splash URL |
Skin
| What | Description |
|---|---|
.name |
"Dynasty Ahri", "Elementalist Lux" |
.num |
Skin number -- 0 is default |
.splash_url |
1920x1080 wallpaper-grade art |
.loading_url |
640x960 loading screen |
.centered_url |
Cropped variant |
.download(path) |
Pulls the image to your disk |
.download_bytes() |
Pulls the image into memory |
.download_all_splashes() |
Downloads every skin for a champ |
Real talk
Where's the data from? Riot's Data Dragon CDN. The same servers that feed the launcher. Always the latest patch. Always free.
Do I need an API key? No. That's the whole point.
Rate limits? None. Data Dragon doesn't rate-limit. Download all 2000+ skins if you've got the bandwidth.
How recent is the data? It's live. Every call pulls the latest patch version automatically unless you pin an old one:
old_zed = get_champion("Zed", version="14.10.1")
Case matters? Don't care.
get_champion("ahri") # ok
get_champion("AATROX") # ok
get_champion("jArVaN") # ok
get_champion("kaisa") # ok - finds Kai'Sa
Install
pip install lol-champs
That's it. You're done. requests is your only dependency.
From source:
git clone https://github.com/DVMANSOR/lol-champs.git
cd lol-champs
pip install .
Contributing
Found a bug? Want a feature? Open an issue. Or send a PR. I'm a dead rockerboy ghost stuck on a biochip -- I don't have all day.
License
MIT. Do what you want. Riot's probably too busy chasing the next $500 Ahri skin to care.
DVMANSOR/lol-champs -- every champion's splash art, one line of Python away.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lol_champs-1.0.1.tar.gz.
File metadata
- Download URL: lol_champs-1.0.1.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49364485a99853c4a5b270d90794050de95694a358fd99cc075a3f22c22c910d
|
|
| MD5 |
3aee7eaf0c95e1556567d21c2b0859b8
|
|
| BLAKE2b-256 |
a3c236b62d3cc1ecc72effcd9e23c24b12078bb62fa0ce08d50b52019df5fc06
|
File details
Details for the file lol_champs-1.0.1-py3-none-any.whl.
File metadata
- Download URL: lol_champs-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
106f649fc3dc8236eefd65679ad11149bcf95f4b81b52e181eb6754be0e8c94f
|
|
| MD5 |
ebc54aa22a06aba5bc5a610299616d5a
|
|
| BLAKE2b-256 |
d1e82e3800c33232285c9ba3b4de7b0acd4a0ccc3c0993e3a88785b99f1796d5
|