Is there a way to download the box art for Steam games?

When you open up the Steam app and look at all the things in your Library at once, the Library contents are presented with portrait oriented images called box art.

Like these three images:

The Steam library shows the covers of the games

Is there any way to download them from somewhere, or are they stored on my computer somewhere?

‘Cause I like some of mine, and I want to be able to have them without having to Print Screen and crop them out manually.

Answer

As of today, the box art in this format (600×900) aren’t cached, apparently. The format that is cached however, is 300×450, and is available in C:\Program Files (x86)\Steam\appcache\librarycache\ on Windows (or /Users/<USERNAME>/Library/Application Support/Steam/appcache/librarycache/ on MacOS, or ~/.local/share/Steam/appcache/librarycache/ on Linux).

The base URL for the box art in the format 600×900 is https://steamcdn-a.akamaihd.net/steam/apps/<APP_ID>/library_600x900_2x.jpg, where <APP_ID> represents the id of the game you want. In order to get all the IDs for your game, go to your steam profile page where all your owned games are listed (https://steamcommunity.com/profiles/USER_ID/games/?tab=all), and you can click on each game and see the app ID in the URL.

I took the freedom to create a Python3 script, to automatically fetch all the officially available full-size box art for the games in your library, and save them to a folder on your desktop.
Make sure to change <USER_ID> in the url in the script to YOUR user ID. It can be found by using your browser, and finding your Steam account. The user ID will be the number at the end of the URL.

import urllib.request
import urllib.response
import re
import os

website = urllib.request.urlopen("https://steamcommunity.com/profiles/<USER_ID>/games/?tab=all").read().decode(
    'utf-8'
)
gameIDs = re.findall(r"(?:appid\":)\d+", website)
gameIDs[:] = [s.replace('appid\":', '') for s in gameIDs]
desktopfolder = os.path.expanduser('~/Desktop/steam_cover_art/')
if not os.path.exists(desktopfolder):
    os.makedirs(desktopfolder)

for i in gameIDs:
    try:
        URLOpen = urllib.request.urlopen("https://steamcdn-a.akamaihd.net/steam/apps/"
                                         + i + "/library_600x900_2x.jpg").read()
        open(desktopfolder + i + 'p.jpg', 'wb+').write(URLOpen)
    except Exception as e:
        ResponseData = e.read().decode("utf8", 'replace')

NOTE
Not all games have official box art in this format. This is why sites like SteamGridDB have been created, in order to fill the gap.

P.S.:
There are also other official box art formats available, with the following URLs (the game GRID Autosport used as example):
https://steamcdn-a.akamaihd.net/steam/apps/255220/header.jpg
https://steamcdn-a.akamaihd.net/steam/apps/255220/logo.png
https://steamcdn-a.akamaihd.net/steam/apps/255220/library_hero.jpg
https://steamcdn-a.akamaihd.net/steam/apps/255220/library_600x900.jpg (actually 300×450)
https://steamcdn-a.akamaihd.net/steam/apps/255220/page_bg_generated.jpg
https://steamcdn-a.akamaihd.net/steam/apps/255220/page_bg_generated_v6b.jpg

Attribution
Source : Link , Question Author : Malady , Answer Author : Havatra

Leave a Comment