Skip to main content

A library to interact with the Xbox One gaming console via the SmartGlass protocol.

Project description

Xbox-Smartglass-Core

Latest Version Documentation Status https://travis-ci.com/OpenXbox/xbox-smartglass-core-python.svg?branch=master Docker Build Status Discord chat channel

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

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):

https://raw.githubusercontent.com/OpenXbox/xbox-smartglass-core-python/master/assets/xbox_tui_list.png https://raw.githubusercontent.com/OpenXbox/xbox-smartglass-core-python/master/assets/xbox_tui_console.png https://raw.githubusercontent.com/OpenXbox/xbox-smartglass-core-python/master/assets/xbox_tui_log.png https://raw.githubusercontent.com/OpenXbox/xbox-smartglass-core-python/master/assets/xbox_tui_logdetail.png

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xbox-smartglass-core-1.1.0.tar.gz (388.1 kB view details)

Uploaded Source

Built Distribution

xbox_smartglass_core-1.1.0-py2.py3-none-any.whl (81.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file xbox-smartglass-core-1.1.0.tar.gz.

File metadata

  • Download URL: xbox-smartglass-core-1.1.0.tar.gz
  • Upload date:
  • Size: 388.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

Hashes for xbox-smartglass-core-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b07e3244e424682c00f0f2808572e045a9c1a6154850fd2b4d352384883a2eb4
MD5 442781ae81ed1834eab94e6deeefcd2c
BLAKE2b-256 8beb6535f5d893b816c42883b3b34dc40a1c91c1a17df26c5f52003d1e3cdb8b

See more details on using hashes here.

File details

Details for the file xbox_smartglass_core-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: xbox_smartglass_core-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 81.7 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

Hashes for xbox_smartglass_core-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fda9586c9befdc5b1b49fb0f2781a5c8e73c18f7bc5e33685eabd515969ffcda
MD5 0d5ccd40b26f4b0cc37c898f59643afb
BLAKE2b-256 efc7cc4092e96cf963f5475292fa5a3785a134b6a4a44e936f80bc272a903039

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