Skip to main content

League of Legends Champions & Splash Arts — no API key required

Project description

pip install lol-champs

Python PyPI License GitHub


lol-champs flow diagram

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lol_champs-1.0.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lol_champs-1.0.1-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

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

Hashes for lol_champs-1.0.1.tar.gz
Algorithm Hash digest
SHA256 49364485a99853c4a5b270d90794050de95694a358fd99cc075a3f22c22c910d
MD5 3aee7eaf0c95e1556567d21c2b0859b8
BLAKE2b-256 a3c236b62d3cc1ecc72effcd9e23c24b12078bb62fa0ce08d50b52019df5fc06

See more details on using hashes here.

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

Hashes for lol_champs-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 106f649fc3dc8236eefd65679ad11149bcf95f4b81b52e181eb6754be0e8c94f
MD5 ebc54aa22a06aba5bc5a610299616d5a
BLAKE2b-256 d1e82e3800c33232285c9ba3b4de7b0acd4a0ccc3c0993e3a88785b99f1796d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page