A library to interact with the Xbox One gaming console via the SmartGlass protocol.
Project description
Xbox-Smartglass-Core
This library provides the core foundation for the smartglass protocol that is used with the Xbox One Gaming console
For in-depth information, check out the documentation: (https://openxbox.github.io)
NOTE: Since 29.02.2020 the following modules are integrated into core: stump, auxiliary, rest-server NOTE: Nano module is still offered seperately
Features
Power on / off the console
Get system info (running App/Game/Title, dashboard version)
Media player control (seeing content id, content app, playback actions etc.)
Stump protocol (Live-TV Streaming / IR control)
Title / Auxiliary stream protocol (f.e. Fallout 4 companion app)
REST Server
Frameworks used
construct - Binary parsing (https://construct.readthedocs.io/)
cryptography - cryptography magic (https://cryptography.io/en/stable/)
gevent - coroutines (http://www.gevent.org/)
dpkt - pcap parsing (https://dpkt.readthedocs.io/en/latest/)
Flask - REST API (https://pypi.org/project/Flask/)
Install
Via pip:
pip install xbox-smartglass-core
How to use
Authenticate first (Authentication provided by xbox-webapi-python):
$ xbox-authenticate # Alternative: Use the ncurses terminal ui, it has authentication integrated $ xbox-tui
Now have a look in the Documentation how to use the provided shell-scripts!
REST Server
Start the REST server
$ xbox-rest-server
Incase you run into a problem, check out RestFAQ
REST Server - Authentication
Authenticate from scratch
For non-2FA enabled account: http://localhost:5557/auth/login For 2FA: http://localhost:5557/auth/oauth # Store tokens on valid authentication http://localhost:5557/auth/store
Load tokens from disk
http://localhost:5557/auth/load http://localhost:5557/auth/refresh
2FA OAuth - POST
# Get authorize url GET http://localhost:5557/auth/url Response-Parameters (JSON): authorization_url # Submit redirect url POST http://localhost:5557/auth/oauth Request-Parameters: redirect_uri
Regular (non-2FA) login - POST
POST http://localhost:5557/auth/login Request-Parameters: email, password
REST Server - General usage
To see all API endpoints:
http://localhost:5557
Usual usage:
# (Optional) Poweron console http://localhost:5557/device/<liveid>/poweron # NOTE: You can specify device by ip: /device/<liveid>/poweron?addr=192.168.0.123 # Enumerate devices on network # NOTE: You can enumerate device by specific ip: /device?addr=192.168.0.123 http://localhost:5557/device # Connect to console # NOTE: You can connect anonymously: /connect?anonymous=true # .. if console allows it .. http://localhost:5557/device/<liveid>/connect # Use other API endpoints ...
Fallout 4 relay service
To forward the title communication from the Xbox to your local host to use third-party Fallout 4 Pip boy applications or extensions:
xbox-fo4-relay
Screenshots
Here you can see the SmartGlass TUI (Text user interface):
Known issues
Find, report and/or fix them ;)
Contribute
Report bugs/suggest features
Add/update docs
Enhance managers
Credits
Kudos to joelday for figuring out the AuxiliaryStream / TitleChannel communication first! You can find the original implementation here: SmartGlass.CSharp.
This package uses parts of Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
1.0.12 (2018-11-14)
Python 3.7 compatibility
1.0.11 (2018-11-05)
Add game_dvr_record to Console-class
Fix PCAP parser
Add last_error property to Console-class
1.0.10 (2018-08-14)
Safeguard around connect() functions, if userhash and xsts_token is NoneType
1.0.9 (2018-08-11)
Fix for Console instance poweron
Reset state after poweroff
Little fixes to TUI
Support handling MessageFragments
1.0.8 (2018-06-14)
Use aenum library for backwards-compat with _enum.Flag_ on py3.5
1.0.7 (2018-05-16)
CoreProtocol.connect: Treat ConnectionResult.Pending as error
constants.WindowsClientInfo: Update ClientVersion 15 -> 39
Make CoreProtocol.start_channel take optional title_id / activity_id arguments
1.0.1 (2018-05-03)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for xbox-smartglass-core-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b07e3244e424682c00f0f2808572e045a9c1a6154850fd2b4d352384883a2eb4 |
|
MD5 | 442781ae81ed1834eab94e6deeefcd2c |
|
BLAKE2b-256 | 8beb6535f5d893b816c42883b3b34dc40a1c91c1a17df26c5f52003d1e3cdb8b |
Hashes for xbox_smartglass_core-1.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fda9586c9befdc5b1b49fb0f2781a5c8e73c18f7bc5e33685eabd515969ffcda |
|
MD5 | 0d5ccd40b26f4b0cc37c898f59643afb |
|
BLAKE2b-256 | efc7cc4092e96cf963f5475292fa5a3785a134b6a4a44e936f80bc272a903039 |