Reference¶
Xbox Live Client
Basic factory that stores :class:XboxLiveLanguage, User authorization data
and available Providers
pythonxbox.api.client.log = logging.getLogger('xbox.api')
module-attribute
¶
pythonxbox.api.client.Session(auth_mgr)
¶
Source code in src/pythonxbox/api/client.py
request(method, url, include_auth=True, include_cv=True, **kwargs)
async
¶
Proxy Request and add Auth/CV headers.
Source code in src/pythonxbox/api/client.py
get(url, **kwargs)
async
¶
options(url, **kwargs)
async
¶
head(url, **kwargs)
async
¶
post(url, **kwargs)
async
¶
put(url, **kwargs)
async
¶
patch(url, **kwargs)
async
¶
pythonxbox.api.client.XboxLiveClient(auth_mgr, language=DefaultXboxLiveLanguages.United_States)
¶
Source code in src/pythonxbox/api/client.py
session = Session(auth_mgr)
instance-attribute
¶
cqs = CQSProvider(self)
instance-attribute
¶
lists = ListsProvider(self)
instance-attribute
¶
profile = ProfileProvider(self)
instance-attribute
¶
achievements = AchievementsProvider(self)
instance-attribute
¶
usersearch = UserSearchProvider(self)
instance-attribute
¶
gameclips = GameclipProvider(self)
instance-attribute
¶
people = PeopleProvider(self)
instance-attribute
¶
presence = PresenceProvider(self)
instance-attribute
¶
mediahub = MediahubProvider(self)
instance-attribute
¶
message = MessageProvider(self)
instance-attribute
¶
userstats = UserStatsProvider(self)
instance-attribute
¶
screenshots = ScreenshotsProvider(self)
instance-attribute
¶
titlehub = TitlehubProvider(self)
instance-attribute
¶
account = AccountProvider(self)
instance-attribute
¶
catalog = CatalogProvider(self)
instance-attribute
¶
smartglass = SmartglassProvider(self)
instance-attribute
¶
xuid
property
¶
Gets the Xbox User ID
Returns: Xbox user Id
language
property
¶
Gets the active Xbox Live Language
Returns: Active Xbox Live language
Language definitions
pythonxbox.api.language.XboxLiveLanguage(name, short_id, identifier, locale)
¶
Initialize a new instance of :class:XboxLiveLanguage
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Full name describing the language / country |
required |
short_id
|
str
|
Short Id (e.g. "AT" for Austria) |
required |
identifier
|
str
|
Identifier (e.g. "de_AT" for Austria) |
required |
locale
|
str
|
Locale (e.g. "de-AT" for Austria) |
required |
Source code in src/pythonxbox/api/language.py
pythonxbox.api.language.DefaultXboxLiveLanguages
¶
Collection of locales compatible with XBL
Argentina = XboxLiveLanguage('Argentina', 'AR', 'es_AR', 'es-AR')
class-attribute
instance-attribute
¶
Australia = XboxLiveLanguage('Australia', 'AU', 'en_AU', 'en-AU')
class-attribute
instance-attribute
¶
Austria = XboxLiveLanguage('Austria', 'AT', 'de_AT', 'de-AT')
class-attribute
instance-attribute
¶
Belgium = XboxLiveLanguage('Belgium', 'BE', 'fr_BE', 'fr-BE')
class-attribute
instance-attribute
¶
Belgium_NL = XboxLiveLanguage('Belgium (NL)', 'NL', 'nl_BE', 'nl-BE')
class-attribute
instance-attribute
¶
Brazil = XboxLiveLanguage('Brazil', 'BR', 'pt_BR', 'pt-BR')
class-attribute
instance-attribute
¶
Canada = XboxLiveLanguage('Canada', 'CA', 'en_CA', 'en-CA')
class-attribute
instance-attribute
¶
Canada_FR = XboxLiveLanguage('Canada (FR)', 'CA', 'fr_CA', 'fr-CA')
class-attribute
instance-attribute
¶
Czech_Republic = XboxLiveLanguage('Czech Republic', 'CZ', 'en_CZ', 'en-CZ')
class-attribute
instance-attribute
¶
Denmark = XboxLiveLanguage('Denmark', 'DK', 'da_DK', 'da-DK')
class-attribute
instance-attribute
¶
Finland = XboxLiveLanguage('Finland', 'FI', 'fi_FI', 'fi-FI')
class-attribute
instance-attribute
¶
France = XboxLiveLanguage('France', 'FR', 'fr_FR', 'fr-FR')
class-attribute
instance-attribute
¶
Germany = XboxLiveLanguage('Germany', 'DE', 'de_DE', 'de-DE')
class-attribute
instance-attribute
¶
Greece = XboxLiveLanguage('Greece', 'GR', 'en_GR', 'en-GR')
class-attribute
instance-attribute
¶
Hong_Kong = XboxLiveLanguage('Hong Kong', 'HK', 'en_HK', 'en-HK')
class-attribute
instance-attribute
¶
Hungary = XboxLiveLanguage('Hungary', 'HU', 'en_HU', 'en-HU')
class-attribute
instance-attribute
¶
India = XboxLiveLanguage('India', 'IN', 'en_IN', 'en-IN')
class-attribute
instance-attribute
¶
Great_Britain = XboxLiveLanguage('Great Britain', 'GB', 'en_GB', 'en-GB')
class-attribute
instance-attribute
¶
Israel = XboxLiveLanguage('Israel', 'IL', 'en_IL', 'en-IL')
class-attribute
instance-attribute
¶
Italy = XboxLiveLanguage('Italy', 'IT', 'it_IT', 'it-IT')
class-attribute
instance-attribute
¶
Japan = XboxLiveLanguage('Japan', 'JP', 'ja_JP', 'ja-JP')
class-attribute
instance-attribute
¶
Mexico = XboxLiveLanguage('Mexico', 'MX', 'es_MX', 'es-MX')
class-attribute
instance-attribute
¶
Chile = XboxLiveLanguage('Chile', 'CL', 'es_CL', 'es-CL')
class-attribute
instance-attribute
¶
Colombia = XboxLiveLanguage('Colombia', 'CO', 'es_CO', 'es-CO')
class-attribute
instance-attribute
¶
Netherlands = XboxLiveLanguage('Netherlands', 'NL', 'nl_NL', 'nl-NL')
class-attribute
instance-attribute
¶
New_Zealand = XboxLiveLanguage('New Zealand', 'NZ', 'en_NZ', 'en-NZ')
class-attribute
instance-attribute
¶
Norway = XboxLiveLanguage('Norway', 'NO', 'nb_NO', 'nb-NO')
class-attribute
instance-attribute
¶
Poland = XboxLiveLanguage('Poland', 'PL', 'pl_PL', 'pl-PL')
class-attribute
instance-attribute
¶
Portugal = XboxLiveLanguage('Portugal', 'PT', 'pt_PT', 'pt-PT')
class-attribute
instance-attribute
¶
Russia = XboxLiveLanguage('Russia', 'RU', 'ru_RU', 'ru-RU')
class-attribute
instance-attribute
¶
Saudi_Arabia = XboxLiveLanguage('Saudi Arabia', 'SA', 'en_SA', 'en-SA')
class-attribute
instance-attribute
¶
Singapore = XboxLiveLanguage('Singapore', 'SG', 'en_SG', 'en-SG')
class-attribute
instance-attribute
¶
Slovakia = XboxLiveLanguage('Slovakia', 'SK', 'en_SK', 'en-SK')
class-attribute
instance-attribute
¶
South_Africa = XboxLiveLanguage('South Afrida', 'ZA', 'en_ZA', 'en-ZA')
class-attribute
instance-attribute
¶
Korea = XboxLiveLanguage('Korea', 'KR', 'ko_KR', 'ko-KR')
class-attribute
instance-attribute
¶
Spain = XboxLiveLanguage('Spain', 'ES', 'es_ES', 'es-ES')
class-attribute
instance-attribute
¶
Switzerland = XboxLiveLanguage('Switzerland', 'CH', 'de_CH', 'de-CH')
class-attribute
instance-attribute
¶
Switzerland_FR = XboxLiveLanguage('Switzerland (FR)', 'CH', 'fr_CH', 'fr-CH')
class-attribute
instance-attribute
¶
United_Arab_Emirates = XboxLiveLanguage('United Arab Emirates', 'AE', 'en_AE', 'en-AE')
class-attribute
instance-attribute
¶
United_States = XboxLiveLanguage('United States', 'US', 'en_US', 'en-US')
class-attribute
instance-attribute
¶
Ireland = XboxLiveLanguage('Ireland', 'IE', 'en_IE', 'en-IE')
class-attribute
instance-attribute
¶
pythonxbox.api.provider.account.AccountProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
BASE_URL_USER_MGT = 'https://user.mgt.xboxlive.com'
class-attribute
instance-attribute
¶
BASE_URL_ACCOUNT = 'https://accounts.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_USER_MGT = {'x-xbl-contract-version': '1'}
class-attribute
instance-attribute
¶
HEADERS_ACCOUNT = {'x-xbl-contract-version': '2'}
class-attribute
instance-attribute
¶
claim_gamertag(xuid, gamertag, **kwargs)
async
¶
Claim gamertag
XLE error codes
400 - Bad API request 401 - Unauthorized 409 - Gamertag unavailable 429 - Too many requests 200 - Gamertag available
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
int
|
Your xuid as integer |
required |
gamertag
|
str
|
Desired gamertag |
required |
Returns: ClaimGamertagResult
Source code in src/pythonxbox/api/provider/account/__init__.py
change_gamertag(xuid, gamertag, preview=False, **kwargs)
async
¶
Change your gamertag.
XLE error codes
200 - success 1020 - No free gamertag changes available
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
int
|
Your Xuid as integer |
required |
gamertag
|
str
|
Desired gamertag name |
required |
preview
|
bool
|
Preview the change |
False
|
Returns: ChangeGamertagResult
Source code in src/pythonxbox/api/provider/account/__init__.py
pythonxbox.api.provider.account.models.ClaimGamertagResult
¶
CQS
Used for download stump (TV Streaming) data (RemoteTVInput ServiceChannel on Smartglass)
pythonxbox.api.provider.cqs.CQSProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
CQS_URL = 'https://cqs.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_CQS = {'Cache-Control': 'no-cache', 'Accept': 'application/json', 'Pragma': 'no-cache', 'x-xbl-client-type': 'Companion', 'x-xbl-client-version': '2.0', 'x-xbl-contract-version': '1.b', 'x-xbl-device-type': 'WindowsPhone', 'x-xbl-isautomated-client': 'true'}
class-attribute
instance-attribute
¶
get_channel_list(locale_info, headend_id, **kwargs)
async
¶
Get stump channel list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
locale_info
|
str
|
Locale string (format: "en-US") |
required |
headend_id
|
str
|
Headend id |
required |
Returns:
| Type | Description |
|---|---|
CqsChannelListResponse
|
class: |
Source code in src/pythonxbox/api/provider/cqs/__init__.py
get_schedule(locale_info, headend_id, start_date, duration_minutes, channel_skip, channel_count, **kwargs)
async
¶
Get stump epg data
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
locale_info
|
str
|
Locale string (format: "en-US") |
required |
headend_id
|
str
|
Headend id |
required |
start_date
|
str
|
Start date (format: 2016-07-11T21:50:00.000Z) |
required |
duration_minutes
|
int
|
Schedule duration to download |
required |
channel_skip
|
int
|
Count of channels to skip |
required |
channel_count
|
int
|
Count of channels to get data for |
required |
Returns:
| Type | Description |
|---|---|
CqsScheduleResponse
|
class: |
Source code in src/pythonxbox/api/provider/cqs/__init__.py
pythonxbox.api.provider.cqs.models.Image
¶
pythonxbox.api.provider.cqs.models.ListChannel
¶
pythonxbox.api.provider.cqs.models.CqsChannelListResponse
¶
Bases: PascalCaseModel
channels
instance-attribute
¶
pythonxbox.api.provider.cqs.models.ParentSeries
¶
pythonxbox.api.provider.cqs.models.Program
¶
Bases: PascalCaseModel
id
instance-attribute
¶
media_item_type
instance-attribute
¶
start_date
instance-attribute
¶
end_date
instance-attribute
¶
name
instance-attribute
¶
is_repeat
instance-attribute
¶
parental_control = None
class-attribute
instance-attribute
¶
genres
instance-attribute
¶
category_id
instance-attribute
¶
description = None
class-attribute
instance-attribute
¶
parent_series = None
class-attribute
instance-attribute
¶
images = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.cqs.models.ScheduleChannel
¶
Gameclips - Get gameclip info
pythonxbox.api.provider.gameclips.GameclipProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
GAMECLIPS_METADATA_URL = 'https://gameclipsmetadata.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_GAMECLIPS_METADATA = {'x-xbl-contract-version': '1'}
class-attribute
instance-attribute
¶
get_recent_community_clips_by_title_id(title_id, **kwargs)
async
¶
Get recent community clips by Title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str
|
Title Id to get clips for |
required |
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
get_recent_own_clips(title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get own recent clips, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str | None
|
Title ID to filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
get_recent_clips_by_xuid(xuid, title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get clips by XUID, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID of user to get clips from |
required |
title_id
|
str | None
|
Optional title id filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
get_saved_community_clips_by_title_id(title_id, **kwargs)
async
¶
Get saved community clips by Title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str
|
Title Id to get screenshots for |
required |
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
get_saved_own_clips(title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get own saved clips, optionally filter for title Id an
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str | None
|
Optional Title ID to filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
get_saved_clips_by_xuid(xuid, title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get saved clips by XUID, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID of user to get screenshots from |
required |
title_id
|
str | None
|
Optional title id filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
GameclipsResponse
|
class: |
Source code in src/pythonxbox/api/provider/gameclips/__init__.py
pythonxbox.api.provider.gameclips.models.Thumbnail
¶
pythonxbox.api.provider.gameclips.models.GameClipUri
¶
pythonxbox.api.provider.gameclips.models.GameClip
¶
Bases: CamelCaseModel
game_clip_id
instance-attribute
¶
state
instance-attribute
¶
date_published
instance-attribute
¶
date_recorded
instance-attribute
¶
last_modified
instance-attribute
¶
user_caption
instance-attribute
¶
type
instance-attribute
¶
duration_in_seconds
instance-attribute
¶
scid
instance-attribute
¶
title_id
instance-attribute
¶
rating
instance-attribute
¶
rating_count
instance-attribute
¶
views
instance-attribute
¶
title_data
instance-attribute
¶
system_properties
instance-attribute
¶
saved_by_user
instance-attribute
¶
achievement_id
instance-attribute
¶
greatest_moment_id
instance-attribute
¶
thumbnails
instance-attribute
¶
game_clip_uris
instance-attribute
¶
xuid
instance-attribute
¶
clip_name
instance-attribute
¶
title_name
instance-attribute
¶
game_clip_locale
instance-attribute
¶
clip_content_attributes
instance-attribute
¶
device_type
instance-attribute
¶
comment_count
instance-attribute
¶
like_count
instance-attribute
¶
share_count
instance-attribute
¶
partial_views
instance-attribute
¶
EPLists - Mainly used for XBL Pins
pythonxbox.api.provider.lists.ListsProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
LISTS_URL = 'https://eplists.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_LISTS = {'Content-Type': 'application/json', 'x-xbl-contract-version': '2'}
class-attribute
instance-attribute
¶
SEPERATOR = '.'
class-attribute
instance-attribute
¶
remove_items(xuid, post_body, listname='XBLPins', **kwargs)
async
¶
Remove items from specific list, defaults to "XBLPins"
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str / int
|
Xbox User Id |
required |
listname
|
str
|
Name of list to edit |
'XBLPins'
|
Returns:
| Type | Description |
|---|---|
ListMetadata
|
class: |
Source code in src/pythonxbox/api/provider/lists/__init__.py
get_items(xuid, listname='XBLPins', **kwargs)
async
¶
Get items from specific list, defaults to "XBLPins"
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str / int
|
Xbox User Id |
required |
listname
|
str
|
Name of list to edit |
'XBLPins'
|
Returns:
| Type | Description |
|---|---|
ListsResponse
|
class: |
Source code in src/pythonxbox/api/provider/lists/__init__.py
insert_items(xuid, post_body, listname='XBLPins', **kwargs)
async
¶
Insert items to specific list, defaults to "XBLPins"
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str / int
|
Xbox User Id |
required |
listname
|
str
|
Name of list to edit |
'XBLPins'
|
Returns:
| Type | Description |
|---|---|
ListMetadata
|
class: |
Source code in src/pythonxbox/api/provider/lists/__init__.py
Mediahub - Fetch screenshots and gameclips
pythonxbox.api.provider.mediahub.MediahubProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
MEDIAHUB_URL = 'https://mediahub.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS = {'x-xbl-contract-version': '3'}
class-attribute
instance-attribute
¶
fetch_own_clips(skip=0, count=500, **kwargs)
async
¶
Fetch own clips
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
skip
|
int
|
Number of items to skip |
0
|
count
|
int
|
Max entries to fetch |
500
|
Returns:
| Type | Description |
|---|---|
MediahubGameclips
|
class: |
Source code in src/pythonxbox/api/provider/mediahub/__init__.py
fetch_own_screenshots(skip=0, count=500, **kwargs)
async
¶
Fetch own screenshots
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
skip
|
int
|
Number of items to skip |
0
|
count
|
int
|
Max entries to fetch |
500
|
Returns:
| Type | Description |
|---|---|
MediahubScreenshots
|
class: |
Source code in src/pythonxbox/api/provider/mediahub/__init__.py
pythonxbox.api.provider.mediahub.models.ContentSegment
¶
Bases: CamelCaseModel
segment_id
instance-attribute
¶
creation_type
instance-attribute
¶
creator_channel_id = None
class-attribute
instance-attribute
¶
creator_xuid
instance-attribute
¶
record_date
instance-attribute
¶
duration_in_seconds
instance-attribute
¶
offset
instance-attribute
¶
secondary_title_id = None
class-attribute
instance-attribute
¶
title_id
instance-attribute
¶
pythonxbox.api.provider.mediahub.models.ContentLocator
¶
pythonxbox.api.provider.mediahub.models.GameclipContent
¶
Bases: CamelCaseModel
content_id
instance-attribute
¶
content_locators
instance-attribute
¶
content_segments
instance-attribute
¶
creation_type
instance-attribute
¶
duration_in_seconds
instance-attribute
¶
local_id
instance-attribute
¶
owner_xuid
instance-attribute
¶
sandbox_id
instance-attribute
¶
shared_to
instance-attribute
¶
title_id
instance-attribute
¶
title_name
instance-attribute
¶
upload_date
instance-attribute
¶
upload_language
instance-attribute
¶
upload_region
instance-attribute
¶
upload_title_id
instance-attribute
¶
upload_device_type
instance-attribute
¶
comment_count
instance-attribute
¶
like_count
instance-attribute
¶
share_count
instance-attribute
¶
view_count
instance-attribute
¶
content_state
instance-attribute
¶
enforcement_state
instance-attribute
¶
sessions
instance-attribute
¶
tournaments
instance-attribute
¶
pythonxbox.api.provider.mediahub.models.MediahubGameclips
¶
Bases: CamelCaseModel
values
instance-attribute
¶
pythonxbox.api.provider.mediahub.models.ScreenshotContent
¶
Bases: CamelCaseModel
content_id
instance-attribute
¶
capture_date
instance-attribute
¶
content_locators
instance-attribute
¶
local_id
instance-attribute
¶
owner_xuid
instance-attribute
¶
resolution_height
instance-attribute
¶
resolution_width
instance-attribute
¶
date_uploaded
instance-attribute
¶
sandbox_id
instance-attribute
¶
shared_to
instance-attribute
¶
title_id
instance-attribute
¶
title_name
instance-attribute
¶
upload_language
instance-attribute
¶
upload_region
instance-attribute
¶
upload_title_id
instance-attribute
¶
upload_device_type
instance-attribute
¶
comment_count
instance-attribute
¶
like_count
instance-attribute
¶
share_count
instance-attribute
¶
view_count
instance-attribute
¶
content_state
instance-attribute
¶
enforcement_state
instance-attribute
¶
sessions
instance-attribute
¶
tournaments
instance-attribute
¶
Message - Read and send messages
TODO: Support group messaging
pythonxbox.api.provider.message.MESSAGE_MAX_LEN = 256
module-attribute
¶
pythonxbox.api.provider.message.MessageProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
MSG_URL = 'https://xblmessaging.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_MESSAGE = {'x-xbl-contract-version': '1'}
class-attribute
instance-attribute
¶
HEADERS_HORIZON = {'x-xbl-contract-version': '2'}
class-attribute
instance-attribute
¶
get_inbox(max_items=100, **kwargs)
async
¶
Get messages
Returns:
| Type | Description |
|---|---|
InboxResponse
|
class: |
Source code in src/pythonxbox/api/provider/message/__init__.py
get_conversation(xuid, max_items=100, **kwargs)
async
¶
Get detailed conversation info
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
Xuid of user having a conversation with |
required |
Returns:
| Type | Description |
|---|---|
ConversationResponse
|
class: |
Source code in src/pythonxbox/api/provider/message/__init__.py
delete_conversation(conversation_id, horizon, **kwargs)
async
¶
Delete message
NOTE: Returns HTTP Status Code 200 on success
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conversation_id
|
str
|
Message Id |
required |
horizon
|
str
|
Delete horizon from get conversation response |
required |
Returns: True on success, False otherwise
Source code in src/pythonxbox/api/provider/message/__init__.py
delete_message(conversation_id, message_id, **kwargs)
async
¶
Delete message
NOTE: Returns HTTP Status Code 200 on success
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conversation_id
|
str
|
Conversation Id |
required |
message_id
|
str
|
Message Id |
required |
Returns: True on success, False otherwise
Source code in src/pythonxbox/api/provider/message/__init__.py
send_message(xuid, message_text, **kwargs)
async
¶
Send message to an xuid
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
Xuid |
required |
message_text
|
str
|
Message text |
required |
Returns:
| Type | Description |
|---|---|
SendMessageResponse
|
class: |
Source code in src/pythonxbox/api/provider/message/__init__.py
pythonxbox.api.provider.message.models.Part
¶
pythonxbox.api.provider.message.models.ContentPayload
¶
Bases: CamelCaseModel
content
instance-attribute
¶
pythonxbox.api.provider.message.models.Message
¶
Bases: CamelCaseModel
content_payload = None
class-attribute
instance-attribute
¶
timestamp
instance-attribute
¶
last_update_timestamp
instance-attribute
¶
type
instance-attribute
¶
network_id
instance-attribute
¶
conversation_type
instance-attribute
¶
conversation_id
instance-attribute
¶
owner = None
class-attribute
instance-attribute
¶
sender
instance-attribute
¶
message_id
instance-attribute
¶
is_deleted
instance-attribute
¶
is_server_updated
instance-attribute
¶
pythonxbox.api.provider.message.models.Conversation
¶
Bases: CamelCaseModel
timestamp
instance-attribute
¶
network_id
instance-attribute
¶
type
instance-attribute
¶
conversation_id
instance-attribute
¶
voice_id
instance-attribute
¶
participants
instance-attribute
¶
read_horizon
instance-attribute
¶
delete_horizon
instance-attribute
¶
is_read
instance-attribute
¶
muted
instance-attribute
¶
folder
instance-attribute
¶
last_message
instance-attribute
¶
pythonxbox.api.provider.message.models.Primary
¶
pythonxbox.api.provider.message.models.SafetySettings
¶
Bases: CamelCaseModel
version
instance-attribute
¶
primary_inbox_media
instance-attribute
¶
primary_inbox_text
instance-attribute
¶
primary_inbox_url
instance-attribute
¶
secondary_inbox_media
instance-attribute
¶
secondary_inbox_text
instance-attribute
¶
secondary_inbox_url
instance-attribute
¶
can_unobscure
instance-attribute
¶
pythonxbox.api.provider.message.models.InboxResponse
¶
pythonxbox.api.provider.message.models.ConversationResponse
¶
Bases: CamelCaseModel
timestamp
instance-attribute
¶
network_id
instance-attribute
¶
type
instance-attribute
¶
conversation_id
instance-attribute
¶
participants = None
class-attribute
instance-attribute
¶
read_horizon
instance-attribute
¶
delete_horizon
instance-attribute
¶
is_read
instance-attribute
¶
muted
instance-attribute
¶
folder
instance-attribute
¶
messages = None
class-attribute
instance-attribute
¶
continuation_token = None
class-attribute
instance-attribute
¶
voice_id
instance-attribute
¶
voice_roster = None
class-attribute
instance-attribute
¶
People - Access friendlist from own profiles and others
pythonxbox.api.provider.people.PeopleProvider(client)
¶
Bases: RateLimitedProvider
Initialize Baseclass, set 'Accept-Language' header from client instance
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client (
|
class: |
required |
Source code in src/pythonxbox/api/provider/people/__init__.py
SOCIAL_URL = 'https://social.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_SOCIAL = {'x-xbl-contract-version': '2'}
class-attribute
instance-attribute
¶
PEOPLE_URL = 'https://peoplehub.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_PEOPLE = {'x-xbl-contract-version': '7', 'Accept-Language': 'overwrite in __init__'}
class-attribute
instance-attribute
¶
SEPERATOR = ','
class-attribute
instance-attribute
¶
RATE_LIMITS = {'burst': 10, 'sustain': 30}
class-attribute
instance-attribute
¶
client
instance-attribute
¶
get_friends_own(decoration_fields=None, **kwargs)
async
¶
Get friendlist of own profile
Returns:
| Type | Description |
|---|---|
PeopleResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friends_by_xuid(xuid, decoration_fields=None, **kwargs)
async
¶
Get friendlist of own profile
Returns:
| Type | Description |
|---|---|
PeopleResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friends_own_batch(xuids, decoration_fields=None, **kwargs)
async
¶
Get friends metadata by providing a list of XUIDs
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuids
|
list[str]
|
List of XUIDs |
required |
Returns:
| Type | Description |
|---|---|
PeopleResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friend_recommendations(decoration_fields=None, **kwargs)
async
¶
Get recommended friends
Returns:
| Type | Description |
|---|---|
PeopleResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friends_summary_own(**kwargs)
async
¶
Get friendlist summary of own profile
Returns:
| Type | Description |
|---|---|
PeopleSummaryResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friends_summary_by_xuid(xuid, **kwargs)
async
¶
Get friendlist summary of user by xuid
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID to request summary from |
required |
Returns:
| Type | Description |
|---|---|
PeopleSummaryResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
get_friends_summary_by_gamertag(gamertag, **kwargs)
async
¶
Get friendlist summary of user by gamertag
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gamertag
|
str
|
Gamertag to request friendlist from |
required |
Returns:
| Type | Description |
|---|---|
PeopleSummaryResponse
|
class: |
Source code in src/pythonxbox/api/provider/people/__init__.py
pythonxbox.api.provider.people.models.PeopleDecoration
¶
Bases: StrEnum
SUGGESTION = 'suggestion'
class-attribute
instance-attribute
¶
RECENT_PLAYER = 'recentPlayer'
class-attribute
instance-attribute
¶
FOLLOWER = 'follower'
class-attribute
instance-attribute
¶
PREFERRED_COLOR = 'preferredColor'
class-attribute
instance-attribute
¶
DETAIL = 'detail'
class-attribute
instance-attribute
¶
MULTIPLAYER_SUMMARY = 'multiplayerSummary'
class-attribute
instance-attribute
¶
PRESENCE_DETAIL = 'presenceDetail'
class-attribute
instance-attribute
¶
TITLE_PRESENCE = 'titlePresence'
class-attribute
instance-attribute
¶
TITLE_SUMMARY = 'titleSummary'
class-attribute
instance-attribute
¶
PRESENCE_TITLE_IDS = 'presenceTitleIds'
class-attribute
instance-attribute
¶
COMMUNITY_MANAGER_TITLES = 'communityManagerTitles'
class-attribute
instance-attribute
¶
SOCIAL_MANAGER = 'socialManager'
class-attribute
instance-attribute
¶
BROADCAST = 'broadcast'
class-attribute
instance-attribute
¶
TOURNAMENT_SUMMARY = 'tournamentSummary'
class-attribute
instance-attribute
¶
AVATAR = 'avatar'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.people.models.PeopleSummaryResponse
¶
Bases: CamelCaseModel
target_following_count
instance-attribute
¶
target_follower_count
instance-attribute
¶
is_caller_following_target
instance-attribute
¶
is_target_following_caller
instance-attribute
¶
has_caller_marked_target_as_favorite
instance-attribute
¶
has_caller_marked_target_as_identity_shared
instance-attribute
¶
legacy_friend_status
instance-attribute
¶
available_people_slots = None
class-attribute
instance-attribute
¶
recent_change_count = None
class-attribute
instance-attribute
¶
watermark = None
class-attribute
instance-attribute
¶
is_friend
instance-attribute
¶
pythonxbox.api.provider.people.models.Suggestion
¶
pythonxbox.api.provider.people.models.Recommendation
¶
pythonxbox.api.provider.people.models.SessionRef
¶
pythonxbox.api.provider.people.models.PartyDetails
¶
pythonxbox.api.provider.people.models.MultiplayerSummary
¶
pythonxbox.api.provider.people.models.RecentPlayer
¶
pythonxbox.api.provider.people.models.Follower
¶
pythonxbox.api.provider.people.models.PreferredColor
¶
pythonxbox.api.provider.people.models.PresenceDetail
¶
Bases: PascalCaseModel
is_broadcasting
instance-attribute
¶
device
instance-attribute
¶
device_sub_type = None
class-attribute
instance-attribute
¶
gameplay_type = None
class-attribute
instance-attribute
¶
presence_text
instance-attribute
¶
state
instance-attribute
¶
title_id
instance-attribute
¶
title_type = None
class-attribute
instance-attribute
¶
is_primary
instance-attribute
¶
is_game
instance-attribute
¶
rich_presence_text = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.people.models.TitlePresence
¶
pythonxbox.api.provider.people.models.Detail
¶
Bases: CamelCaseModel
account_tier
instance-attribute
¶
bio = None
class-attribute
instance-attribute
¶
is_verified
instance-attribute
¶
location = None
class-attribute
instance-attribute
¶
tenure = None
class-attribute
instance-attribute
¶
watermarks
instance-attribute
¶
blocked
instance-attribute
¶
mute
instance-attribute
¶
follower_count
instance-attribute
¶
following_count
instance-attribute
¶
has_game_pass
instance-attribute
¶
can_be_friended
instance-attribute
¶
can_be_followed
instance-attribute
¶
is_friend
instance-attribute
¶
friend_count
instance-attribute
¶
is_friend_request_received
instance-attribute
¶
is_friend_request_sent
instance-attribute
¶
is_friend_list_shared
instance-attribute
¶
is_following_caller
instance-attribute
¶
is_followed_by_caller
instance-attribute
¶
is_favorite
instance-attribute
¶
pythonxbox.api.provider.people.models.SocialManager
¶
pythonxbox.api.provider.people.models.Avatar
¶
pythonxbox.api.provider.people.models.LinkedAccount
¶
pythonxbox.api.provider.people.models.Person
¶
Bases: CamelCaseModel
xuid
instance-attribute
¶
is_favorite
instance-attribute
¶
is_following_caller
instance-attribute
¶
is_followed_by_caller
instance-attribute
¶
is_identity_shared
instance-attribute
¶
added_date_time_utc = None
class-attribute
instance-attribute
¶
display_name = None
class-attribute
instance-attribute
¶
real_name
instance-attribute
¶
display_pic_raw
instance-attribute
¶
show_user_as_avatar
instance-attribute
¶
gamertag
instance-attribute
¶
gamer_score
instance-attribute
¶
modern_gamertag
instance-attribute
¶
modern_gamertag_suffix
instance-attribute
¶
unique_modern_gamertag
instance-attribute
¶
xbox_one_rep
instance-attribute
¶
presence_state
instance-attribute
¶
presence_text
instance-attribute
¶
presence_devices = None
class-attribute
instance-attribute
¶
is_broadcasting
instance-attribute
¶
is_cloaked = None
class-attribute
instance-attribute
¶
is_quarantined
instance-attribute
¶
is_xbox_360_gamerpic
instance-attribute
¶
last_seen_date_time_utc = None
class-attribute
instance-attribute
¶
suggestion = None
class-attribute
instance-attribute
¶
recommendation = None
class-attribute
instance-attribute
¶
search = None
class-attribute
instance-attribute
¶
titleHistory = None
class-attribute
instance-attribute
¶
multiplayer_summary = None
class-attribute
instance-attribute
¶
recent_player = None
class-attribute
instance-attribute
¶
follower = None
class-attribute
instance-attribute
¶
preferred_color = None
class-attribute
instance-attribute
¶
presence_details = None
class-attribute
instance-attribute
¶
title_presence = None
class-attribute
instance-attribute
¶
title_summaries = None
class-attribute
instance-attribute
¶
presence_title_ids = None
class-attribute
instance-attribute
¶
detail = None
class-attribute
instance-attribute
¶
community_manager_titles = None
class-attribute
instance-attribute
¶
social_manager = None
class-attribute
instance-attribute
¶
broadcast = None
class-attribute
instance-attribute
¶
tournament_summary = None
class-attribute
instance-attribute
¶
avatar = None
class-attribute
instance-attribute
¶
linked_accounts = None
class-attribute
instance-attribute
¶
color_theme
instance-attribute
¶
preferred_flag
instance-attribute
¶
preferred_platforms
instance-attribute
¶
friended_date_time_utc = None
class-attribute
instance-attribute
¶
is_friend
instance-attribute
¶
is_friend_request_received
instance-attribute
¶
is_friend_request_sent
instance-attribute
¶
pythonxbox.api.provider.people.models.RecommendationSummary
¶
Bases: CamelCaseModel
friend_of_friend = None
class-attribute
instance-attribute
¶
facebook_friend = None
class-attribute
instance-attribute
¶
phone_contact = None
class-attribute
instance-attribute
¶
follower = None
class-attribute
instance-attribute
¶
VIP = None
class-attribute
instance-attribute
¶
steam_friend
instance-attribute
¶
promote_suggestions
instance-attribute
¶
community_suggestion
instance-attribute
¶
pythonxbox.api.provider.people.models.FriendFinderState
¶
Bases: CamelCaseModel
facebook_opt_in_status
instance-attribute
¶
facebook_token_status
instance-attribute
¶
phone_opt_in_status
instance-attribute
¶
phone_token_status
instance-attribute
¶
steam_opt_in_status
instance-attribute
¶
steam_token_status
instance-attribute
¶
discord_opt_in_status
instance-attribute
¶
discord_token_status
instance-attribute
¶
instagram_opt_in_status
instance-attribute
¶
instagram_token_status
instance-attribute
¶
mixer_opt_in_status
instance-attribute
¶
mixer_token_status
instance-attribute
¶
reddit_opt_in_status
instance-attribute
¶
reddit_token_status
instance-attribute
¶
twitch_opt_in_status
instance-attribute
¶
twitch_token_status
instance-attribute
¶
twitter_opt_in_status
instance-attribute
¶
twitter_token_status
instance-attribute
¶
you_tube_opt_in_status
instance-attribute
¶
you_tube_token_status
instance-attribute
¶
pythonxbox.api.provider.people.models.FriendRequestSummary
¶
Bases: CamelCaseModel
friend_requests_received_count
instance-attribute
¶
pythonxbox.api.provider.people.models.PeopleResponse
¶
Bases: CamelCaseModel
Presence - Get online status of friends
pythonxbox.api.provider.presence.PresenceProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
PRESENCE_URL = 'https://userpresence.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_PRESENCE = {'x-xbl-contract-version': '3', 'Accept': 'application/json'}
class-attribute
instance-attribute
¶
get_presence(xuid, presence_level=PresenceLevel.USER, **kwargs)
async
¶
Get presence for given xuid
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID |
required |
presence_level
|
PresenceLevel
|
Filter level |
USER
|
Returns:
| Type | Description |
|---|---|
PresenceItem
|
class: |
Source code in src/pythonxbox/api/provider/presence/__init__.py
get_presence_batch(xuids, online_only=False, presence_level=PresenceLevel.USER, **kwargs)
async
¶
Get presence for list of xuids
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuids
|
list[str]
|
List of XUIDs |
required |
online_only
|
bool
|
Only get online profiles |
False
|
presence_level
|
PresenceLevel
|
Filter level |
USER
|
Returns: List[:class:PresenceItem]: List of presence items
Source code in src/pythonxbox/api/provider/presence/__init__.py
get_presence_own(presence_level=PresenceLevel.ALL, **kwargs)
async
¶
Get presence of own profile
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
presence_level
|
PresenceLevel
|
Filter level |
ALL
|
Returns:
| Type | Description |
|---|---|
PresenceItem
|
class: |
Source code in src/pythonxbox/api/provider/presence/__init__.py
set_presence_own(presence_state, **kwargs)
async
¶
Set presence of own profile
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
presence_state
|
PresenceState
|
State of presence |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Source code in src/pythonxbox/api/provider/presence/__init__.py
pythonxbox.api.provider.presence.models.PresenceLevel
¶
pythonxbox.api.provider.presence.models.PresenceState
¶
pythonxbox.api.provider.presence.models.LastSeen
¶
pythonxbox.api.provider.presence.models.ActivityRecord
¶
pythonxbox.api.provider.presence.models.TitleRecord
¶
Bases: CamelCaseModel
id = None
class-attribute
instance-attribute
¶
name = None
class-attribute
instance-attribute
¶
activity = None
class-attribute
instance-attribute
¶
lastModified = None
class-attribute
instance-attribute
¶
placement = None
class-attribute
instance-attribute
¶
state = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.presence.models.DeviceRecord
¶
pythonxbox.api.provider.presence.models.PresenceItem
¶
pythonxbox.api.provider.presence.models.PresenceBatchResponse
¶
Bases: RootModel[list[PresenceItem]], CamelCaseModel
root
instance-attribute
¶
Profile
Get Userprofiles by XUID or Gamertag
pythonxbox.api.provider.profile.ProfileProvider(client)
¶
Bases: RateLimitedProvider
Source code in src/pythonxbox/api/provider/ratelimitedprovider.py
PROFILE_URL = 'https://profile.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_PROFILE = {'x-xbl-contract-version': '3'}
class-attribute
instance-attribute
¶
SEPARATOR = ','
class-attribute
instance-attribute
¶
RATE_LIMITS = {'burst': 10, 'sustain': 30}
class-attribute
instance-attribute
¶
get_profiles(xuid_list, **kwargs)
async
¶
Get profile info for list of xuids
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid_list
|
list
|
List of xuids |
required |
Returns:
| Type | Description |
|---|---|
ProfileResponse
|
class: |
Source code in src/pythonxbox/api/provider/profile/__init__.py
get_profile_by_xuid(target_xuid, **kwargs)
async
¶
Get Userprofile by xuid
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_xuid
|
str
|
XUID to get profile for |
required |
Returns:
| Type | Description |
|---|---|
ProfileResponse
|
class: |
Source code in src/pythonxbox/api/provider/profile/__init__.py
get_profile_by_gamertag(gamertag, **kwargs)
async
¶
Get Userprofile by gamertag
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gamertag
|
str
|
Gamertag to get profile for |
required |
Returns:
| Type | Description |
|---|---|
ProfileResponse
|
class: |
Source code in src/pythonxbox/api/provider/profile/__init__.py
pythonxbox.api.provider.profile.models.ProfileSettings
¶
Bases: StrEnum
Profile settings, used as parameter for Profile API
GAME_DISPLAY_NAME = 'GameDisplayName'
class-attribute
instance-attribute
¶
APP_DISPLAY_NAME = 'AppDisplayName'
class-attribute
instance-attribute
¶
APP_DISPLAYPIC_RAW = 'AppDisplayPicRaw'
class-attribute
instance-attribute
¶
GAME_DISPLAYPIC_RAW = 'GameDisplayPicRaw'
class-attribute
instance-attribute
¶
PUBLIC_GAMERPIC = 'PublicGamerpic'
class-attribute
instance-attribute
¶
SHOW_USER_AS_AVATAR = 'ShowUserAsAvatar'
class-attribute
instance-attribute
¶
GAMERSCORE = 'Gamerscore'
class-attribute
instance-attribute
¶
GAMERTAG = 'Gamertag'
class-attribute
instance-attribute
¶
MODERN_GAMERTAG = 'ModernGamertag'
class-attribute
instance-attribute
¶
MODERN_GAMERTAG_SUFFIX = 'ModernGamertagSuffix'
class-attribute
instance-attribute
¶
UNIQUE_MODERN_GAMERTAG = 'UniqueModernGamertag'
class-attribute
instance-attribute
¶
ACCOUNT_TIER = 'AccountTier'
class-attribute
instance-attribute
¶
TENURE_LEVEL = 'TenureLevel'
class-attribute
instance-attribute
¶
XBOX_ONE_REP = 'XboxOneRep'
class-attribute
instance-attribute
¶
PREFERRED_COLOR = 'PreferredColor'
class-attribute
instance-attribute
¶
LOCATION = 'Location'
class-attribute
instance-attribute
¶
BIOGRAPHY = 'Bio'
class-attribute
instance-attribute
¶
WATERMARKS = 'Watermarks'
class-attribute
instance-attribute
¶
REAL_NAME = 'RealName'
class-attribute
instance-attribute
¶
REAL_NAME_OVERRIDE = 'RealNameOverride'
class-attribute
instance-attribute
¶
IS_QUARANTINED = 'IsQuarantined'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.profile.models.Setting
¶
pythonxbox.api.provider.profile.models.ProfileUser
¶
Screenshots - Get screenshot info
pythonxbox.api.provider.screenshots.ScreenshotsProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
SCREENSHOTS_METADATA_URL = 'https://screenshotsmetadata.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_SCREENSHOTS_METADATA = {'x-xbl-contract-version': '5'}
class-attribute
instance-attribute
¶
get_recent_community_screenshots_by_title_id(title_id, **kwargs)
async
¶
Get recent community screenshots by Title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str
|
Title Id to get screenshots for |
required |
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
get_recent_own_screenshots(title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get own recent screenshots, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str | None
|
Title ID to filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
get_recent_screenshots_by_xuid(xuid, title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get recent screenshots by XUID, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID of user to get screenshots from |
required |
title_id
|
str | None
|
Optional title id filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
get_saved_community_screenshots_by_title_id(title_id, **kwargs)
async
¶
Get saved community screenshots by Title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str
|
Title Id to get screenshots for |
required |
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
get_saved_own_screenshots(title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get own saved screenshots, optionally filter for title Id an
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str | None
|
Optional Title ID to filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
get_saved_screenshots_by_xuid(xuid, title_id=None, skip_items=0, max_items=25, **kwargs)
async
¶
Get saved screenshots by XUID, optionally filter for title Id
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
XUID of user to get screenshots from |
required |
title_id
|
str | None
|
Optional title id filter |
None
|
skip_items
|
int
|
Item count to skip |
0
|
max_items
|
int
|
Maximum item count to load |
25
|
Returns:
| Type | Description |
|---|---|
ScreenshotResponse
|
class: |
Source code in src/pythonxbox/api/provider/screenshots/__init__.py
pythonxbox.api.provider.screenshots.models.Thumbnail
¶
pythonxbox.api.provider.screenshots.models.ScreenshotUri
¶
pythonxbox.api.provider.screenshots.models.Screenshot
¶
Bases: CamelCaseModel
screenshot_id
instance-attribute
¶
resolution_height
instance-attribute
¶
resolution_width
instance-attribute
¶
state
instance-attribute
¶
date_published
instance-attribute
¶
date_taken
instance-attribute
¶
last_modified
instance-attribute
¶
user_caption
instance-attribute
¶
type
instance-attribute
¶
scid
instance-attribute
¶
title_id
instance-attribute
¶
rating
instance-attribute
¶
rating_count
instance-attribute
¶
views
instance-attribute
¶
title_data
instance-attribute
¶
system_properties
instance-attribute
¶
saved_by_user
instance-attribute
¶
achievement_id
instance-attribute
¶
greatest_moment_id = None
class-attribute
instance-attribute
¶
thumbnails
instance-attribute
¶
screenshot_uris
instance-attribute
¶
xuid
instance-attribute
¶
screenshot_name
instance-attribute
¶
title_name
instance-attribute
¶
screenshot_locale
instance-attribute
¶
screenshot_content_attributes
instance-attribute
¶
device_type
instance-attribute
¶
SmartGlass - Control Registered Devices
pythonxbox.api.provider.smartglass.SmartglassProvider(client)
¶
Bases: BaseProvider
Initialize Baseclass, create smartglass session id
Args: Instance of XBL client
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
SG_URL = 'https://xccs.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_SG = {'x-xbl-contract-version': '4', 'skillplatform': 'RemoteManagement'}
class-attribute
instance-attribute
¶
get_console_list(include_storage_devices=True, **kwargs)
async
¶
Get Console list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
include_storage_devices
|
bool
|
Include a list of storage devices in the response |
True
|
Returns: Console List
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
get_installed_apps(device_id=None, **kwargs)
async
¶
Get Installed Apps
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str | None
|
ID of console (from console list) |
None
|
Returns: Installed Apps
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
get_storage_devices(device_id, **kwargs)
async
¶
Get Installed Apps
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Storage Devices list
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
get_console_status(device_id, **kwargs)
async
¶
Get Console Status
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Console Status
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
get_op_status(device_id, op_id, **kwargs)
async
¶
Get Operation Status
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
op_id
|
str
|
Operation ID (from previous command) |
required |
Returns: Operation Status
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
wake_up(device_id, **kwargs)
async
¶
Wake Up Console
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
turn_off(device_id, **kwargs)
async
¶
Turn Off Console
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
reboot(device_id, **kwargs)
async
¶
Reboot Console
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
mute(device_id, **kwargs)
async
¶
Mute
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
unmute(device_id, **kwargs)
async
¶
Unmute
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
volume(device_id, direction, amount=1, **kwargs)
async
¶
Adjust Volume
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
play(device_id, **kwargs)
async
¶
Play (media controls)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
pause(device_id, **kwargs)
async
¶
Pause (media controls)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
previous(device_id, **kwargs)
async
¶
Previous (media controls)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
next(device_id, **kwargs)
async
¶
Next (media controls)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
go_home(device_id, **kwargs)
async
¶
Go Home
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
go_back(device_id, **kwargs)
async
¶
Go Back
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns:
| Type | Description |
|---|---|
CommandResponse
|
class: |
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
show_guide_tab(device_id, tab=GuideTab.Guide, **kwargs)
async
¶
Show Guide Tab
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
press_button(device_id, button, **kwargs)
async
¶
Press Button
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
insert_text(device_id, text, **kwargs)
async
¶
Insert Text
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
launch_app(device_id, one_store_product_id, **kwargs)
async
¶
Launch Application
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
device_id
|
str
|
ID of console (from console list) |
required |
one_store_product_id
|
str
|
OneStoreProductID for the app to launch |
required |
Returns: Command Response
Source code in src/pythonxbox/api/provider/smartglass/__init__.py
pythonxbox.api.provider.smartglass.models.ConsoleType
¶
Bases: StrEnum
XboxOne = 'XboxOne'
class-attribute
instance-attribute
¶
XboxOneS = 'XboxOneS'
class-attribute
instance-attribute
¶
XboxOneSDigital = 'XboxOneSDigital'
class-attribute
instance-attribute
¶
XboxOneX = 'XboxOneX'
class-attribute
instance-attribute
¶
XboxSeriesS = 'XboxSeriesS'
class-attribute
instance-attribute
¶
XboxSeriesX = 'XboxSeriesX'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.PlaybackState
¶
pythonxbox.api.provider.smartglass.models.ErrorCode
¶
Bases: StrEnum
OK = 'OK'
class-attribute
instance-attribute
¶
CurrentConsoleNotFound = 'CurrentConsoleNotFound'
class-attribute
instance-attribute
¶
RemoteManagementDisabled = 'RemoteManagementDisabled'
class-attribute
instance-attribute
¶
XboxDataNotFound = 'XboxDataNotFound'
class-attribute
instance-attribute
¶
XboxNotPaired = 'XboxNotPaired'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.OpStatus
¶
Bases: StrEnum
Paused = 'Paused'
class-attribute
instance-attribute
¶
OffConsoleError = 'OffConsoleError'
class-attribute
instance-attribute
¶
Pending = 'Pending'
class-attribute
instance-attribute
¶
TimedOut = 'TimedOut'
class-attribute
instance-attribute
¶
Error = 'Error'
class-attribute
instance-attribute
¶
Succeeded = 'Succeeded'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.SmartglassApiStatus
¶
pythonxbox.api.provider.smartglass.models.StorageDevice
¶
pythonxbox.api.provider.smartglass.models.SmartglassConsole
¶
Bases: CamelCaseModel
id
instance-attribute
¶
name
instance-attribute
¶
console_type
instance-attribute
¶
power_state
instance-attribute
¶
console_streaming_enabled
instance-attribute
¶
digital_assistant_remote_control_enabled
instance-attribute
¶
remote_management_enabled
instance-attribute
¶
storage_devices = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.SmartglassConsoleList
¶
pythonxbox.api.provider.smartglass.models.SmartglassConsoleStatus
¶
Bases: CamelCaseModel
console_streaming_enabled
instance-attribute
¶
digital_assistant_remote_control_enabled
instance-attribute
¶
remote_management_enabled
instance-attribute
¶
focus_app_aumid
instance-attribute
¶
is_tv_configured
instance-attribute
¶
login_state = None
class-attribute
instance-attribute
¶
playback_state
instance-attribute
¶
power_state
instance-attribute
¶
storage_devices = None
class-attribute
instance-attribute
¶
status
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.InstalledPackage
¶
Bases: CamelCaseModel
one_store_product_id = None
class-attribute
instance-attribute
¶
title_id
instance-attribute
¶
aumid = None
class-attribute
instance-attribute
¶
last_active_time = None
class-attribute
instance-attribute
¶
is_game
instance-attribute
¶
name = None
class-attribute
instance-attribute
¶
content_type
instance-attribute
¶
instance_id
instance-attribute
¶
storage_device_id
instance-attribute
¶
unique_id
instance-attribute
¶
legacy_product_id = None
class-attribute
instance-attribute
¶
version
instance-attribute
¶
size_in_bytes
instance-attribute
¶
install_time
instance-attribute
¶
update_time = None
class-attribute
instance-attribute
¶
parent_id = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.InstalledPackagesList
¶
pythonxbox.api.provider.smartglass.models.StorageDevicesList
¶
pythonxbox.api.provider.smartglass.models.OpStatusNode
¶
Bases: CamelCaseModel
operation_status
instance-attribute
¶
op_id
instance-attribute
¶
originating_session_id
instance-attribute
¶
command
instance-attribute
¶
succeeded
instance-attribute
¶
console_status_code = None
class-attribute
instance-attribute
¶
xccs_error_code = None
class-attribute
instance-attribute
¶
h_result = None
class-attribute
instance-attribute
¶
message = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.OperationStatusResponse
¶
pythonxbox.api.provider.smartglass.models.CommandDestination
¶
Bases: CamelCaseModel
id
instance-attribute
¶
name
instance-attribute
¶
power_state
instance-attribute
¶
remote_management_enabled
instance-attribute
¶
console_streaming_enabled
instance-attribute
¶
console_type
instance-attribute
¶
wireless_warning = None
class-attribute
instance-attribute
¶
out_of_home_warning = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.smartglass.models.CommandResponse
¶
pythonxbox.api.provider.smartglass.models.VolumeDirection
¶
pythonxbox.api.provider.smartglass.models.InputKeyType
¶
Bases: StrEnum
Guide = 'Guide'
class-attribute
instance-attribute
¶
Menu = 'Menu'
class-attribute
instance-attribute
¶
View = 'View'
class-attribute
instance-attribute
¶
A = 'A'
class-attribute
instance-attribute
¶
B = 'B'
class-attribute
instance-attribute
¶
X = 'X'
class-attribute
instance-attribute
¶
Y = 'Y'
class-attribute
instance-attribute
¶
Up = 'Up'
class-attribute
instance-attribute
¶
Down = 'Down'
class-attribute
instance-attribute
¶
Left = 'Left'
class-attribute
instance-attribute
¶
Right = 'Right'
class-attribute
instance-attribute
¶
Nexus = 'Nexus'
class-attribute
instance-attribute
¶
Titlehub - Get Title history and info
pythonxbox.api.provider.titlehub.TitlehubProvider(client)
¶
Bases: BaseProvider
Initialize Baseclass, set 'Accept-Language' header from client instance
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client (
|
class: |
required |
Source code in src/pythonxbox/api/provider/titlehub/__init__.py
TITLEHUB_URL = 'https://titlehub.xboxlive.com'
class-attribute
instance-attribute
¶
SEPARATOR = ','
class-attribute
instance-attribute
¶
get_title_history(xuid, fields=None, max_items=5, **kwargs)
async
¶
Get recently played titles
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
Xuid |
required |
fields
|
list[TitleFields] | None
|
List of titlefield |
None
|
max_items
|
int | None
|
Maximum items |
5
|
Returns:
| Type | Description |
|---|---|
TitleHubResponse
|
class: |
Source code in src/pythonxbox/api/provider/titlehub/__init__.py
get_title_info(title_id, fields=None, **kwargs)
async
¶
Get info for specific title
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title_id
|
str
|
Title Id |
required |
fields
|
list[TitleFields] | None
|
List of title fields |
None
|
Returns:
| Type | Description |
|---|---|
TitleHubResponse
|
class: |
Source code in src/pythonxbox/api/provider/titlehub/__init__.py
get_title_info_by_pfn(pfn, fields=None, **kwargs)
async
¶
Get info for specific title by PFN
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pfn
|
str
|
Package family name |
required |
fields
|
list[TitleFields] | None
|
List of title fields |
None
|
Returns:
| Type | Description |
|---|---|
TitleHubResponse
|
class: |
Source code in src/pythonxbox/api/provider/titlehub/__init__.py
get_titles_batch(pfns, fields=None, **kwargs)
async
¶
Get Title info via PFN ids
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pfns
|
list[str]
|
List of Package family names (e.g. 'Microsoft.XboxApp_8wekyb3d8bbwe') |
required |
fields
|
list[TitleFields] | None
|
List of title fields |
None
|
Returns:
| Type | Description |
|---|---|
TitleHubResponse
|
class: |
Source code in src/pythonxbox/api/provider/titlehub/__init__.py
pythonxbox.api.provider.titlehub.models.TitleFields
¶
Bases: StrEnum
SERVICE_CONFIG_ID = 'scid'
class-attribute
instance-attribute
¶
ACHIEVEMENT = 'achievement'
class-attribute
instance-attribute
¶
STATS = 'stats'
class-attribute
instance-attribute
¶
GAME_PASS = 'gamepass'
class-attribute
instance-attribute
¶
IMAGE = 'image'
class-attribute
instance-attribute
¶
DETAIL = 'detail'
class-attribute
instance-attribute
¶
FRIENDS_WHO_PLAYED = 'friendswhoplayed'
class-attribute
instance-attribute
¶
ALTERNATE_TITLE_ID = 'alternateTitleId'
class-attribute
instance-attribute
¶
PRODUCT_ID = 'productId'
class-attribute
instance-attribute
¶
CONTENT_BOARD = 'contentBoard'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.titlehub.models.Achievement
¶
pythonxbox.api.provider.titlehub.models.Stats
¶
Bases: CamelCaseModel
source_version
instance-attribute
¶
pythonxbox.api.provider.titlehub.models.GamePass
¶
Bases: CamelCaseModel
is_game_pass
instance-attribute
¶
pythonxbox.api.provider.titlehub.models.Image
¶
pythonxbox.api.provider.titlehub.models.TitleHistory
¶
pythonxbox.api.provider.titlehub.models.Attribute
¶
pythonxbox.api.provider.titlehub.models.Availability
¶
pythonxbox.api.provider.titlehub.models.Detail
¶
Bases: CamelCaseModel
attributes
instance-attribute
¶
availabilities
instance-attribute
¶
capabilities
instance-attribute
¶
description
instance-attribute
¶
developer_name = None
class-attribute
instance-attribute
¶
genres = None
class-attribute
instance-attribute
¶
publisher_name
instance-attribute
¶
min_age = None
class-attribute
instance-attribute
¶
release_date = None
class-attribute
instance-attribute
¶
short_description = None
class-attribute
instance-attribute
¶
vui_display_name = None
class-attribute
instance-attribute
¶
xbox_live_gold_required
instance-attribute
¶
pythonxbox.api.provider.titlehub.models.Title
¶
Bases: CamelCaseModel
title_id
instance-attribute
¶
pfn = None
class-attribute
instance-attribute
¶
bing_id = None
class-attribute
instance-attribute
¶
service_config_id = None
class-attribute
instance-attribute
¶
windows_phone_product_id = None
class-attribute
instance-attribute
¶
name
instance-attribute
¶
type
instance-attribute
¶
devices
instance-attribute
¶
display_image
instance-attribute
¶
media_item_type
instance-attribute
¶
modern_title_id = None
class-attribute
instance-attribute
¶
is_bundle
instance-attribute
¶
achievement = None
class-attribute
instance-attribute
¶
stats = None
class-attribute
instance-attribute
¶
game_pass = None
class-attribute
instance-attribute
¶
images = None
class-attribute
instance-attribute
¶
title_history = None
class-attribute
instance-attribute
¶
detail = None
class-attribute
instance-attribute
¶
friends_who_played = None
class-attribute
instance-attribute
¶
alternate_title_ids = None
class-attribute
instance-attribute
¶
content_boards = None
class-attribute
instance-attribute
¶
xbox_live_tier = None
class-attribute
instance-attribute
¶
is_streamable = None
class-attribute
instance-attribute
¶
Usersearch - Search for gamertags / userprofiles
pythonxbox.api.provider.usersearch.UserSearchProvider(client)
¶
Bases: BaseProvider
Source code in src/pythonxbox/api/provider/baseprovider.py
USERSEARCH_URL = 'https://usersearch.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_USER_SEARCH = {'x-xbl-contract-version': '1'}
class-attribute
instance-attribute
¶
get_live_search(query, **kwargs)
async
¶
Get userprofiles for search query
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
str
|
Search query |
required |
Returns:
| Type | Description |
|---|---|
UserSearchResponse
|
class: |
Source code in src/pythonxbox/api/provider/usersearch/__init__.py
Userstats - Get game statistics
pythonxbox.api.provider.userstats.UserStatsProvider(client)
¶
Bases: RateLimitedProvider
Source code in src/pythonxbox/api/provider/ratelimitedprovider.py
USERSTATS_URL = 'https://userstats.xboxlive.com'
class-attribute
instance-attribute
¶
HEADERS_USERSTATS = {'x-xbl-contract-version': '2'}
class-attribute
instance-attribute
¶
HEADERS_USERSTATS_WITH_METADATA = {'x-xbl-contract-version': '3'}
class-attribute
instance-attribute
¶
SEPERATOR = ','
class-attribute
instance-attribute
¶
RATE_LIMITS = {'burst': 100, 'sustain': 300}
class-attribute
instance-attribute
¶
get_stats(xuid, service_config_id, stats_fields=None, **kwargs)
async
¶
Get userstats
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
Xbox User Id |
required |
service_config_id
|
str
|
Service Config Id of Game (scid) |
required |
stats_fields
|
list[GeneralStatsField] | None
|
List of stats fields to acquire |
None
|
Returns:
| Type | Description |
|---|---|
UserStatsResponse
|
class: |
Source code in src/pythonxbox/api/provider/userstats/__init__.py
get_stats_with_metadata(xuid, service_config_id, stats_fields=None, **kwargs)
async
¶
Get userstats including metadata for each stat (if available)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuid
|
str
|
Xbox User Id |
required |
service_config_id
|
str
|
Service Config Id of Game (scid) |
required |
stats_fields
|
list[GeneralStatsField] | None
|
List of stats fields to acquire |
None
|
Returns:
| Type | Description |
|---|---|
UserStatsResponse
|
class: |
Source code in src/pythonxbox/api/provider/userstats/__init__.py
get_stats_batch(xuids, title_id, stats_fields=None, **kwargs)
async
¶
Get userstats in batch mode
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuids
|
list[str]
|
List of XUIDs to get stats for |
required |
title_id
|
str
|
Game Title Id |
required |
stats_fields
|
list[GeneralStatsField] | None
|
List of stats fields to acquire |
None
|
Returns:
| Type | Description |
|---|---|
UserStatsResponse
|
class: |
Source code in src/pythonxbox/api/provider/userstats/__init__.py
get_stats_batch_by_scid(xuids, service_config_id, stats_fields=None, **kwargs)
async
¶
Get userstats in batch mode, via scid
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xuids
|
list[str]
|
List of XUIDs to get stats for |
required |
service_config_id
|
str
|
Service Config Id of Game (scid) |
required |
stats_fields
|
list[GeneralStatsField] | None
|
List of stats fields to acquire |
None
|
Returns:
| Type | Description |
|---|---|
UserStatsResponse
|
class: |
Source code in src/pythonxbox/api/provider/userstats/__init__.py
pythonxbox.api.provider.userstats.models.GeneralStatsField
¶
MINUTES_PLAYED = 'MinutesPlayed'
class-attribute
instance-attribute
¶
pythonxbox.api.provider.userstats.models.GroupProperties
¶
Bases: PascalCaseModel
pythonxbox.api.provider.userstats.models.Properties
¶
Bases: PascalCaseModel
display_name = None
class-attribute
instance-attribute
¶
pythonxbox.api.provider.userstats.models.Stat
¶
pythonxbox.api.provider.userstats.models.StatListsCollectionItem
¶
pythonxbox.api.provider.userstats.models.Group
¶
RateLimitedProvider
Subclassed by providers with rate limit support
pythonxbox.api.provider.ratelimitedprovider.RateLimitedProvider(client)
¶
Bases: BaseProvider
Initialize Baseclass
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client (
|
class: |
required |
Source code in src/pythonxbox/api/provider/ratelimitedprovider.py
RATE_LIMITS
instance-attribute
¶
__handle_rate_limit_setup()
¶
Source code in src/pythonxbox/api/provider/ratelimitedprovider.py
__parse_rate_limit_key(key, period)
¶
Source code in src/pythonxbox/api/provider/ratelimitedprovider.py
Authentication Manager
Authenticate with Windows Live Server and Xbox Live.
pythonxbox.authentication.manager.log = logging.getLogger('authentication')
module-attribute
¶
pythonxbox.authentication.manager.DEFAULT_SCOPES = ['Xboxlive.signin', 'Xboxlive.offline_access']
module-attribute
¶
pythonxbox.authentication.manager.AuthenticationManager(client_session, client_id, client_secret, redirect_uri, scopes=None)
¶
Source code in src/pythonxbox/authentication/manager.py
oauth = None
class-attribute
instance-attribute
¶
user_token = None
class-attribute
instance-attribute
¶
xsts_token = None
class-attribute
instance-attribute
¶
session = client_session
instance-attribute
¶
generate_authorization_url(state=None)
¶
Generate Windows Live Authorization URL.
Source code in src/pythonxbox/authentication/manager.py
request_tokens(authorization_code)
async
¶
Request all tokens.
Source code in src/pythonxbox/authentication/manager.py
refresh_tokens()
async
¶
Refresh all tokens.
Source code in src/pythonxbox/authentication/manager.py
request_oauth_token(authorization_code)
async
¶
Request OAuth2 token.
Source code in src/pythonxbox/authentication/manager.py
refresh_oauth_token()
async
¶
Refresh OAuth2 token.
Source code in src/pythonxbox/authentication/manager.py
request_user_token(relying_party='http://auth.xboxlive.com', use_compact_ticket=False)
async
¶
Authenticate via access token and receive user token.
Source code in src/pythonxbox/authentication/manager.py
request_xsts_token(relying_party='http://xboxlive.com')
async
¶
Authorize via user token and receive final X token.
Source code in src/pythonxbox/authentication/manager.py
Xbox Authentication Library
Authenticate with Windows Live Server and Xbox Live (used by mobile Xbox Apps)
pythonxbox.authentication.xal.log = logging.getLogger('xal.authentication')
module-attribute
¶
pythonxbox.authentication.xal.APP_PARAMS_XBOX_BETA_APP = XalAppParameters(app_id='000000004415494b', title_id='177887386', redirect_uri='ms-xal-000000004415494b://auth')
module-attribute
¶
pythonxbox.authentication.xal.APP_PARAMS_XBOX_APP = XalAppParameters(app_id='000000004c12ae6f', title_id='328178078', redirect_uri='ms-xal-000000004c12ae6f://auth')
module-attribute
¶
pythonxbox.authentication.xal.APP_PARAMS_GAMEPASS = XalAppParameters(app_id='000000004c20a908', title_id='1016898439', redirect_uri='ms-xal-000000004c20a908://auth')
module-attribute
¶
pythonxbox.authentication.xal.APP_PARAMS_GAMEPASS_BETA = XalAppParameters(app_id='000000004c20a908', title_id='1016898439', redirect_uri='ms-xal-public-beta-000000004c20a908://auth')
module-attribute
¶
pythonxbox.authentication.xal.APP_PARAMS_FAMILY_SETTINGS = XalAppParameters(app_id='00000000482C8F49', title_id='1618633878', redirect_uri='https://login.live.com/oauth20_desktop.srf')
module-attribute
¶
pythonxbox.authentication.xal.CLIENT_PARAMS_IOS = XalClientParameters(user_agent='XAL iOS 2021.11.20211021.000', device_type='iOS', client_version='15.6.1', query_display='ios_phone')
module-attribute
¶
pythonxbox.authentication.xal.CLIENT_PARAMS_ANDROID = XalClientParameters(user_agent='XAL Android 2020.07.20200714.000', device_type='Android', client_version='8.0.0', query_display='android_phone')
module-attribute
¶
pythonxbox.authentication.xal.XALManager(session, device_id, app_params, client_params)
¶
Source code in src/pythonxbox/authentication/xal.py
session = session
instance-attribute
¶
device_id = device_id
instance-attribute
¶
app_params = app_params
instance-attribute
¶
client_params = client_params
instance-attribute
¶
cv = CorrelationVector()
instance-attribute
¶
get_title_endpoints(session)
async
staticmethod
¶
Source code in src/pythonxbox/authentication/xal.py
request_device_token()
async
¶
Source code in src/pythonxbox/authentication/xal.py
__oauth20_token_endpoint(json_body)
async
¶
Source code in src/pythonxbox/authentication/xal.py
exchange_code_for_token(authorization_code, code_verifier)
async
¶
Source code in src/pythonxbox/authentication/xal.py
refresh_token(refresh_token_jwt)
async
¶
Source code in src/pythonxbox/authentication/xal.py
request_sisu_authentication(device_token_jwt, code_challenge, state)
async
¶
Request Sisu authentication URL
Response holds authentication URL that needs to be called by the user in webbrowser
Returns:
| Type | Description |
|---|---|
tuple[SisuAuthenticationResponse, str]
|
Tuple of (authentication response, sisu session id) |
Source code in src/pythonxbox/authentication/xal.py
do_sisu_authorization(sisu_session_id, access_token_jwt, device_token_jwt)
async
¶
Sisu authorization
Returns:
| Type | Description |
|---|---|
SisuAuthorizationResponse
|
Response with device-/title-/user-tokens |
Source code in src/pythonxbox/authentication/xal.py
xsts_authorization(device_token_jwt, title_token_jwt, user_token_jwt, relying_party)
async
¶
Request additional XSTS tokens for specific relying parties
Source code in src/pythonxbox/authentication/xal.py
auth_flow(user_input_cb)
async
¶
Does the whole XAL/Sisu authentication flow
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_input_cb
|
Callable[[str], str]
|
User callback which takes args: (auth_url: str) and returns the redirect URL (str) |
required |
Returns:
| Type | Description |
|---|---|
SisuAuthorizationResponse
|
Sisu authorization response with all tokens |