{"id":28705405,"url":"https://github.com/wmellema/py-steamcmd-wrapper","last_synced_at":"2025-06-14T14:30:36.480Z","repository":{"id":42188863,"uuid":"233585992","full_name":"wmellema/Py-SteamCMD-Wrapper","owner":"wmellema","description":"Python wrapper for SteamCMD","archived":false,"fork":false,"pushed_at":"2023-10-16T18:51:03.000Z","size":59,"stargazers_count":7,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-10-17T08:31:26.558Z","etag":null,"topics":["linux","python","steamcmd","workshop"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wmellema.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-13T12:02:16.000Z","updated_at":"2023-10-17T08:31:26.559Z","dependencies_parsed_at":"2023-02-04T08:30:42.599Z","dependency_job_id":null,"html_url":"https://github.com/wmellema/Py-SteamCMD-Wrapper","commit_stats":null,"previous_names":[],"tags_count":7,"template":null,"template_full_name":null,"purl":"pkg:github/wmellema/Py-SteamCMD-Wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmellema%2FPy-SteamCMD-Wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmellema%2FPy-SteamCMD-Wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmellema%2FPy-SteamCMD-Wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmellema%2FPy-SteamCMD-Wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wmellema","download_url":"https://codeload.github.com/wmellema/Py-SteamCMD-Wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmellema%2FPy-SteamCMD-Wrapper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259830211,"owners_count":22918246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","python","steamcmd","workshop"],"created_at":"2025-06-14T14:30:35.808Z","updated_at":"2025-06-14T14:30:36.444Z","avatar_url":"https://github.com/wmellema.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Py-SteamCMD-Wrapper\r\n![coverage](https://img.shields.io/badge/coverage-68%25-yellowgreen)\r\n[![HitCount](http://hits.dwyl.com/wmellema/Py-SteamCMD-Wrapper.svg)](http://hits.dwyl.com/wmellema/Py-SteamCMD-Wrapper)\r\n[![DeepSource](https://deepsource.io/gh/wmellema/Py-SteamCMD-Wrapper.svg/?label=active+issues\u0026show_trend=true\u0026token=8nt7sgsxmpk2mYkD6jI_9K0R)](https://deepsource.io/gh/wmellema/Py-SteamCMD-Wrapper/?ref=repository-badge)\r\n\r\nDuring the setup of game servers it can be infuriating to use SteamCMD due to some particularities within the SteamCMD Toolkit. This simple wrapper for python will handle everything from installation to downloading games.\r\n\r\n## Getting Started\r\n\r\nThese instructions will get you a copy of the project up and running on your machine for development and testing purposes\r\n\r\n### Prerequisites\r\nWhen installing on linux, you'll need the 32-bit libraries specified on the [valvesoftware](https://developer.valvesoftware.com/wiki/SteamCMD#32-bit_libraries_on_64-bit_Linux_systems) website.\r\n\r\n#### Ubuntu\r\n```\r\nsudo apt-get install lib32stdc++6\r\n```\r\nIf you get an error for missing dependencies or broken packages, run the following\r\n```\r\n dpkg --add-architecture i386\r\n apt-get update\r\n apt-get install lib32gcc1\r\n ```\r\n #### RHEL, Fedora, CentOS, etc.\r\n ```\r\n yum install glibc.i686 libstdc++.i686\r\n```\r\n\r\n#### Arch Linux\r\nEnable the [multilib repository](https://wiki.archlinux.org/index.php/Multilib)\r\n```\r\npacman -S lib32-gcc-libs\r\n```\r\n\r\n### Installing\r\n\r\nRun the following command to install the package\r\n```bash\r\npip install py-steamcmd-wrapper\r\n```\r\n\r\nIn order to install steam using this wrapper you'll have to do the following:\r\n``` python\r\nfrom pysteamcmdwrapper import SteamCMD\r\n\r\nsteam = SteamCMD(\"MyInstallationDir\")\r\nsteam.install()\r\n```\r\n\r\n### Usage\r\nCurently there are 4 methods available in the wrapper. These are as follows:\r\n- install\r\n- login\r\n- app_update\r\n- workshop_update\r\n\r\nYou can use these methods to install steamcmd, login a user, download a game/gameserver or a workshop mod.\r\nIf your game needs a valid subscription (AKA you've bought the game) the login function needs to be called. When left empty, it will prompt for login information.\r\n\r\nA small code snippet to install an Arma III dedicated server with CBA_A3 installed\r\n```python\r\nimport os\r\nfrom pysteamcmdwrapper import SteamCMD, SteamCMDException\r\n\r\nSERVER_DIR = \"armaserver\"\r\nWORKSHOP_DIR = os.path.join(os.getcwd(),\"armamods\",\"steamapps\",\"workshop\",\"content\",\"107410\")\r\nMOD_DIR = os.path.join(os.getcwd(),SERVER_DIR)\r\n\r\ns = SteamCMD(\"steamcmd\")\r\ntry:\r\n    s.install()\r\nexcept SteamCMDException:\r\n    print(\"Already installed, try to use the --force option to force installation\")\r\n\r\ns.login()\r\ns.app_update(233780,os.path.join(os.getcwd(),SERVER_DIR),validate=True)\r\n\r\nmodname = \"cba_a3\"\r\nid = \"450814997\"\r\ns.workshop_update(107410,id,os.path.join(os.getcwd(),\"armamods/\"),validate=True)\r\ntry:\r\n    os.symlink(os.path.join(WORKSHOP_DIR,id),os.path.join(MOD_DIR,\"@\"+modname))\r\nexcept FileExistsError:\r\n    print(\"Already linked\")\r\nkeydir = os.path.join(MOD_DIR,\"@\"+modname,\"keys\")\r\nif not os.path.isdir(keydir):\r\n    keydir = os.path.join(MOD_DIR,\"@\"+modname,\"key\")\r\nfor key in os.listdir(keydir):\r\n    print(\"Linking \",key)\r\n    try:\r\n        os.symlink(os.path.join(keydir,key),os.path.join(MOD_DIR,\"keys\",key))\r\n    except FileExistsError:\r\n        print(\"Already Linked\")\r\n```\r\n\r\n\u003e This snippet can be used with another project of mine. This will be coming soon!\r\n\r\nThe login function is only needed when a subscription to the game is needed. The wrapper uses the 'Anonymous' user by default\r\n\r\n## Contributing\r\n\r\nPlease read [CONTRIBUTING.md](https://gist.github.com/wmellema/39a671fa6c6ffda66b4bd689f53c57f1) for details on our code of conduct, and the process for submitting pull requests to me.\r\n\r\n## Versioning\r\n\r\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](#).\r\n\r\n## Authors\r\n\r\n* **Wouter Mellema** - *Initial work* - [wmellema](https://github.com/wmellema)\r\n\r\nSee also the list of [contributors](https://github.com/wmellema/Py-SteamCMD-Wrapper/contributors) who participated in this project.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\r\n\r\n## Acknowledgments\r\n\r\n* [f0rkz](https://github.com/f0rkz), whose original [pysteamcmd](https://github.com/f0rkz/pysteamcmd) project was abandoned, but still very usefull as a building block\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmellema%2Fpy-steamcmd-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwmellema%2Fpy-steamcmd-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmellema%2Fpy-steamcmd-wrapper/lists"}