Skip to main content

Asynchronous python library for Steam authorization using protobuf

Project description

Asynchronous python library for Steam authorization using protobuf

pypi: package Python: versions

Install

pip install pysteamauth

Usage

from pysteamauth.auth import Steam


async def main():
    steam = Steam(
        login='login', 
        password='password',
    )
    
    await steam.login_to_steam()

    await steam.request('https://steamcommunity.com')
    await steam.request('https://store.steampowered.com')
    await steam.request('https://help.steampowered.com')

If account have Steam Guard

from pysteamauth.auth import Steam

steam = Steam(
    login='login',
    password='password',
    shared_secret='shared_secret',
)

Cookie storage

Library uses default cookie storage BaseCookieStorage, which stores Steam cookies in application memory. But you can write own cookie storage. For example, redis storage:

import json
from typing import Dict

from aioredis import Redis
from pysteamauth.abstract import CookieStorageAbstract
from pysteamauth.auth import Steam


class RedisStorage(CookieStorageAbstract):

    redis = Redis()

    async def set(self, login: str, cookies: Dict) -> None:
        await self.redis.set(login, json.dumps(cookies))

    async def get(self, login: str, domain: str) -> Dict:
        cookies = await self.redis.get(login)
        if not cookies:
            return {}
        return json.loads(cookies).get(domain, {})


async def main():
    steam = Steam(
        login='login',
        password='password',
        cookie_storage=RedisStorage(),
    )
    
    await steam.login_to_steam()

Error processing

from pysteamauth.auth import Steam
from pysteamauth.errors import SteamError


async def main():
    try:
        await Steam('login', 'password').login_to_steam()
    except SteamError as error:
        print(error)

Or

from pysteamauth.auth import Steam
from pysteamauth.errors import SteamError, custom_error_exception


class LoginError(SteamError):
    ...


class RateLimitExceeded(SteamError):
    ...


custom_error_exception({
    5: LoginError,
    84: RateLimitExceeded,
})


async def main():
    try:
        await Steam('login', 'password').login_to_steam()
    except LoginError as error:
        print(error)

Output

{'error': 'InvalidPassword', 'code': 5}

Proto files

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysteamauth-1.1.2.tar.gz (33.6 kB view details)

Uploaded Source

Built Distribution

pysteamauth-1.1.2-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file pysteamauth-1.1.2.tar.gz.

File metadata

  • Download URL: pysteamauth-1.1.2.tar.gz
  • Upload date:
  • Size: 33.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for pysteamauth-1.1.2.tar.gz
Algorithm Hash digest
SHA256 097865de7146133c72e56a4f375fb8c9620b5356e7249c0732a47475bbb2fd19
MD5 810ae07d3fc2d740aba48b93fe130ab2
BLAKE2b-256 ec9bfb0339532a509a91ed8cd9cf3aebaf3fcb58daa074e61e424ecb9ab1e3ec

See more details on using hashes here.

File details

Details for the file pysteamauth-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: pysteamauth-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for pysteamauth-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c4a62f440241a0f6816957046fd58b8d109975094253846e298ddd0d3db88389
MD5 6008329c5ee6bbee387992a7eb9cda4e
BLAKE2b-256 a4113b13ff97cfb77bc9f803e0e70e8b5644c2a3e25ca10f3178d529b46abfd3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page