Failure to get covers from Steam #336
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kramo/cartridges#336
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Describe the bug
I've noticed recently that Cartridges is not importing covers for Steam games. This was working at some point, because I have a lot of Steam games imported into Cartridges and I know I did not set covers manually for all of them, nor did I supply a SteamGridDB API key. However, the past few times I've installed a new Steam game and imported into Cartridges, the cover has been blank.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Official cover art from Steam should be used.
Screenshots

This screenshot was taken after installing Pumpkin Jack (app ID 1186640), launching Cartridges, and using the Import function.
Logs
Logging from the first mention of app ID 1186640 until import is done, with some "Duplicate store game ..." logging abbreviated:
The whole log would be quite long, because I have a lot of games installed. However, the log appears to contain no errors or warnings at all.
System (please complete the following information):
Additional context
I generally have the "High Quality Images" option enabled, but this doesn't seem to have anything to do with it. I tried removing a game, disabling that option, restarting Cartridges, and importing again; the result was the same.
Note that the game used for above testing does have a suitable cover image, linked from the "Assets" section here:
https://steamdb.info/app/1186640/info/
This is how I've retrieved cover art manually for the last few Steam games that I imported.
Just to confirm, you're not the person who reported this on Discord, correct?
Steam didn't change the way they store covers, confirmed by that person too so I'm really not sure what's going on here.
I didn't report this on Discord, so it must have happened to someone else too. Good to know it's not just me...
Based on the debug logging, it looks like Cartridges should fetch Steam covers over HTTPS using the Steam API (rather than finding them on disk at
~/.steam/root/appcache/librarycacheor whatever the path is). Is that correct? Before seeing the logs, I was wondering if I'd somehow messed up the Flatpak filesystem permissions or something.Cartridges gets covers locally. It only fetches other metadata not available locally using the network, but not covers.
Ah, I see. Well, the game used for testing in the original post does have a cover image at
~/.steam/root/appcache/librarycache/1186640/library_600x900.jpg(which is 300x450 despite the filename), and runningseems to confirm that the image is visible to the Cartridges Flatpak. So for what it's worth, I don't think filesystem access is the problem.
Seeing the same behaviour on a non-flatpak install (distro gentoo).
✔ I updated Cartridges to 2.11.1, and it was able to get cover art for all the Steam games I installed since my last import.
Thanks @kra-mo!
Since the update originally intended to solve this bug (I wasn't affected) I miss some of the covers of some steam games like Eve Online, Helldivers .... All my Steam games are installed in the same place. Please reopen the issue. Please find attached a screenshot.
Have also been dealing with this issue for a while (few months). It seems to only affect newer games though at least anecdotally for me?
In case of Helldivers I was able to fix this for me with removing the
tm(™) from the game name manually in Cartridges, I expect this to be an encoding issue where it cant find a match.I can confirm that there is still a problem (or, rather, a new problem) with getting covers from Steam. However, it affects only certain games. I think I might be seeing the same thing that @Shrub saw (although I didn't personally have any issues a month ago). Basically, I think the problem is simply that Steam is inconsistent about where covers are stored.
I recently installed a few games including DOOM + DOOM II (app ID 2280), Heretic + Hexen (app ID 3286930), and FALLSTRUKTUR (app ID 3674270). When I did a Cartridges import today, it found the cover for DOOM + DOOM II but not for Heretic + Hexen nor for FALLSTRUKTUR. It's likely that Steam's image cache structure changed recently, considering both of the affected games are recent releases, but it doesn't seem to be applied retroactively to older games.
I checked
~/.steam/steam/appcache/librarycache/, and found the DOOM + DOOM II cover at2280/library_600x900.jpgwhich is where Cartridges looks for it as of commit597c668d69which fixed the original issue. However, the cover for FALLSTRUKTUR is at3674270/dbb4e53d0b7bafbdcb0d8c68bdbc800946c6cdf2/library_600x900.jpg, and the cover for Heretic + Hexen is at3286930/dbdad6a66e6a076d138b9ce8bd81dbdf159bccb2/library_capsule.jpg. So not only are these images found one level deeper in folders with random hexadecimal junk names, but the filenames are also inconsistent.Note that FALLSTRUKTUR happens to be free, which makes the current issue easy to reproduce. However, you can also see the file paths (relative to
~/.steam/steam/appcache/librarycache/<appid>/) in the "metadata" tab of each game's SteamDB page:(Scroll down to the "Assets" section on each page. Specifically, see the
library_capsulefilenames in thelibrary_assets_fullrow of the table in that section.)Considering these inconsistencies, namely that we cannot even rely on the filename
library_600x900.jpganymore, I think the search for Steam covers might need to be implemented as a recursive search under a givenlibrarycache/<appid>/for any 300x450 or 600x900 images (unless @kramo wants to bet on the filename always being eitherlibrary_600x900.jpgorlibrary_capsule.jpg... which, actually, is probably worth a try, and I would seriously hope it's good enough, considering that checking dimensions of a bunch of images is probably way more work than Cartridges should be doing for the cover import).I just ran the following in my own
~/.steam/steam/appcache/librarycache/directory:Based on the output, I can confirm that all of my own cached 300x450 game covers have one of the following types of paths:
<appid>/library_600x900.jpg<appid>/*/library_600x900.jpg<appid>/*/library_capsule.jpgNote that the
*above is the unpredictable hexadecimal junk, so I assume Cartridges would at least have to do some kind of glob here. Incidentally, Heretic + Hexen is the only game I found with alibrary_capsule.jpg, but of course this is just from my own library. In fact, it's only what Steam has cached for my own library. I don't think the library cache necessarily contains all of the images for every game.