Код: Выделить всё
from steam.client import SteamClient
from steam.guard import generate_twofactor_code_for_time
import base64, time
def get_depot_manifests(app_id, depot_id):
try:
client = SteamClient()
client.login(
username="username",
password="password",
two_factor_code=generate_twofactor_code_for_time(
base64.b64decode("shared_secret"),
int(time.time())
)
)
app_info = client.get_product_info(apps=[app_id])
depot_info = app_info['apps'][app_id]['depots'].get(str(depot_id), {})
manifests = []
if gid := depot_info['manifests'].get('public', {}).get('gid'):
manifests.append(('public', gid))
for build_id, build in depot_info['manifests'].get('builds', {}).items():
if gid := build.get('gid'):
manifests.append((build_id, gid))
return manifests
except:
return None
manifests = get_depot_manifests(730, 2347770) # Counter-Strike 2
if manifests:
for build_id, gid in manifests:
print(f"Build: {build_id}, GID: {gid}")
Возможен и другой вариант. Для меня это метод, который использует SteamDB. Я заметил, что в SteamDB перечислены манифесты для старых сборок, например https://steamdb.info/depot/2347770/manifests/. Кто-нибудь знает, как SteamDB их извлекает?
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-versions