diff --git a/homeassistant/components/cast/media_player.py b/homeassistant/components/cast/media_player.py
index 44b6bf451c1..9aec9a47ea2 100644
--- a/homeassistant/components/cast/media_player.py
+++ b/homeassistant/components/cast/media_player.py
@@ -602,7 +602,9 @@ class CastDevice(MediaPlayerEntity):
 
         images = media_status.images
 
-        return images[0].url if images and images[0].url else None
+        return (
+            images[0].url.replace("http://", "//") if images and images[0].url else None
+        )
 
     @property
     def media_image_remotely_accessible(self) -> bool:
diff --git a/tests/components/cast/test_media_player.py b/tests/components/cast/test_media_player.py
index 1338eb0f0cc..ad18430c37a 100644
--- a/tests/components/cast/test_media_player.py
+++ b/tests/components/cast/test_media_player.py
@@ -440,6 +440,45 @@ async def test_entity_media_states(hass: HomeAssistantType):
     assert state.state == "unknown"
 
 
+async def test_url_replace(hass: HomeAssistantType):
+    """Test functionality of replacing URL for HTTPS."""
+    info = get_fake_chromecast_info()
+    full_info = attr.evolve(
+        info, model_name="google home", friendly_name="Speaker", uuid=FakeUUID
+    )
+
+    chromecast, entity = await async_setup_media_player_cast(hass, info)
+
+    entity._available = True
+    entity.schedule_update_ha_state()
+    await hass.async_block_till_done()
+
+    state = hass.states.get("media_player.speaker")
+    assert state is not None
+    assert state.name == "Speaker"
+    assert state.state == "unknown"
+    assert entity.unique_id == full_info.uuid
+
+    class FakeHTTPImage:
+        url = "http://example.com/test.png"
+
+    class FakeHTTPSImage:
+        url = "https://example.com/test.png"
+
+    media_status = MagicMock(images=[FakeHTTPImage()])
+    media_status.player_is_playing = True
+    entity.new_media_status(media_status)
+    await hass.async_block_till_done()
+    state = hass.states.get("media_player.speaker")
+    assert state.attributes.get("entity_picture") == "//example.com/test.png"
+
+    media_status.images = [FakeHTTPSImage()]
+    entity.new_media_status(media_status)
+    await hass.async_block_till_done()
+    state = hass.states.get("media_player.speaker")
+    assert state.attributes.get("entity_picture") == "https://example.com/test.png"
+
+
 async def test_group_media_states(hass: HomeAssistantType):
     """Test media states are read from group if entity has no state."""
     info = get_fake_chromecast_info()