Hi ya all,
EDIT: PLEX have removed attachments. text modified to include XML directly
I found this thread to be very useful and managed to get ALAC playing across all my devices using the info from the posts here (thanks Photolux and KettyKrueger) and have created a catch-all profile for a number of Yamaha products (WX-010, WX-030, RX-A1070, NX-N500). So this is about sharing that and explaining how to add more to the profile.
I’m doing this on Plex on a Synology so my profile path was:
/<volume x>/@appstore/Plex Media Server/Resources/Profiles
One thing I noticed when I was experimenting trying to work out how to get all devices in the one profile (as there are multiple entries for iPhone etc.) is that plex requires a stop/start to read the new profiles. Evidenced by the first profile I got working transcoding ALAC to mp3 despite removing the lines below (brackets changed due to forum post formatting) and power cycling the MusicCast device:
<MusicProfile container="mp3" codec="mp3" />
Removing the above and doing a start/stop of Plex service allowed a refresh and the MusicCast app to run in ALAC (see Screenshot).
Anyway, below is the XML I modified from the people in the above posts (thank you both). For those wanting to expand to include more devices note the following:
I was initially confused by the ‘Client name’ header. However, it’s not important. It’s a friendly name you call the profile (the file is called MusicCast.xml).
The ‘User-Agent:… Substring’ was found by:
- attempting to connect and play something via each client from the MusicCast Application (which fails with ‘unable to play’)
- Downloading the logs from the Plex server (go to PlexWebClient >> Settings >> Server >> Help >> Download Logs).
- Search for the word ‘generic’. you should find a line similar to my output below:
DEBUG - Mapped client to generic profile: Host: 192.168.23.1:32469; User-Agent: Network_Module/1.0 (RX-A1070) UPnP/1.0 DLNADOC/1.50; Content-Type: text/xml; charset="utf-8"; Content-Length: 470; SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"; Cache-Control: no-cache; Pragma: no-cache
- Note the name of the device appears in this string RX-A1070. This is the text you place in the User-Agent substring field.
- Add this in to the XML, save it as MusicCast.xml and you’re done. When successful the log looks like:
DEBUG - Mapped client to profile MusicCast using header User-Agent: Network_Module/1.0 (RX-A1070) UPnP/1.0 DLNADOC/1.50
EDIT: It looks like PLEX removed all the attachments from the forum in an update so… Below is the XML I have working across all devices. Thank you to all contributors to this thread. I now understand a heck of a lot more about XML and the workings of DLNA…
Call this file ‘MusicCast.xml’
<?xml version="1.0" encoding="utf-8"?>
<Header name="User-Agent" substring="(WX-010)"/>
<Header name="User-Agent" substring="(RX-A1070)"/>
<Header name="User-Agent" substring="(WX-030)"/>
<Header name="User-Agent" substring="(NX-N500)"/>
<MusicProfile container="mp3" codec="mp2,mp3" />
<MusicProfile container="mp4" codec="aac,alac" />
<MusicProfile container="flac" codec="flac" />
<DlnaMusicProfile container="mp4" mimeType="audio/m4a" />