LMSPlayer¶
-
class
LMSTools.player.
LMSPlayer
(ref, server)¶ The LMSPlayer class represents an individual squeeze player connected to your Logitech Media Server.
Instances of this class are generated from the LMSServer object and it is not expected that you would create an instance directly. However, it is posible to create instances directly:
server = LMSServer("192.168.0.1") # Get player instance with MAC address of player player = LMSPlayer("12:34:56:78:90:AB", server) # Get player based on index of player on server player = LMSPlayer.from_index(0, server)
Upon intialisation, basic information about the player is retrieved from the server:
>>>player = LMSPlayer("12:34:56:78:90:AB", server) >>>player.name u'Living Room' >>>player.model u'squeezelite'
-
forward
(seconds=10)¶ Parameters: seconds (int, float) – number of seconds to jump forwards in current track. Jump forward in current track. Number of seconds will be converted to integer.
-
classmethod
from_index
(index, server)¶ Create an instance of LMSPlayer when the MAC address of the player is unknown.
This class method uses the index of the player (as registered on the server) to identify the player.
Return type: LMSPlayer Returns: Instance of squeezeplayer
-
get_synced_players
(refs_only=False)¶ Retrieve list of players synced to current player.
Parameters: refs_only (bool) – whether the method should return list of MAC references or list of LMSPlayer instances. Return type: list
-
mode
¶ Return type: str, unicode Returns: curent mode (e.g. “play”, “pause”)
-
model
¶ Return type: str, unicode Returns: model name of the current player.
-
mute
()¶ Mute player
-
muted
¶ Muting
Getter: retrieve current muting status Return type: bool Returns: True if muted, False if not. Setter: set muting status (True = muted)
-
name
¶ Player name.
Getter: retrieve name of player Return type: unicode, str Returns: name of player Setter: update name of player on server >>>p.name u"elParaguayo's Laptop" >>>p.name = "New name" >>>p.name 'New name'
-
next
()¶ Play next item in playlist
-
parse_request
(command, key)¶ Parameters: - command (str, list) – command to be sent to server
- key (str) – key to retrieve desired info from JSON response
Returns: value from JSON response
Send the request and extract the info from the JSON response.
This is the same as player.request(command).get(key)
-
pause
()¶ Pause the player. This does not unpause the player if already paused.
-
percentage_elapsed
(upper=100)¶ Parameters: upper (float, int) – (optional) scale - returned value is between 0 and upper (default 100) Return type: float Returns: current percentage elapsed >>>player.percentage_elapsed() 29.784033576552005 >>>p.percentage_elapsed(upper=1) 0.31738374576051237
-
play
()¶ Start playing the current item
-
playlist_add
(item)¶ Add item to playlist
Parameters: item (str) – link to playable item
-
playlist_clear
()¶ Clear the entire playlist. Will also stop the player.
-
playlist_delete
(item)¶ Delete item
Parameters: item (str) – link to playable item
-
playlist_erase
(index)¶ Remove item from playlist by index
Parameters: index – index of item to delete
-
playlist_get_current_detail
(amount=None, taglist=None)¶ Parameters: - amount (int) – number of tracks to query
- taglist (list) – list of tags (NEED LINK)
Return type: list
Returns: server result
If amount is None, all remaining tracks will be displayed.
If not taglist is provided, the default list is: [tags.ARTIST, tags.COVERID, tags.DURATION, tags.COVERART, tags.ARTWORK_URL, tags.ALBUM, tags.REMOTE, tags.ARTWORK_TRACK_ID]
>>>player.playlist_get_current_detail(amount=1) [{u'album': u'Jake Bugg', u'artist': u'Jake Bugg', u'artwork_url': u'https://i.scdn.co/image/6ba50b26867613b100281669ff1a917c5a020534', u'coverart': u'0', u'coverid': u'-161090728', u'duration': u'144', u'id': u'-161090728', u'playlist index': 7, u'remote': 1, u'title': u'Lightning Bolt'}] >>>player.playlist_get_current_detail(amount=1, taglist=[tags.DURATION]) [{u'duration': u'144', u'id': u'-161090728', u'playlist index': 7, u'title': u'Lightning Bolt'}]
-
playlist_get_detail
(start=None, amount=None, taglist=None)¶ Parameters: - start (int) – playlist index of first track to query
- amount (int) – number of tracks to query
- taglist (list) – list of tags (NEED LINK)
Return type: list
Returns: server result
If start is None, results will start with the first track in the playlist.
If amount is None, all playlist tracks will be returned.
If not taglist is provided, the default list is: [tags.ARTIST, tags.COVERID, tags.DURATION, tags.COVERART, tags.ARTWORK_URL, tags.ALBUM, tags.REMOTE, tags.ARTWORK_TRACK_ID]
>>>player.playlist_get_detail(start=1, amount=1, taglist=[tags.URL]) [{u'id': u'-137990288', u'playlist index': 1, u'title': u"Mardy Bum by Arctic Monkeys from Whatever People Say I Am, That's What I'm Not", u'url': u'spotify://track:2fyIS6GXMgUcSv4oejx63f'}]
-
playlist_get_info
(taglist=None, start=None, amount=None)¶ Parameters: - start (int) – playlist index of first track to query
- amount (int) – number of tracks to query
- taglist (list) – list of tags (NEED LINK)
Return type: list
Returns: server result
If start is None, results will start with the first track in the playlist.
If amount is None, all playlist tracks will be returned.
Unlike playlist_get_detail, no default taglist is provided.
>>>player.playlist_get_info(start=1, amount=1) [{u'id': u'-137990288', u'playlist index': 1, u'title': u'Mardy Bum'}]
-
playlist_insert
(item)¶ Insert item into playlist (after current track)
Parameters: item (str) – link to playable item
-
playlist_move
(from_index, to_index)¶ Move items in playlist
Parameters: - from_index (int) – index of item to move
- to_index (int) – new playlist position
-
playlist_play
(item)¶ Play item
Parameters: item (str) – link to playable item
-
playlist_play_index
(index)¶ Parameters: index (int) – index of playlist track to play (zero-based index)
-
playlist_position
¶ Return type: int Returns: position of current track in playlist
-
prev
()¶ Play previous item in playlist
-
request
(command)¶ Parameters: command (str, list) – command to be sent to server Return type: dict Returns: JSON response received from server Send the request to the server.
-
rewind
(seconds=10)¶ Parameters: seconds (int, float) – number of seconds to jump backwards in current track. Jump backwards in current track. Number of seconds will be converted to integer.
-
seek_to
(seconds)¶ Parameters: seconds (int, float) – position (in seconds) that player should seek to Move player to specified position in current playlist item
-
stop
()¶ Stop the player
-
sync
(player=None, ref=None, index=None, master=True)¶ Synchronise squeezeplayers
Parameters: - player (LMSPlayer) – Instance of player
- ref (str) – MAC address of player
- index (int) – server index of squeezeplayer
- master (bool) – whether current player should be the master player in sync group
Raises: LMSPlayerError
You must provide one of player, ref or index otherwise an exception will be raised. If master is set to True then you must provide either player or ref.
-
time_elapsed
¶ Return type: float Returns: elapsed time in seconds. Returns 0.0 if an exception is encountered.
-
time_remaining
¶ Return type: float Returns: remaining time in seconds. Returns 0.0 if an exception is encountered.
-
toggle
()¶ Play/Pause Toggle
-
track_album
¶ Return type: unicode, str Returns: name of album for current playlist item >>>player.track_album u'Kiasmos'
-
track_artist
¶ Return type: unicode, str Returns: name of artist for current playlist item >>>player.track_artist u'Kiasmos'
-
track_count
¶ Return type: int Returns: number of tracks in playlist
-
track_duration
¶ Return type: float Returns: duration of track in seconds >>>player.track_duration 384.809
-
track_elapsed_and_duration
¶ Return type: tuple (float, float) Returns: tuple of elapsed time and track duration >>>player.track_elapsed_and_duration (4.86446976280212, 384.809)
-
track_title
¶ Return type: unicode, str Returns: name of track for current playlist item >>>player.track_artist u'Lit'
-
unmute
()¶ Unmute player
-
unpause
()¶ Unpause the player.
-
unsync
()¶ Remove player from syncgroup.
-
update
()¶ Retrieve some basic info about the player.
Retrieves the name, model and ip attributes. This method is called on initialisation.
-
volume
¶ Volume information
Getter: Get current volume Return type: int Returns: current volume Setter: change volume >>>player.volume 95 >>>player.volume = 50
Min: 0, Max: 100
-
volume_down
(interval=5)¶ Decrease volume
Parameters: interval (int) – amount to decrease volume (default 5)
-
volume_up
(interval=5)¶ Increase volume
Parameters: interval (int) – amount to increase volume (default 5)
-
wifi_signal_strength
¶ Return type: int Returns: Wifi signal strength
-