Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/woctezuma/steamspypi

SteamSpyPI: an API for SteamSpy. Available on PyPI.
https://github.com/woctezuma/steamspypi

steam steamspy steamspy-api

Last synced: 20 days ago
JSON representation

SteamSpyPI: an API for SteamSpy. Available on PyPI.

Awesome Lists containing this project

README

        

# SteamSpyPI: an API for SteamSpy

[![PyPI status][pypi-image]][pypi]
[![Build status][build-image]][build]
[![Code coverage][codecov-image]][codecov]
[![Code Quality][codacy-image]][codacy]

This repository contains Python code to download data through [SteamSpy API][steamspy-api-docs].

## Installation

The code is packaged for [PyPI][steamspy-pypi], so that the installation consists in running:

```bash
pip install steamspypi
```

## Usage

### Returns details for 1000 games. Data is sorted by decreasing number of owners.

A `page` parameter is now required for `all` requests, starting at `page=0`.
You will be able to retrieve 1000 games per `all` request.

Moreover, the API rate is now heavily limited for `all` requests.
You will be able to issue 1 `all` request per minute.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'all'
data_request['page'] = '0'

data = steamspypi.download(data_request)
```

### Returns details for 1000 games. This time, data is cached locally for offline reuse.

In this case, `page` is forcibly set to `0`, without any access to this parameter for the end-user.

Local cache is in `data/%Y%m%d_steamspy.json`, without mentioning `page` in the file name for backward compatibility.

```python
import steamspypi

data = steamspypi.load()
```

### Returns details for all of the games.

Please refer to [this for-loop][github-gist-download-all] to accomodate recent API rate-limits.

Alternatively, if you know the exact number of pages, e.g. 44 as of March 29, 2021:

```python
import steamspypi

data = steamspypi.download_all_pages(num_pages=44)
```

### Returns details for a given application.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'appdetails'
data_request['appid'] = '730'

data = steamspypi.download(data_request)
```

### Returns all games in a given genre.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'genre'
data_request['genre'] = 'Early Access'

data = steamspypi.download(data_request)
```

### Returns all games with a given tag.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'tag'
data_request['tag'] = 'Early Access'

data = steamspypi.download(data_request)
```

### Returns Top 100 games, with respect to the number of players in the last two weeks.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'top100in2weeks'

data = steamspypi.download(data_request)
```

### Returns Top 100 games, with respect to the number of players since March 2009.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'top100forever'

data = steamspypi.download(data_request)
```

### Returns Top 100 games, with respect to the estimated number of owners.

```python
import steamspypi

data_request = dict()
data_request['request'] = 'top100owned'

data = steamspypi.download(data_request)
```

## References

- [`gamedatacrunch`][gamedatacrunch-api]@[PyPI][gamedatacrunch-pypi]: an API to download data through [GameDataCrunch API][gamedatacrunch].

[gamedatacrunch]:
[steamspy-api]:
[steam-api]:

[steamspy-api-docs]:
[steamspy-pypi]:
[gamedatacrunch-api]:
[gamedatacrunch-pypi]:

[github-gist-download-all]:

[pypi]:
[pypi-image]:

[build]:
[build-image]:
[publish-image]:

[pyup]:
[dependency-image]:
[python3-image]:

[codecov]:
[codecov-image]:

[codacy]:
[codacy-image]: