Skip to main content

migate is a simplified Xiaomi authentication gateway for Python projects

Project description

migate

Xiaomi authentication gateway for Python


Version Changelog


Install

pip install migate

Or add it as a dependency in your project:

# pyproject.toml
dependencies = ["migate"]
# requirements.txt
migate

Usage

import migate

# --- passport (default) ---
# If no params are passed, sid defaults to passport.
# pass_token = migate.get_passtoken()
# service = migate.get_service(pass_token)

# --- unlockApi: bootloader unlock ---
# params = {"sid": "unlockApi", "checkSafeAddress": True}

# --- xiaomiio: Mi Home / smart home devices ---
# params = {"sid": "xiaomiio"}

# --- micoapi: Mi AI speaker ---
# params = {"sid": "micoapi"}

# --- i.mi.com: Mi Cloud / Find Device ---
# params = {"sid": "i.mi.com"}

# --- 18n_bbs_global: Mi Community ---
# params = {"sid": "18n_bbs_global"}

pass_token = migate.get_passtoken(params)
service = migate.get_service(pass_token, params)

print(pass_token)
# {
#   "deviceId":  "wb_...",
#   "passToken": "...",
#   "userId":    "..."
# }

print(service)
# {
#   "servicedata": {
#     "nonce":     ...,
#     "ssecurity": "...",
#     "cUserId":   "...",
#     "psecurity": "...",
#     "deviceId":  "wb_..."
#   },
#   "cookies": {
#     # passport       -> {}
#     # unlockApi      -> serviceToken, unlockApi_slh, unlockApi_ph, userId
#     # xiaomiio       -> serviceToken, cUserId, userId
#     # micoapi        -> serviceToken, micoapi_slh, micoapi_ph, userId
#     # i.mi.com       -> serviceToken, i.mi.com_slh, i.mi.com_ph, userId
#     # 18n_bbs_global -> serviceToken, popRunToken, new_bbs_serviceToken, new_login, userId
#   }
# }

Region detection

import migate

pass_token = migate.get_passtoken()
region = migate.get_region(pass_token)          # e.g. "EU"
region_config = migate.get_regionConfig(region) # e.g. "Europe"

Login

On first run, get_passtoken prompts:

1 - Browser (default)
2 - Terminal
3 - QR code

The session is saved at ~/.{sid}/cookies.json and reused automatically on the next run


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

migate-1.1.3.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

migate-1.1.3-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file migate-1.1.3.tar.gz.

File metadata

  • Download URL: migate-1.1.3.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for migate-1.1.3.tar.gz
Algorithm Hash digest
SHA256 7249e1dc44f0b44fe42185c10501f4f9559caa6bb3dd24c7bfe502b48803157b
MD5 aff6a13dab481cb711a17d0935e68d27
BLAKE2b-256 4b5f9c63cb22206cd85d3e42aa6a52f4ad11b64ac29af0569a167f6852ed52cf

See more details on using hashes here.

File details

Details for the file migate-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: migate-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for migate-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 79fec11a860ce6e2dc16d4bfcf63a4be965d931657077bce65576dac0117a80a
MD5 843fc91d4df0b417fada26b78afdefb0
BLAKE2b-256 c4bf60978188ad1bef5f1f7f8a4d0b2d5108c833b63ddd9684a92c927701853d

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