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.org/smartglass-documentation)
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)
Trigger GameDVR remotely
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
See the end of this README for development-targeted instructions.
How to use
There are several command line utilities to check out:
$ xbox-cli
Some functionality, such as GameDVR record, requires authentication with your Microsoft Account to validate you have the right to trigger such action.
To authenticate / get authentication tokens use:
$ xbox-authenticate # Alternative: Use the ncurses terminal ui, it has authentication integrated $ xbox-tui
REST Server
Start the REST server:
$ xbox-rest-server
For more information consult RestFAQ
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):
Development workflow
Ready to contribute? Here’s how to set up xbox-smartglass-core-python for local development.
Fork the xbox-smartglass-core-python repo on GitHub.
Clone your fork locally:
$ git clone git@github.com:your_name_here/xbox-smartglass-core-python.git
Install your local copy into a virtual environment. This is how you set up your fork for local development:
$ python -m venv ~/pyvenv/xbox-smartglass $ source ~/pyvenv/xbox-smartglass/bin/activate $ cd xbox-smartglass-core-python $ pip install -e .[dev]
Setup auto-linting before each commit via pre-commit:
$ pre-commit install
Create a branch for local development:
$ git checkout -b name-of-your-bugfix-or-feature
Make your changes.
Before pushing the changes to git, please verify they actually work:
$ pre-commit run -a $ pytest # For more extensive testing on several frameworks: $ tox
Commit your changes and push your branch to GitHub:
$ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-feature
Submit a pull request through the GitHub website.
Pull Request Guidelines
Before you submit a pull request, check that it meets these guidelines:
Code includes unit-tests.
Added code is properly named and documented.
On major changes the README is updated.
Run tests / linting locally before pushing to remote.
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.2.1 (2020-03-04)
cli: Python3.6 compatibility change
HOTFIX: Add xbox.handlers to packages in setup.py
1.2.0 (2020-03-04)
CLI scripts rewritten, supporting log/loglevel args now, main script is called xbox-cli now
Add REPL / REPL server functionality
Updates to README and REST server documentation
1.1.2 (2020-02-29)
Drop support for Python 3.5
crypto: Fix deprecated cryptography functions
tests: Speed up REST server tests (discovery, poweron)
Update all dependencies
1.1.1 (2020-02-29)
FIX: Include static files for REST server in distributable package
REST: Remove deprecated packages from showing in /versions endpoint
1.1.0 (2020-02-29)
Clean up dependencies
Merge in xbox-smartglass-rest, deprecate standalone package
Merge in xbox-smartglass-stump, deprecate standalone package
Merge in xbox-smartglass-auxiliary, deprecate standalone package
tui: Fix crash when bringing up command menu, support ESC to exit
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.2.2.tar.gz
.
File metadata
- Download URL: xbox-smartglass-core-1.2.2.tar.gz
- Upload date:
- Size: 391.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/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05d5a1e7a0e9975e088df9e61e4702597f63bddafa3c7ff37d4241022b38eee8 |
|
MD5 | cb5f33811a53c06c16af2138a61bd0be |
|
BLAKE2b-256 | 2d6d6ed58a7dd7389fe827f94f032eb1d2b9b6859e82878df5922943a0809904 |
File details
Details for the file xbox_smartglass_core-1.2.2-py2.py3-none-any.whl
.
File metadata
- Download URL: xbox_smartglass_core-1.2.2-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/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cde071f96b03a52f2a15d012afc7ff538b8b40ea8a0a797088c5f1dc43fdca2a |
|
MD5 | 1a07b0b2b2850e2e2ed8034c4f83a18e |
|
BLAKE2b-256 | 943305dcda632c0c7f391c7c36ebec387f1fc4b566baaae79ce053e996ed2417 |