diff --git a/homeassistant/components/forked_daapd/media_player.py b/homeassistant/components/forked_daapd/media_player.py index 07cc11807fd..02790b17764 100644 --- a/homeassistant/components/forked_daapd/media_player.py +++ b/homeassistant/components/forked_daapd/media_player.py @@ -504,6 +504,10 @@ class ForkedDaapdMaster(MediaPlayerEntity): @property def media_title(self): """Title of current playing media.""" + # Use album field when data_kind is url + # https://github.com/ejurgensen/forked-daapd/issues/351 + if self._track_info["data_kind"] == "url": + return self._track_info["album"] return self._track_info["title"] @property @@ -514,6 +518,10 @@ class ForkedDaapdMaster(MediaPlayerEntity): @property def media_album_name(self): """Album name of current playing media, music track only.""" + # Use title field when data_kind is url + # https://github.com/ejurgensen/forked-daapd/issues/351 + if self._track_info["data_kind"] == "url": + return self._track_info["title"] return self._track_info["album"] @property diff --git a/tests/components/forked_daapd/test_media_player.py b/tests/components/forked_daapd/test_media_player.py index 43a39146199..4f5cb57d66c 100644 --- a/tests/components/forked_daapd/test_media_player.py +++ b/tests/components/forked_daapd/test_media_player.py @@ -364,9 +364,9 @@ def test_master_state(hass, mock_api_object): assert state.attributes[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC assert state.attributes[ATTR_MEDIA_DURATION] == 0.05 assert state.attributes[ATTR_MEDIA_POSITION] == 0.005 - assert state.attributes[ATTR_MEDIA_TITLE] == "Short TTS file" + assert state.attributes[ATTR_MEDIA_TITLE] == "No album" # reversed for url assert state.attributes[ATTR_MEDIA_ARTIST] == "Google" - assert state.attributes[ATTR_MEDIA_ALBUM_NAME] == "No album" + assert state.attributes[ATTR_MEDIA_ALBUM_NAME] == "Short TTS file" # reversed assert state.attributes[ATTR_MEDIA_ALBUM_ARTIST] == "The xx" assert state.attributes[ATTR_MEDIA_TRACK] == 1 assert not state.attributes[ATTR_MEDIA_SHUFFLE] @@ -466,7 +466,7 @@ async def test_last_outputs_master(hass, mock_api_object): assert mock_api_object.set_enabled_outputs.call_count == 2 -async def test_bunch_of_stuff_master(hass, mock_api_object, get_request_return_values): +async def test_bunch_of_stuff_master(hass, get_request_return_values, mock_api_object): """Run bunch of stuff.""" await _service_call(hass, TEST_MASTER_ENTITY_NAME, SERVICE_TURN_ON) await _service_call(hass, TEST_MASTER_ENTITY_NAME, SERVICE_TURN_OFF) @@ -710,6 +710,9 @@ async def test_librespot_java_stuff( await hass.async_block_till_done() state = hass.states.get(TEST_MASTER_ENTITY_NAME) assert state.attributes[ATTR_INPUT_SOURCE] == "librespot-java (pipe)" + # test title and album not reversed when data_kind not url + assert state.attributes[ATTR_MEDIA_TITLE] == "librespot-java" + assert state.attributes[ATTR_MEDIA_ALBUM_NAME] == "some album" async def test_librespot_java_play_media(hass, pipe_control_api_object):