Skip to main content

An unofficial Aternos API

Project description

Python Aternos Logo

Python Aternos

An unofficial Aternos API written in Python.
It uses aternos' private API and html parsing.

Python Aternos supports:

  • Logging in to account with password (plain or hashed) or ATERNOS_SESSION cookie value.
  • Saving session to the file and restoring.
  • Changing username, email and password.
  • Parsing Minecraft servers list.
  • Parsing server info by its ID.
  • Starting/stoping server, restarting, confirming/cancelling launch.
  • Updating server info in real-time (view WebSocket API).
  • Changing server subdomain and MOTD (message-of-the-day).
  • Managing files, settings, players (whitelist, operators, etc.)

Warning

According to the Aternos' Terms of Service §5.2e, you must not use any software or APIs for automated access, beacuse they don't receive money from advertisting in this case.

I always try to hide automated python-aternos requests using browser-specific headers/cookies,
but you should make backups to restore your world if Aternos detects violation of ToS and bans your account (view issues #16 and #46).

Install

Common

$ pip install python-aternos

Note for Windows users

Install lxml package from here if you have problems with it, and then execute:
pip install --no-deps python-aternos

Development

$ git clone https://github.com/DarkCat09/python-aternos.git
$ cd python-aternos
$ pip install -e .

Usage

To use Aternos API in your Python script, import it and login with your username and password or MD5.

Then request the servers list using list_servers().
You can start/stop your Aternos server, calling start() or stop().

Here is an example how to use the API:

# Import
from python_aternos import Client

# Log in
aternos = Client.from_credentials('example', 'test123')
# ----OR----
aternos = Client.from_hashed('example', 'cc03e747a6afbbcbf8be7668acfebee5')
# ----OR----
aternos = Client.restore_session()

# Returns AternosServer list
servs = aternos.list_servers()

# Get the first server by the 0 index
myserv = servs[0]

# Start
myserv.start()
# Stop
myserv.stop()

# You can also find server by IP
testserv = None
for serv in servs:
    if serv.address == 'test.aternos.org':
        testserv = serv

if testserv is not None:
    # Prints a server softaware and its version
    # (for example, "Vanilla 1.12.2")
    print(testserv.software, testserv.version)
    # Starts server
    testserv.start()

More examples

Documentation

How-To Guide

Changelog

Version Description
v0.1 The first release.
v0.2 Fixed import problem.
v0.3 Implemented files API, added typization.
v0.4 Implemented configuration API, some bugfixes.
v0.5 The API was updated corresponding to new Aternos security methods. Huge thanks to lusm554.
v0.6/v1.0.0 Code refactoring, websockets API and session saving to prevent detecting automation access.
v1.0.x Lots of bugfixes, changed versioning (SemVer).
v1.1.x Documentation, unit tests, pylint, bugfixes, changes in atwss.
v1.1.2/v2.0.0 Solution for #25 (Cloudflare bypassing), bugfixes in JS parser.
v2.0.x Documentation, automatically saving/restoring session, improvements in Files API.
v2.1.x Fixes in websockets API, atconnect. Supported captcha solving services (view #52).
v2.2.x Using Node.js as a JS interpreter if it's installed.
v3.0.x Full implementation of config and software API.
v3.1.x Shared access API and Google Drive backups.

License

License Notice:

Copyright 2021-2022 All contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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

python-aternos-2.1.1.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

python_aternos-2.1.1-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file python-aternos-2.1.1.tar.gz.

File metadata

  • Download URL: python-aternos-2.1.1.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.62.3 importlib-metadata/4.8.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.10.6

File hashes

Hashes for python-aternos-2.1.1.tar.gz
Algorithm Hash digest
SHA256 3c0e14786e29595a61b5428b906de5b2d2dc41c18b65069c7b3697ce4041ba8a
MD5 effca18c664d43a8c9f4007af682cb1e
BLAKE2b-256 4653ffa5c78ed865a738214dc99fda9a98f2aabfabf11e72121a3bbe9ce4ee71

See more details on using hashes here.

File details

Details for the file python_aternos-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: python_aternos-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.62.3 importlib-metadata/4.8.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.10.6

File hashes

Hashes for python_aternos-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 55224e6e0f4925a9dfc072aabf34a15fa6cfca03357bf76813247ccca023ecf3
MD5 fe09a8d5e9abf8a9a22fc8eb7cea5a08
BLAKE2b-256 270b42b4540a8f930519b429d84c99ee119edb0ed17ac449cdae2b037e411d5b

See more details on using hashes here.

Supported by

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