""" Constants for the SpotifyPlus component. """ import logging DOMAIN = "spotifyplus" """ Domain identifier for this integration (spotifyplus). """ PLATFORM_SPOTIFYPLUS = DOMAIN """ Platform identifier for this integration (spotifyplus). """ DOMAIN_SCRIPT = "script" """ Domain identifier for script integration (script). """ DOMAIN_MEDIA_PLAYER = "media_player" """ Domain identifier for media players (media_player). """ SPOTIFY_WEB_URL_PFX = "https://open.spotify.com" LOGGER = logging.getLogger(__package__) CONF_OPTION_ALWAYS_ON = "always_on" CONF_OPTION_DEVICE_DEFAULT = "device_default" CONF_OPTION_DEVICE_LOGINID = "device_loginid" CONF_OPTION_DEVICE_PASSWORD = "device_password" CONF_OPTION_DEVICE_USERNAME = "device_username" CONF_OPTION_SCRIPT_TURN_ON = "script_turn_on" CONF_OPTION_SCRIPT_TURN_OFF = "script_turn_off" CONF_OPTION_SOURCE_LIST_HIDE = "source_list_hide" CONF_OPTION_SPOTIFY_SCAN_INTERVAL = "spotify_scan_interval" CONF_OPTION_TURN_OFF_AUTO_PAUSE = "turn_off_auto_pause" CONF_OPTION_TURN_ON_AUTO_RESUME = "turn_on_auto_resume" CONF_OPTION_TURN_ON_AUTO_SOURCE_SELECT = "turn_on_auto_source_select" DEFAULT_OPTION_SPOTIFY_SCAN_INTERVAL = 30 # security scopes required by various Spotify Web API endpoints. SPOTIFY_SCOPES:list = \ [ 'playlist-modify-private', 'playlist-modify-public', 'playlist-read-collaborative', 'playlist-read-private', 'ugc-image-upload', 'user-follow-modify', 'user-follow-read', 'user-library-modify', 'user-library-read', 'user-modify-playback-state', 'user-read-currently-playing', 'user-read-email', 'user-read-playback-position', 'user-read-playback-state', 'user-read-private', 'user-read-recently-played', 'user-top-read' ] # ----------------------------------------------------------------------------------- # Custom State attribute identifiers. # ----------------------------------------------------------------------------------- ATTR_SPOTIFYPLUS_ARTIST_URI = "sp_artist_uri" ATTR_SPOTIFYPLUS_CONTEXT_URI = "sp_context_uri" ATTR_SPOTIFYPLUS_DEVICE_ID = "sp_device_id" ATTR_SPOTIFYPLUS_DEVICE_NAME = "sp_device_name" ATTR_SPOTIFYPLUS_DEVICE_IS_BRAND_SONOS = "sp_device_is_brand_sonos" ATTR_SPOTIFYPLUS_DEVICE_IS_CHROMECAST = "sp_device_is_chromecast" ATTR_SPOTIFYPLUS_DEVICE_IS_RESTRICTED = "sp_device_is_restricted" ATTR_SPOTIFYPLUS_DEVICE_MUSIC_SOURCE = "sp_device_music_source" ATTR_SPOTIFYPLUS_ITEM_TYPE = "sp_item_type" ATTR_SPOTIFYPLUS_NOWPLAYING_IMAGE_URL = "sp_nowplaying_image_url" ATTR_SPOTIFYPLUS_PLAY_TIME_REMAINING_EST = "sp_play_time_remaining_est" ATTR_SPOTIFYPLUS_PLAYING_TYPE = "sp_playing_type" ATTR_SPOTIFYPLUS_PLAYLIST_NAME = "sp_playlist_name" ATTR_SPOTIFYPLUS_PLAYLIST_URI = "sp_playlist_uri" ATTR_SPOTIFYPLUS_SOURCE_LIST_HIDE = "sp_source_list_hide" ATTR_SPOTIFYPLUS_TRACK_IS_EXPLICIT = "sp_track_is_explicit" ATTR_SPOTIFYPLUS_TRACK_URI_ORIGIN = "sp_track_uri_origin" ATTR_SPOTIFYPLUS_USER_COUNTRY = "sp_user_country" ATTR_SPOTIFYPLUS_USER_DISPLAY_NAME = "sp_user_display_name" ATTR_SPOTIFYPLUS_USER_EMAIL = "sp_user_email" ATTR_SPOTIFYPLUS_USER_HAS_WEB_PLAYER_CREDENTIALS = "sp_user_has_web_player_credentials" ATTR_SPOTIFYPLUS_USER_ID = "sp_user_id" ATTR_SPOTIFYPLUS_USER_PRODUCT = "sp_user_product" ATTR_SPOTIFYPLUS_USER_URI = "sp_user_uri" ATTR_VOLUME_STEP = "volume_step" # ----------------------------------------------------------------------------------- # Custom Service identifiers. # ----------------------------------------------------------------------------------- SERVICE_SPOTIFY_ADD_PLAYER_QUEUE_ITEMS = 'add_player_queue_items' SERVICE_SPOTIFY_CHECK_ALBUM_FAVORITES = 'check_album_favorites' SERVICE_SPOTIFY_CHECK_ARTISTS_FOLLOWING = 'check_artists_following' SERVICE_SPOTIFY_CHECK_AUDIOBOOK_FAVORITES = 'check_audiobook_favorites' SERVICE_SPOTIFY_CHECK_EPISODE_FAVORITES = 'check_episode_favorites' SERVICE_SPOTIFY_CHECK_PLAYLIST_FOLLOWERS = 'check_playlist_followers' SERVICE_SPOTIFY_CHECK_SHOW_FAVORITES = 'check_show_favorites' SERVICE_SPOTIFY_CHECK_TRACK_FAVORITES = 'check_track_favorites' SERVICE_SPOTIFY_CHECK_USER_FAVORITES = 'check_user_favorites' SERVICE_SPOTIFY_CHECK_USERS_FOLLOWING = 'check_users_following' SERVICE_SPOTIFY_FOLLOW_ARTISTS = 'follow_artists' SERVICE_SPOTIFY_FOLLOW_PLAYLIST = 'follow_playlist' SERVICE_SPOTIFY_FOLLOW_USERS = 'follow_users' SERVICE_SPOTIFY_GET_ALBUM = 'get_album' SERVICE_SPOTIFY_GET_ALBUM_FAVORITES = 'get_album_favorites' SERVICE_SPOTIFY_GET_ALBUM_NEW_RELEASES = 'get_album_new_releases' SERVICE_SPOTIFY_GET_ALBUM_TRACKS = 'get_album_tracks' SERVICE_SPOTIFY_GET_ARTIST = 'get_artist' SERVICE_SPOTIFY_GET_ARTIST_ALBUMS = 'get_artist_albums' SERVICE_SPOTIFY_GET_ARTIST_INFO = 'get_artist_info' SERVICE_SPOTIFY_GET_ARTIST_RELATED_ARTISTS = 'get_artist_related_artists' SERVICE_SPOTIFY_GET_ARTIST_TOP_TRACKS = 'get_artist_top_tracks' SERVICE_SPOTIFY_GET_ARTISTS_FOLLOWED = 'get_artists_followed' SERVICE_SPOTIFY_GET_AUDIOBOOK = 'get_audiobook' SERVICE_SPOTIFY_GET_AUDIOBOOK_CHAPTERS = 'get_audiobook_chapters' SERVICE_SPOTIFY_GET_AUDIOBOOK_FAVORITES = 'get_audiobook_favorites' SERVICE_SPOTIFY_GET_BROWSE_CATEGORYS_LIST = 'get_browse_categorys_list' SERVICE_SPOTIFY_GET_CATEGORY_PLAYLISTS = 'get_category_playlists' SERVICE_SPOTIFY_GET_CHAPTER = 'get_chapter' SERVICE_SPOTIFY_GET_COVER_IMAGE_FILE = 'get_cover_image_file' SERVICE_SPOTIFY_GET_DEVICE_PLAYBACK_STATE = 'get_device_playback_state' SERVICE_SPOTIFY_GET_EPISODE = 'get_episode' SERVICE_SPOTIFY_GET_EPISODE_FAVORITES = 'get_episode_favorites' SERVICE_SPOTIFY_GET_FEATURED_PLAYLISTS = 'get_featured_playlists' SERVICE_SPOTIFY_GET_ID_FROM_URI = 'get_id_from_uri' SERVICE_SPOTIFY_GET_IMAGE_PALETTE_COLORS = 'get_image_palette_colors' SERVICE_SPOTIFY_GET_IMAGE_VIBRANT_COLORS = 'get_image_vibrant_colors' SERVICE_SPOTIFY_GET_PLAYER_DEVICES = 'get_player_devices' SERVICE_SPOTIFY_GET_PLAYER_LAST_PLAYED_INFO = 'get_player_last_played_info' SERVICE_SPOTIFY_GET_PLAYER_NOW_PLAYING = 'get_player_now_playing' SERVICE_SPOTIFY_GET_PLAYER_PLAYBACK_STATE = 'get_player_playback_state' SERVICE_SPOTIFY_GET_PLAYER_QUEUE_INFO = 'get_player_queue_info' SERVICE_SPOTIFY_GET_PLAYER_RECENT_TRACKS = 'get_player_recent_tracks' SERVICE_SPOTIFY_GET_PLAYLIST = 'get_playlist' SERVICE_SPOTIFY_GET_PLAYLIST_COVER_IMAGE = 'get_playlist_cover_image' SERVICE_SPOTIFY_GET_PLAYLIST_FAVORITES = 'get_playlist_favorites' SERVICE_SPOTIFY_GET_PLAYLIST_ITEMS = 'get_playlist_items' SERVICE_SPOTIFY_GET_PLAYLISTS_FOR_USER = 'get_playlists_for_user' SERVICE_SPOTIFY_GET_SHOW = 'get_show' SERVICE_SPOTIFY_GET_SHOW_EPISODES = 'get_show_episodes' SERVICE_SPOTIFY_GET_SHOW_FAVORITES = 'get_show_favorites' SERVICE_SPOTIFY_GET_SPOTIFY_CONNECT_DEVICE = 'get_spotify_connect_device' SERVICE_SPOTIFY_GET_SPOTIFY_CONNECT_DEVICES = 'get_spotify_connect_devices' SERVICE_SPOTIFY_GET_TRACK = 'get_track' SERVICE_SPOTIFY_GET_TRACK_AUDIO_FEATURES = 'get_track_audio_features' SERVICE_SPOTIFY_GET_TRACK_FAVORITES = 'get_track_favorites' SERVICE_SPOTIFY_GET_TRACK_RECOMMENDATIONS = 'get_track_recommendations' SERVICE_SPOTIFY_GET_TRACKS_AUDIO_FEATURES = 'get_tracks_audio_features' SERVICE_SPOTIFY_GET_USERS_TOP_ARTISTS = 'get_users_top_artists' SERVICE_SPOTIFY_GET_USERS_TOP_TRACKS = 'get_users_top_tracks' SERVICE_SPOTIFY_PLAYER_MEDIA_PAUSE = 'player_media_pause' SERVICE_SPOTIFY_PLAYER_MEDIA_PLAY_CONTEXT = 'player_media_play_context' SERVICE_SPOTIFY_PLAYER_MEDIA_PLAY_TRACK_FAVORITES = 'player_media_play_track_favorites' SERVICE_SPOTIFY_PLAYER_MEDIA_PLAY_TRACKS = 'player_media_play_tracks' SERVICE_SPOTIFY_PLAYER_MEDIA_RESUME = 'player_media_resume' SERVICE_SPOTIFY_PLAYER_MEDIA_SEEK = 'player_media_seek' SERVICE_SPOTIFY_PLAYER_MEDIA_SKIP_NEXT = 'player_media_skip_next' SERVICE_SPOTIFY_PLAYER_MEDIA_SKIP_PREVIOUS = 'player_media_skip_previous' SERVICE_SPOTIFY_PLAYER_SET_REPEAT_MODE = 'player_set_repeat_mode' SERVICE_SPOTIFY_PLAYER_SET_SHUFFLE_MODE = 'player_set_shuffle_mode' SERVICE_SPOTIFY_PLAYER_SET_VOLUME_LEVEL = 'player_set_volume_level' SERVICE_SPOTIFY_PLAYER_TRANSFER_PLAYBACK = 'player_transfer_playback' SERVICE_SPOTIFY_PLAYLIST_CHANGE = 'playlist_change' SERVICE_SPOTIFY_PLAYLIST_COVER_IMAGE_ADD = 'playlist_cover_image_add' SERVICE_SPOTIFY_PLAYLIST_CREATE = 'playlist_create' SERVICE_SPOTIFY_PLAYLIST_ITEMS_ADD = 'playlist_items_add' SERVICE_SPOTIFY_PLAYLIST_ITEMS_CLEAR = 'playlist_items_clear' SERVICE_SPOTIFY_PLAYLIST_ITEMS_REMOVE = 'playlist_items_remove' SERVICE_SPOTIFY_PLAYLIST_ITEMS_REORDER = 'playlist_items_reorder' SERVICE_SPOTIFY_PLAYLIST_ITEMS_REPLACE = 'playlist_items_replace' SERVICE_SPOTIFY_REMOVE_ALBUM_FAVORITES = 'remove_album_favorites' SERVICE_SPOTIFY_REMOVE_AUDIOBOOK_FAVORITES = 'remove_audiobook_favorites' SERVICE_SPOTIFY_REMOVE_EPISODE_FAVORITES = 'remove_episode_favorites' SERVICE_SPOTIFY_REMOVE_SHOW_FAVORITES = 'remove_show_favorites' SERVICE_SPOTIFY_REMOVE_TRACK_FAVORITES = 'remove_track_favorites' SERVICE_SPOTIFY_REMOVE_USER_FAVORITES = 'remove_user_favorites' SERVICE_SPOTIFY_SAVE_ALBUM_FAVORITES = 'save_album_favorites' SERVICE_SPOTIFY_SAVE_AUDIOBOOK_FAVORITES = 'save_audiobook_favorites' SERVICE_SPOTIFY_SAVE_EPISODE_FAVORITES = 'save_episode_favorites' SERVICE_SPOTIFY_SAVE_SHOW_FAVORITES = 'save_show_favorites' SERVICE_SPOTIFY_SAVE_TRACK_FAVORITES = 'save_track_favorites' SERVICE_SPOTIFY_SAVE_USER_FAVORITES = 'save_user_favorites' SERVICE_SPOTIFY_SEARCH_ALL = 'search_all' SERVICE_SPOTIFY_SEARCH_ALBUMS = 'search_albums' SERVICE_SPOTIFY_SEARCH_ARTISTS = 'search_artists' SERVICE_SPOTIFY_SEARCH_AUDIOBOOKS = 'search_audiobooks' SERVICE_SPOTIFY_SEARCH_EPISODES = 'search_episodes' SERVICE_SPOTIFY_SEARCH_PLAYLISTS = 'search_playlists' SERVICE_SPOTIFY_SEARCH_SHOWS = 'search_shows' SERVICE_SPOTIFY_SEARCH_TRACKS = 'search_tracks' SERVICE_SPOTIFY_TRIGGER_SCAN_INTERVAL = 'trigger_scan_interval' SERVICE_SPOTIFY_UNFOLLOW_ARTISTS = 'unfollow_artists' SERVICE_SPOTIFY_UNFOLLOW_PLAYLIST = 'unfollow_playlist' SERVICE_SPOTIFY_UNFOLLOW_USERS = 'unfollow_users' SERVICE_SPOTIFY_ZEROCONF_DEVICE_CONNECT = 'zeroconf_device_connect' SERVICE_SPOTIFY_ZEROCONF_DEVICE_DISCONNECT = 'zeroconf_device_disconnect' SERVICE_SPOTIFY_ZEROCONF_DEVICE_GETINFO = 'zeroconf_device_getinfo' SERVICE_SPOTIFY_ZEROCONF_DISCOVER_DEVICES = 'zeroconf_discover_devices' # ----------------------------------------------------------------------------------- # Custom Service Schemas - MediaPlayerEntity enhancements. # ----------------------------------------------------------------------------------- SERVICE_VOLUME_SET_STEP = 'volume_set_step' # ----------------------------------------------------------------------------------- # Custom Service Schemas - non-Spotify Web API related. # ----------------------------------------------------------------------------------- SERVICE_LIST_APPLICATION_CREDENTIAL_MAPPPINGS = 'list_application_credential_mappings' SERVICE_TEST_TOKEN_EXPIRE = 'test_token_expire' # ----------------------------------------------------------------------------------- # Configuration constants. # ----------------------------------------------------------------------------------- CONF_ADD = "add" CONF_ENTITY_ID = "entity_id" CONF_REMOVE = "remove" CONF_TEXT = "text" CONF_VALUE = "value" CONF_LIMIT_TOTAL_MINIMUM = 5 # ensure more than 1 so that user favorites are considered. # ----------------------------------------------------------------------------------- # Slot Argument constants. # ----------------------------------------------------------------------------------- SLOT_AREA = "area" SLOT_ALBUM_NAME = "album_name" SLOT_ALBUM_TITLE = "album_title" SLOT_ALBUM_URL = "album_url" SLOT_ARTIST_BIO = "artist_bio" SLOT_ARTIST_NAME = "artist_name" SLOT_ARTIST_TITLE = "artist_title" SLOT_ARTIST_URL = "artist_url" SLOT_AUDIOBOOK_NAME = "audiobook_name" SLOT_AUDIOBOOK_TITLE = "audiobook_title" SLOT_AUDIOBOOK_URL = "audiobook_url" SLOT_AUTHOR_NAME = "author_name" SLOT_AUTHOR_TITLE = "author_title" SLOT_CHAPTER_NAME = "chapter_name" SLOT_CHAPTER_TITLE = "chapter_title" SLOT_CHAPTER_URL = "chapter_url" SLOT_CRITERIA_ARG_1 = "criteria_arg_1" SLOT_CRITERIA_ARG_2 = "criteria_arg_2" SLOT_DESCRIPTION = "description" SLOT_DELAY = "delay" SLOT_DEVICE_NAME = "device_name" SLOT_DEVICE_TITLE = "device_title" SLOT_EPISODE_NAME = "episode_name" SLOT_EPISODE_TITLE = "episode_title" SLOT_EPISODE_URL = "episode_url" SLOT_ERROR_FEATURES = "error_features" SLOT_ERROR_INFO = "error_info" SLOT_ERROR_STATES = "error_states" SLOT_FAVORITE_OPERATOR = "favorite_operator" SLOT_FLOOR = "floor" SLOT_ID = "id" SLOT_IMAGE_PATH = "image_path" SLOT_IS_COLLABORATIVE = "is_collaborative" SLOT_IS_PUBLIC = "is_public" SLOT_LATEST_EPISODE = "latest_episode" SLOT_LIMIT_TOTAL = "limit_total" SLOT_NAME = "name" SLOT_PLAYER_REPEAT_MODE = "player_repeat_mode" SLOT_PLAYER_SHUFFLE_MODE = "player_shuffle_mode" SLOT_PLAYER_VOLUME_LEVEL_PCT = "player_volume_level_pct" SLOT_PLAYER_VOLUME_STEP_PCT = "player_volume_step_pct" SLOT_PLAYLIST_NAME = "playlist_name" SLOT_PLAYLIST_TITLE = "playlist_title" SLOT_PLAYLIST_URL = "playlist_url" SLOT_PODCAST_NAME = "podcast_name" SLOT_PODCAST_TITLE = "podcast_title" SLOT_PODCAST_URL = "podcast_url" SLOT_PREFERRED_AREA_ID = "preferred_area_id" SLOT_PREFERRED_FLOOR_ID = "preferred_floor_id" SLOT_SEARCH_CRITERIA = "search_criteria" SLOT_SPOTIFYPLUS_MEDIA_TYPE = "spotifyplus_media_type" SLOT_SPOTIFYPLUS_PLAYLIST_NAMES = "spotifyplus_playlist_names" SLOT_SPOTIFYPLUS_PLAYER_DECK_CONTROL = "spotifyplus_player_deck_control" SLOT_SPOTIFYPLUS_PLAYER_VOLUME_CONTROL = "spotifyplus_player_volume_control" SLOT_SPOTIFYPLUS_SEARCH_PLAY_CONTROL = "spotifyplus_search_play_control" SLOT_SPOTIFYPLUS_SEARCH_PLAY_CONTROL_MULTI = "spotifyplus_search_play_control_multi" SLOT_SPOTIFYPLUS_SEARCH_PLAY_CONTROL_SINGLE = "spotifyplus_search_play_control_single" SLOT_TARGET_PLAYER = "target_player" SLOT_TRACK_NAME = "track_name" SLOT_TRACK_TITLE = "track_title" SLOT_TRACK_URL = "track_url" # ----------------------------------------------------------------------------------- # Intent Handler identifiers. # ----------------------------------------------------------------------------------- INTENT_FAVORITE_ADD_REMOVE = "SpotifyPlusFavoriteAddRemove" INTENT_GET_INFO_ARTIST_BIO = "SpotifyPlusGetInfoArtistBio" INTENT_GET_NOWPLAYING_INFO = "SpotifyPlusGetNowPlayingInfo" INTENT_PLAYER_DECK_CONTROL = "SpotifyPlusPlayerDeckControl" INTENT_PLAYER_SET_REPEAT_MODE = "SpotifyPlusPlayerSetRepeatMode" INTENT_PLAYER_SET_SHUFFLE_MODE = "SpotifyPlusPlayerSetShuffleMode" INTENT_PLAYER_TRANSFER_PLAYBACK = "SpotifyPlusPlayerTransferPlayback" INTENT_PLAYER_VOLUME_CONTROL = "SpotifyPlusPlayerVolumeControl" INTENT_PLAYLIST_CREATE = "SpotifyPlusPlaylistCreate" INTENT_SEARCH_PLAY_CONTROL = "SpotifyPlusSearchPlayControl" # ----------------------------------------------------------------------------------- # Intent Handler response codes. # ----------------------------------------------------------------------------------- RESPONSE_OK = "default" RESPONSE_ERROR_FAILED_TO_HANDLE = "error_failed_to_handle" RESPONSE_ERROR_MEDIA_TYPE_INVALID = "error_media_type_invalid" RESPONSE_ERROR_PLAYER_DECK_CONTROL_INVALID = "error_player_deck_control_invalid" RESPONSE_ERROR_PLAYER_VOLUME_CONTROL_INVALID = "error_player_volume_control_invalid" RESPONSE_ERROR_SEARCH_NO_CRITERIA = "error_search_no_criteria" RESPONSE_ERROR_SEARCH_PLAY_CONTROL_INVALID = "error_search_play_control_invalid" RESPONSE_FAVORITE_ADD_REMOVE_ALBUM_OK = "favorite_add_remove_album_ok" RESPONSE_FAVORITE_ADD_REMOVE_ARTIST_OK = "favorite_add_remove_artist_ok" RESPONSE_FAVORITE_ADD_REMOVE_AUDIOBOOK_OK = "favorite_add_remove_audiobook_ok" RESPONSE_FAVORITE_ADD_REMOVE_PLAYLIST_OK = "favorite_add_remove_playlist_ok" RESPONSE_FAVORITE_ADD_REMOVE_PODCAST_OK = "favorite_add_remove_podcast_ok" RESPONSE_FAVORITE_ADD_REMOVE_PODCAST_EPISODE_OK = "favorite_add_remove_podcast_episode_ok" RESPONSE_FAVORITE_ADD_REMOVE_TRACK_OK = "favorite_add_remove_track_ok" RESPONSE_FAVORITE_OPERATION_INVALID = "favorite_operation_invalid" RESPONSE_GET_INFO_ARTIST_BIO = "get_info_artist_bio" RESPONSE_NOWPLAYING_NO_MEDIA_ALBUM = "nowplaying_no_media_album" RESPONSE_NOWPLAYING_NO_MEDIA_ARTIST = "nowplaying_no_media_artist" RESPONSE_NOWPLAYING_NO_MEDIA_AUDIOBOOK = "nowplaying_no_media_audiobook" RESPONSE_NOWPLAYING_NO_MEDIA_PLAYLIST = "nowplaying_no_media_playlist" RESPONSE_NOWPLAYING_NO_MEDIA_PODCAST = "nowplaying_no_media_podcast" RESPONSE_NOWPLAYING_NO_MEDIA_PODCAST_EPISODE = "nowplaying_no_media_podcast_episode" RESPONSE_NOWPLAYING_NO_MEDIA_TRACK = "nowplaying_no_media_track" RESPONSE_NOWPLAYING_INFO_ALBUM = "nowplaying_info_album" RESPONSE_NOWPLAYING_INFO_AUDIOBOOK = "nowplaying_info_audiobook" RESPONSE_NOWPLAYING_INFO_PODCAST = "nowplaying_info_podcast" RESPONSE_NOWPLAYING_INFO_PODCAST_EPISODE = "nowplaying_info_podcast_episode" RESPONSE_NOWPLAYING_INFO_PLAYLIST = "nowplaying_info_playlist" RESPONSE_NOWPLAYING_INFO_TRACK = "nowplaying_info_track" RESPONSE_PLAY_ALBUM = "play_album" RESPONSE_PLAY_ALBUM_WITH_ARTIST = "play_album_with_artist" RESPONSE_PLAY_ARTIST = "play_artist" RESPONSE_PLAY_AUDIOBOOK = "play_audiobook" RESPONSE_PLAY_AUDIOBOOK_WITH_AUTHOR = "play_audiobook_with_author" RESPONSE_PLAY_FAVORITE_TRACKS = "play_favorite_tracks" RESPONSE_PLAY_FAVORITE_TRACKS_FOR_ARTIST = "play_favorite_tracks_for_artist" RESPONSE_PLAY_PLAYLIST = "play_playlist" RESPONSE_PLAY_PODCAST = "play_podcast" RESPONSE_PLAY_PODCAST_EPISODE = "play_podcast_episode" RESPONSE_PLAY_TRACK = "play_track" RESPONSE_PLAY_TRACK_WITH_ARTIST = "play_track_with_artist" RESPONSE_PLAYER_ALREADY_PLAYING_MEDIA = "player_already_playing_media" RESPONSE_PLAYER_DECK_CONTROL_PAUSE = "player_deck_control_pause" RESPONSE_PLAYER_DECK_CONTROL_RESUME = "player_deck_control_resume" RESPONSE_PLAYER_DECK_CONTROL_SEEK_START = "player_deck_control_seek_start" RESPONSE_PLAYER_DECK_CONTROL_SKIP_NEXT = "player_deck_control_skip_next" RESPONSE_PLAYER_DECK_CONTROL_SKIP_PREVIOUS = "player_deck_control_skip_previous" RESPONSE_PLAYER_FEATURES_NOT_SUPPORTED = "player_features_not_supported" RESPONSE_PLAYER_NOT_EXPOSED_TO_VOICE = "player_not_exposed_to_voice" RESPONSE_PLAYER_NOT_MATCHED = "player_not_matched" RESPONSE_PLAYER_NOT_MATCHED_AREA = "player_not_matched_area" RESPONSE_PLAYER_NOT_PLAYING_MEDIA = "player_not_playing_media" RESPONSE_PLAYER_NOT_SPOTIFYPLUS = "player_not_spotifyplus" RESPONSE_PLAYER_VOLUME_CONTROL_DOWN = "player_volume_control_down" RESPONSE_PLAYER_VOLUME_CONTROL_MUTE = "player_volume_control_mute" RESPONSE_PLAYER_VOLUME_CONTROL_SET_LEVEL = "player_volume_control_set_level" RESPONSE_PLAYER_VOLUME_CONTROL_SET_STEP_LEVEL = "player_volume_control_set_step_level" RESPONSE_PLAYER_VOLUME_CONTROL_UNMUTE = "player_volume_control_unmute" RESPONSE_PLAYER_VOLUME_CONTROL_UP = "player_volume_control_up" RESPONSE_PLAYLIST_CREATED = "playlist_created" RESPONSE_SPOTIFY_NO_ARTIST_INFO = "spotify_no_artist_info" RESPONSE_SPOTIFY_PREMIUM_REQUIRED = "spotify_premium_required" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_ALBUM = "spotify_search_no_items_album" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_ARTIST = "spotify_search_no_items_artist" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_AUDIOBOOK = "spotify_search_no_items_audiobook" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_PLAYLIST = "spotify_search_no_items_playlist" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_PODCAST = "spotify_search_no_items_podcast" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_PODCAST_EPISODE = "spotify_search_no_items_podcast_episode" RESPONSE_SPOTIFY_SEARCH_NO_ITEMS_TRACK = "spotify_search_no_items_track"