/add-free-licenses

Automatically add free licenses on Steam.

Primary LanguagePythonMIT LicenseMIT

Note

Consider switching to the ASF plugin FreePackages developped by Citrinate!

Add Free Licenses

This repository contains Python code to automatically add free licenses on Steam.

Illustration cover

Requirements

  • Install the latest version of Python 3.X.
  • Install the required packages:
pip install -r requirements.txt
  • Install ArchiSteamFarm (ASF).
  • Make sure that IPC is toggled ON. This is the default value.

Data

To retrieve a list of appIDs which are already tied to your account, here are a few methods.

1. /dynamicstore/userdata

The variable rgOwnedApps in the JSON data returned by the /dynamicstore/userdata endpoint is a large yet non-exhaustive list of appIDs owned by your account. More information can be found on this unofficial wiki.

NB: you have to be authenticated on Steam in your web-browser in order to use this method.


2. steamctl apps list

steamctl is a Python package available on PyPI.

It allows to print to the terminal the exhaustive list of appIDs owned by your account.

pip install pipx
pipx install steamctl
steamctl apps list

The output should be formatted as follows: {appID} {appName}.

[...]
1667640 Imagined Leviathans Demo
1667710 Gladihaters Demo
1667730 Forgotten Journey
1667770 Samurai Shampoo
1667810 Riding Seas Demo
[...]

NB: you have to be authenticated on Steam with steamctl in order to use this method.


3. /games/?tab=all

Caveat: I recommend not to use this procedure because the list of appIDs is not exhaustive , e.g. demos are missing.

A procedure built into the script at Luois45 parses a list of appIDs from the /games/?tab=all web-page.

NB: the "game details" part of your Steam profile have to be public in order to use this method.


4. /account/licenses/

Caveat: I recommend not to use this procedure because this retrieves subIDs instead of appIDs.

Instructions at Luois45 suggest to execute JavaScript code in your browser on the /account/licenses/ web-page.

NB: you have to be authenticated on Steam in your web-browser in order to use this method.


Because it is the only method which returns an exhaustive list, the recommended method is:

pip install pipx
pipx install git+https://github.com/woctezuma/steamctl.git@67-fix-charmap
steamctl apps list > data/steamctl_output.txt

Usage

python add_free_licenses.py

References