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
File details
Details for the file xbox-smartglass-core-1.1.1.tar.gz
.
File metadata
- Download URL: xbox-smartglass-core-1.1.1.tar.gz
- Upload date:
- Size: 389.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9ae5e9cb61f291f6c4158708b2ad2be346e12ab2dd31af2d1eec96bad02c19a |
|
MD5 | 5606abbd4de958b94bb2759cda0e6316 |
|
BLAKE2b-256 | cedc296468d122ce1022681d9e959e704b5bf1c6dbde27aca92744215c19d124 |
File details
Details for the file xbox_smartglass_core-1.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: xbox_smartglass_core-1.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 84.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05770c60b67fd0cf9c273c50ed0f22a8d90de63fe098bf0898f0774a522ba37d |
|
MD5 | c6fc865599236895f8cd221ecc0c0922 |
|
BLAKE2b-256 | 89e61ff0909838fb63fd225bbf949e2ee1f0e2909e6cdda3f03d4e285f54ec91 |