ValvePython / steamctl

🤸 Take control of Steam from your terminal
https://pypi.org/project/steamctl/
MIT License
306 stars 16 forks source link

[BUG] Steam broke the workshop download functionality #51

Closed stevenstrickler closed 2 years ago

stevenstrickler commented 2 years ago

Description I have a website that takes workshop content for a game and runs stats on it for competitive players. After working for months without issue, downloading workshop content has stopped working. It uses python's subprocess module to call steamctl commands to download workshop content.

Steps to Reproduce the behavior Call a workshop download command. (Tried on two different machines with two different accounts, both of which own the game.)

Expected behavior A workshop item is downloaded.

What actually happened (EResult.Fail) HTTP Error 401. Item failed to download.

Logs

steamctl -l debug workshop download 2807051950 ``` [DEBUG] steamctl: Parsed args: {'versions_report': None, 'log_level': 'debug', 'anonymous': False, 'user': None, 'command': 'workshop', '_cmd_func': 'steamctl.commands.workshop.gcmds:cmd_workshop_download', 'subcommand': 'download', 'apikey': None, 'cell_id': None, 'output': '', 'no_directories': False, 'no_progress': False, 'id': 2807051950} [DEBUG] steamctl.utils.storage: Opening file (r): /home/ubuntu/.local/share/steamctl/apikey.txt [DEBUG] urllib3.connectionpool: Starting new HTTPS connection (1): api.steampowered.com:443 [DEBUG] urllib3.connectionpool: https://api.steampowered.com:443 "GET /IPublishedFileService/GetDetails/v1/?key=60455B2C53B5508597D6558159EDFFD1&format=json&publishedfileids%5B0%5D=2807051950 HTTP/1.1" 200 741 [INFO] steamctl.commands.workshop.gcmds: Workshop item: (2807051950) Candy and Chains [INFO] steamctl.commands.workshop.gcmds: App: (1216230) Project Heartbeat [DEBUG] SteamClient: Reading CM servers from '/home/ubuntu/.local/share/steamctl/client/cm_servers.json' [DEBUG] CMServerList: Added 80 new CM addresses. [DEBUG] steamctl.utils.storage: Opening file (r): /home/ubuntu/.local/share/steamctl/cs_servers.json [DEBUG] CachingCDNClient: No steam licenses found on SteamClient instance [DEBUG] steamctl.utils.storage: Opening file (r): /home/ubuntu/.local/share/steamctl/depot_keys.json [DEBUG] urllib3.connectionpool: Starting new HTTP connection (1): cache1-iad1.steamcontent.com:80 [DEBUG] urllib3.connectionpool: http://cache1-iad1.steamcontent.com:80 "GET /depot/1216230/manifest/4401192380018554646/5 HTTP/1.1" 401 98 [DEBUG] CachingCDNClient: Got HTTP 401 [ERROR] steamctl.commands.workshop.gcmds: (EResult.Fail) HTTP Error 401 ```

Versions Report

steamctl --versions-report ```yaml Dependencies: steam: 1.2.1 appdirs: 1.4.4 argcomplete: 1.12.3 tqdm: 4.62.3 arrow: 1.2.1 pyqrcode: 1.2.1 beautifulsoup4: 4.10.0 vpk: 1.3.3 vdf: 3.4 gevent-eventemitter: 2.1 gevent: 21.12.0 greenlet: 1.1.2 pyyaml: 5.3.1 pycryptodomex: 3.12.0 protobuf: 3.19.1 Python runtime: executable: /usr/bin/python3 version: 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0] platform: linux System info: system: Linux machine: x86_64 release: 5.4.0-88-generic version: #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 ```
rossengeorgiev commented 2 years ago

Valve turned on manifest request codes which breaks downloads. The latest version implements and download should work