Skip to main content

Export your chess.com games using the public API

Project description

chessdotcom_export

PyPi version Python 3.7|3.8|3.9 PRs Welcome

Export your chess.com games using the public API. Published-Data API Docs

Installation

Requires python3.6+

To install with pip, run:

pip install chessdotcom-export

Usage

export

chessdotcom_export export --help
Usage: chessdotcom_export export [OPTIONS] USERNAME

  Export your chess games

Options:
  --help  Show this message and exit.

The only required argument is your username, the API serves public data and has no serial rate limit.

inspect

Usage: chessdotcom_export inspect [OPTIONS]

  Parse an exported JSON file and interact with it

Options:
  -f, --from-file PATH  Exported file to read from  [required]
  --help                Show this message and exit.

Example

The games are described in PGN (which can be parsed using the chess package), with the final board state in FEN, also parseable using chess.Board

$ chessdotcom_export export seanbreckenridge >data.json
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/archives
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/2021/01
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/2021/02
$ chessdotcom_export inspect -f data.json

In [1]: import io, chess.pgn

In [2]: game = chess.pgn.read_game(io.StringIO(games[0].pgn))

In [3]: for move in game.mainline_moves():
   ...:     print(move)
   ...:
e2e4
e7e6
b1c3
d8f6
d2d3
f8c5
d3d4
c5d4
f2f3

Library Usage

You can also run the commands from python:

In [1]: import chessdotcom_export

In [2]: games = list(map(lambda j: chessdotcom_export.Game.from_api_response(j), chessdotcom_export.get_player_games("seanbreckenridge")))
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/archives
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/2021/01
Requesting https://api.chess.com/pub/player/seanbreckenridge/games/2021/02

In [3]: games[0].fen
Out[3]: 'r3k2r/5ppp/1Qp5/p3p2q/K3P3/4BP1N/1PP3PP/R4B1R b kq -'

In [4]: export = chessdotcom_export.from_export("data.json")

In [5]: export[0].fen
Out[5]: 'r3k2r/5ppp/1Qp5/p3p2q/K3P3/4BP1N/1PP3PP/R4B1R b kq -'

Tests

git clone 'https://github.com/seanbreckenridge/chessdotcom_export'
cd ./chessdotcom_export
pip install '.[testing]'
mypy ./chessdotcom_export

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

chessdotcom_export-0.1.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chessdotcom_export-0.1.1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file chessdotcom_export-0.1.1.tar.gz.

File metadata

  • Download URL: chessdotcom_export-0.1.1.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2

File hashes

Hashes for chessdotcom_export-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c9df8b9cb9dacdb5fbf944b6b2fb631f8b61ce844f7042919c5c591119974a6a
MD5 f58e9393a0bc3d8336896803dfa74221
BLAKE2b-256 e3a07f31ba14d1bf5d0b06e1fe37f461555f502bb9aef2f07d1e134d832084ec

See more details on using hashes here.

File details

Details for the file chessdotcom_export-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: chessdotcom_export-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2

File hashes

Hashes for chessdotcom_export-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d234f2ca36cd6aa3fefaf2be095fdeae85da82135b13a4043da05687ae991b97
MD5 2365ad6524b8ffe5d0a12e1d073cad2a
BLAKE2b-256 2cba7acd323c5616a3e32b7563ba57624150862d4679b0f9707497415f87f2a4

See more details on using hashes here.

Supported by

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