Model API Reference

class sxm.models.QualitySize(value)[source]

An enumeration.

LARGE_256k = 'LARGE'
MEDIUM_128k = 'MEDIUM'
SMALL_64k = 'SMALL'
class sxm.models.RegionChoice(value)[source]

An enumeration.

CA = 'CA'
US = 'US'
class sxm.models.XMAlbum(*, title: str = None, arts: List[sxm.models.XMArt])[source]
arts: List[sxm.models.XMArt]
static from_dict(data: dict) sxm.models.XMAlbum[source]
title: Optional[str]
class sxm.models.XMArt(*, name: str = None, url: str, art_type: str)[source]
art_type: str
static from_dict(data: dict) sxm.models.XMArt[source]
name: Optional[str]
url: str
class sxm.models.XMArtist(*, name: str)[source]
static from_dict(data: dict) sxm.models.XMArtist[source]
name: str
class sxm.models.XMCategory(*, guid: str, name: str, key: str = None, order: int = None, short_name: str = None)[source]
static from_dict(data: dict) sxm.models.XMCategory[source]
guid: str
key: Optional[str]
name: str
order: Optional[int]
short_name: Optional[str]
class sxm.models.XMChannel(*, guid: str, id: str, name: str, streaming_name: str, sort_order: int, short_description: str, medium_description: str, url: str, is_available: bool, is_favorite: bool, is_mature: bool, channel_number: int, images: List[sxm.models.XMImage], categories: List[sxm.models.XMCategory])[source]

See tests/sample_data/xm_channel.json for sample

categories: List[sxm.models.XMCategory]
channel_number: int
static from_dict(data: dict)[source]
guid: str
id: str
images: List[sxm.models.XMImage]
is_available: bool
is_favorite: bool
is_mature: bool
medium_description: str
name: str
property pretty_name: str

Returns a formated version of channel number + channel name

short_description: str
sort_order: int
streaming_name: str
url: str
class sxm.models.XMCut(*, title: str, artists: List[sxm.models.XMArtist], cut_type: str = None)[source]
artists: List[sxm.models.XMArtist]
cut_type: Optional[str]
static from_dict(data: dict) sxm.models.XMCut[source]
title: str
class sxm.models.XMCutMarker(*, guid: str, time: datetime.datetime, time_seconds: int, duration: datetime.timedelta, cut: sxm.models.XMCut)[source]
cut: sxm.models.XMCut
static from_dict(data: dict) sxm.models.XMCutMarker[source]
class sxm.models.XMEpisode(*, guid: str, medium_title: str, long_title: str, short_description: str, long_description: str, show: sxm.models.XMShow)[source]
static from_dict(data: dict) sxm.models.XMEpisode[source]
guid: str
long_description: str
long_title: str
medium_title: str
short_description: str
show: sxm.models.XMShow
class sxm.models.XMEpisodeMarker(*, guid: str, time: datetime.datetime, time_seconds: int, duration: datetime.timedelta, episode: sxm.models.XMEpisode)[source]
episode: sxm.models.XMEpisode
static from_dict(data: dict) sxm.models.XMEpisodeMarker[source]
class sxm.models.XMHLSInfo(*, name: str, size: str, position: sxm.models.XMPosition = None)[source]
static from_dict(data: dict) sxm.models.XMHLSInfo[source]
name: str
position: Optional[sxm.models.XMPosition]
set_hls_roots(primary: str, secondary: str)[source]
size: str
property url
class sxm.models.XMImage(*, name: str = None, url: str, art_type: str, platform: str = None, height: int = None, width: int = None, size: str = None)[source]
static from_dict(data: dict) sxm.models.XMImage[source]
height: Optional[int]
platform: Optional[str]
size: Optional[str]
width: Optional[int]
class sxm.models.XMLiveChannel(*, id: str, hls_infos: List[sxm.models.XMHLSInfo], custom_hls_infos: List[sxm.models.XMHLSInfo], episode_markers: List[sxm.models.XMEpisodeMarker], cut_markers: List[sxm.models.XMCutMarker], tune_time: datetime.datetime = None)[source]

See tests/sample_data/xm_live_channel.json for sample

custom_hls_infos: List[sxm.models.XMHLSInfo]
cut_markers: List[sxm.models.XMCutMarker]
episode_markers: List[sxm.models.XMEpisodeMarker]
static from_dict(data: dict) sxm.models.XMLiveChannel[source]
get_latest_cut(now: Optional[datetime.datetime] = None) Optional[sxm.models.XMCutMarker][source]

Returns the latest XMCutMarker based on type relative to now

now : Optional[datetime]

get_latest_episode(now: Optional[datetime.datetime] = None) Optional[sxm.models.XMEpisodeMarker][source]

Returns the latest XMEpisodeMarker based on type relative to now

now : Optional[datetime]

hls_infos: List[sxm.models.XMHLSInfo]
id: str
property primary_hls: sxm.models.XMHLSInfo
property secondary_hls: sxm.models.XMHLSInfo
set_hls_roots(primary: str, secondary: str)[source]
set_stream_quality(value: sxm.models.QualitySize)[source]
property song_cuts: List[sxm.models.XMCutMarker]

Returns a list of all XMCut objects that are for songs

static sort_markers(markers: List[sxm.models.XMMarker]) List[sxm.models.XMMarker][source]

Sorts a list of XMMarker objects

tune_time: Optional[datetime.datetime]
class sxm.models.XMMarker(*, guid: str, time: datetime.datetime, time_seconds: int, duration: datetime.timedelta)[source]
duration: datetime.timedelta
static from_dict(data: dict) sxm.models.XMMarker[source]
guid: str
time: datetime.datetime
time_seconds: int
class sxm.models.XMPosition(*, timestamp: datetime.datetime, position: str)[source]
static from_dict(data: dict) sxm.models.XMPosition[source]
position: str
timestamp: datetime.datetime
class sxm.models.XMShow(*, guid: str, medium_title: str, long_title: str, short_description: str, long_description: str, arts: List[sxm.models.XMArt])[source]
arts: List[sxm.models.XMArt]
static from_dict(data: dict) sxm.models.XMShow[source]
guid: str
long_description: str
long_title: str
medium_title: str
short_description: str
class sxm.models.XMSong(*, title: str, artists: List[sxm.models.XMArtist], cut_type: str = None, album: sxm.models.XMAlbum = None, itunes_id: str = None)[source]
album: Optional[sxm.models.XMAlbum]
static from_dict(data: dict) sxm.models.XMSong[source]
itunes_id: Optional[str]