Developer Interface

This part of the documentation covers all the interfaces of Libsoundtouch.

Main Interface

libsoundtouch.soundtouch_device(host, port=8090)[source]

Create a new Soundtouch device.

Parameters:
  • host – Host of the device
  • port – Port of the device. Default 8090
libsoundtouch.discover_devices(timeout=5)[source]

Discover devices on the local network.

Parameters:timeout – Max time to wait in seconds. Default 5

Classes

Bose Soundtouch Device.

class libsoundtouch.device.SoundTouchDevice(host, port=8090, ws_port=8080, dlna_port=8091)[source]

Bose SoundTouch Device.

add_device_info_listener(listener)[source]

Add a new device info updated listener.

add_presets_listener(listener)[source]

Add a new presets updated listener.

add_status_listener(listener)[source]

Add a new status updated listener.

add_volume_listener(listener)[source]

Add a new volume updated listener.

add_zone_slave(slaves)[source]

Add slave(s) to and existing zone (multi-room).

Zone must already exist and slaves array can not be empty.

Parameters:slaves – List of slaves. Can not be empty
add_zone_status_listener(listener)[source]

Add a new zone status updated listener.

clear_device_info_listeners()[source]

Clear device info updated listener..

clear_presets_listeners()[source]

Clear presets updated listeners.

clear_status_listener()[source]

Clear status updated listeners.

clear_volume_listeners()[source]

Clear volume updated listeners.

clear_zone_status_listeners()[source]

Clear zone status updated listeners.

config

Get config object.

create_zone(slaves)[source]

Create a zone (multi-room) on a master and play on specified slaves.

Parameters:slaves – List of slaves. Can not be empty
device_info_updated_listeners

Return Device Info Updated listeners.

dlna_port

Return DLNA port.

host

Host of the device.

mute()[source]

Mute/Un-mute volume.

next_track()[source]

Switch to next track.

pause()[source]

Pause.

play()[source]

Play.

play_media(source, location, source_acc=None, media_type=<Type.URI: 'uri'>)[source]

Start music playback from a chosen source.

Parameters:
  • source – Source from which to play. Elements of Source enum.
  • location – A unique uri or identifier. Represents the requested music from the source.
  • source_acc – Source account. Imperative for some sources. For Spotify, this can be found by playing Spotify on the connected SoundTouch speaker, and calling: device.status().content_item.source_account
  • media_type – Type of the requested music. Typical values are: “uri”, “track”, “album”, “playlist”. This can be found in device.status().content_item.type
play_pause()[source]

Toggle play status.

play_url(url)[source]

Start music playback from an HTTP URL.

Warning: HTTPS is not supported.

Parameters:url – HTTP URL to play.
port

Return API port of the device.

power_off()[source]

Power off device.

power_on()[source]

Power on device.

presets(refresh=True)[source]

Presets.

Parameters:refresh – Force refresh, else return old data.
presets_updated_listeners

Return Presets Updated listeners.

previous_track()[source]

Switch to previous track.

refresh_presets()[source]

Refresh presets.

refresh_status()[source]

Refresh status state.

refresh_volume()[source]

Refresh volume state.

refresh_zone_status()[source]

Refresh Zone Status.

remove_device_info_listener(listener)[source]

Remove a new device info updated listener.

remove_presets_listener(listener)[source]

Remove a new presets updated listener.

remove_status_listener(listener)[source]

Remove a new status updated listener.

remove_volume_listener(listener)[source]

Remove a new volume updated listener.

remove_zone_slave(slaves)[source]

Remove slave(s) from and existing zone (multi-room).

Zone must already exist and slaves list can not be empty. Note: If removing last slave, the zone will be deleted and you’ll have to create a new one. You will not be able to add a new slave anymore.

Parameters:slaves – List of slaves to remove
remove_zone_status_listener(listener)[source]

Remove a new zone status updated listener.

repeat_all()[source]

Repeat all.

repeat_off()[source]

Turn off repeat.

repeat_one()[source]

Repeat one. Doesn’t work.

restore()[source]

Restore last snapshot.

select_content_item(source, source_account=None, location=None, media_type=None)[source]

Select specified content.

:param source The source :param source_account The source account :param location The location :param media_type The media type

select_preset(preset)[source]

Play selected preset.

:param preset Selected preset.

select_source_aux()[source]

Select AUX source.

select_source_bluetooth()[source]

Select BLUETOOTH source.

set_volume(level)[source]

Set volume level: from 0 to 100.

shuffle(shuffle)[source]

Shuffle on/off.

Parameters:shuffle – Boolean on/off
snapshot()[source]

Snapshot current playing media.

start_notification()[source]

Start Websocket connection.

status(refresh=True)[source]

Get status object.

Parameters:refresh – Force refresh, else return old data.
status_updated_listeners

Return Status Updated listeners.

volume(refresh=True)[source]

Get volume object.

Parameters:refresh – Force refresh, else return old data.
volume_down()[source]

Volume down.

volume_up()[source]

Volume up.

volume_updated_listeners

Return Volume Updated listeners.

ws_port

Return Web Socket port.

zone_status(refresh=True)[source]

Get Zone Status.

Parameters:refresh – Force refresh, else return old data.
zone_status_updated_listeners

Return Zone Status Updated listeners.

class libsoundtouch.device.Config(xml_dom)[source]

Soundtouch device configuration.

account_uuid

Account UUID.

components

Components.

country_code

Country code.

device_id

Device ID.

device_ip

Ip.

mac_address

Mac address.

module_type

Return module type.

name

Device name.

networks

Network.

region_code

Region code.

type

Device type.

variant

Variant.

variant_mode

Variant mode.

class libsoundtouch.device.Network(network_dom)[source]

Soundtouch network configuration.

ip_address

IP Address.

mac_address

Mac Address.

type

Type.

class libsoundtouch.device.Component(component_dom)[source]

Soundtouch component.

category

Category.

serial_number

Return serial number.

software_version

Software version.

class libsoundtouch.device.Status(xml_dom)[source]

Soundtouch device status.

album

Album name.

artist

Artist.

content_item

Content item.

description

Description.

duration

Duration.

image

Image URL.

play_status

Status.

position

Position.

repeat_setting

Repeat setting.

shuffle_setting

Shuffle setting.

source

Source.

station_location

Station location.

station_name

Station name.

stream_type

Stream type.

track

Track.

track_id

Track id.

class libsoundtouch.device.ContentItem(xml_dom)[source]

Content item.

is_presetable

Return true if presetable.

location

Location.

name

Name.

source

Source.

source_account

Source account.

type

Type.

class libsoundtouch.device.Volume(xml_dom)[source]

Volume configuration.

actual

Actual volume level.

muted

Return True if volume is muted.

target

Target volume level.

class libsoundtouch.device.Preset(preset_dom)[source]

Preset.

is_presetable

Return True if is presetable.

location

Location.

name

Name.

preset_id

Id.

source

Source.

source_account

Source account.

source_xml

XML source.

type

Type.

class libsoundtouch.device.ZoneStatus(zone_dom)[source]

Zone Status.

is_master

Return True if current device is the zone master.

master_id

Master id.

master_ip

Master ip.

slaves

Zone slaves.

class libsoundtouch.device.ZoneSlave(member_dom)[source]

Zone Slave.

device_ip

Slave ip.

role

Slave role.

Exceptions

exception libsoundtouch.device.SoundtouchException[source]

Parent Soundtouch Exception.

exception libsoundtouch.device.NoExistingZoneException[source]

Exception while trying to add slave(s) without existing zone.

exception libsoundtouch.device.NoSlavesException[source]

Exception while managing multi-room actions without valid slaves.