Yamaha Musiccast Play_media improvement

This new feature is a great step, however I’d really like to see it extended just a little more.

I tried out this feature on the dev branch and it almost does everything I’ve been wanting, but one feature that would make it perfect would be the ability to supply the text label to the media_player.play_media service call.

This new update adds this functionality which is used by the Media Browser to play what was browsed to:

service: media_player.play_media
entity_id: media_player.yamaha_receiver
data:
  media_content_id: "list:amazon_music:5:1"
  media_content_type: "track"

This is fantastic, however I like to use media_player with automation, not clicking around the interface, I have a bunch of “stations” and “playlists” that I want to be played based on routines, I would really like to see an update that worked something like:

service: media_player.play_media
entity_id: media_player.yamaha_receiver
data:
  media_content_id: "list:amazon_music:Playlists:My Awesome Playlist"
  media_content_type: "playlist"

This would cause the musiccast api to browse through the “amazon_music” input until it found an item named “Playlist” and then it would traverse into that and browse until it found “My Awesome Playlist”. The separator may need to change from “:”, but that’s the general idea.

I do recognize that this update includes the ability to access the Musiccast Preset feature, which is excellent, however on more than one occasion I’ve found that Amazon changes some backend metadata which changes the unique id for that entry, while leaving the name the same, and now my preset is broken, yet if I browse into the Amazon music source there is an entry with the same name, thus making presets less useful.

Also there is a limit to the number of presets on the Musiccast, this other method would allow for significantly more flexible interaction with the music sources.

Alternately if there is a method in the API to access the Media Browser as if I were clicking the front end, that would be a viable substitute, however if it exists I have not seen any documentation for such.