💾 Archived View for thfr.info › gaming › steamctl › getting-demos.gmi captured on 2024-03-21 at 15:05:04. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

Downloading Demos with steamctl

steamctl is a neat tool to download Steam games on platforms that don't have their own steam client, like OpenBSD. Usually, you download games you own this way:

$ steamctl depot download -a 1234567

The numeric app ID can be found in the very URL of the game's Steam store page. For example, Stardew Valley's store page is:

https://store.steampowered.com/app/413150/Stardew_Valley/

The app ID is then 413150.

Today I tried to download the demo of the upcoming indie game Dome Romantik. Note that demos have their own, separate app IDs from the main (and in this case not yet released) game. You can find this ID either by searching for the demo on SteamDB, or by inspecting the demo download link on the Steam store page.

SteamDB

The app ID for the demo is 1650980, but I can't (yet) download it because I don't have a license:

$ steamctl depot download -a 1650980 -os linux64 
[INFO] Reusing previous username: iselvisforreal
[INFO] Hint: use 'steamctl --user <username> ...' to change
[INFO] Attempting login with remembered credentials
[INFO] Login to Steam successful
[INFO] Checking licenses
(EResult.AccessDenied) No license available for App ID: 1650980

Some searching through steamctl's help output (-h) got me to this:

$ steamctl apps licenses add -h
usage: steamctl apps licenses add [-h] PackageID [PackageID ...]

positional arguments:
  PackageID   Package ID to add

optional arguments:
  -h, --help  show this help message and exit

But where to find the package ID? SteamDB to the rescue:

https://steamdb.info/app/1650980/subs/

This shows "Packages that include this app", and the number 586749 for the "Dome Romantik Demo" package.

Now I have everything to proceed. First, I add the license with the package ID, and then I download the game using the app ID:

$ steamctl apps licenses add 586749                   
[INFO] Reusing previous username: iselvisforreal
[INFO] Hint: use 'steamctl --user <username> ...' to change
[INFO] Attempting login with remembered credentials
Activated package: 586749
  + 1650980: Dome Romantik Demo
$ steamctl depot download -a 1650980 -os linux64 
[INFO] Reusing previous username: iselvisforreal
[INFO] Hint: use 'steamctl --user <username> ...' to change
[INFO] Attempting login with remembered credentials
[INFO] Login to Steam successful
[INFO] Checking licenses
[INFO] Checking change list
[INFO] Getting manifests for 'public' branch
[INFO] Locating and counting files...
[INFO] Processing manifest (7648007820100654225) 'Linux-Content' ...
Data : 100%|██████████| 154M/154M [01:30<00:00, 1.71MB/s]   
Files: 100%|██████████| 3/3 [01:30<00:00, 30.08s/ file]  


[INFO] Download complete

(Sorry if there are raw escape characters where the progress bar should be.)

And voila, I can start the demo on OpenBSD with:

$ godot --main-pack domeromantik.x86_64

Screenshot of the main menu

PS: A port of steamctl is coming up for OpenBSD. In the meantime or on other platforms, you can still install it with pip, the python package installer.