I did some snooping on how plex devices communicate.
This is purely informational, perhaps someone is interested in creating a PI in the future.
Given the protocol is completely proprietary, I don't see a way to add it to the MediaController PI.
User Kideon found this link
https://forums.plex.tv/index.php/top...documentation/
Here are my Wireshark traces and some explanation
Discovery appears to be a broadcast to UDP dest ports 32414 and 32412
192.168.1.128 255.255.255.255 UDP 65 Source port: 32415 Destination port: 32414
M-SEARCH * HTTP/1.1
192.168.1.128 255.255.255.255 UDP 65 Source port: 32413 Destination port: 32412
M-SEARCH * HTTP/1.1
192.168.1.117 192.168.1.128 UDP 296 Source port: 59013 Destination port: 32413
With response
HELLO * HTTP/1.0
Name: Roku 3500X
Port: 8324
Product: Plex for Roku
Content-Type: plex/media-player
Protocol: plex
Protocol-Version: 1
Protocol-Capabilities: timeline,playback,navigation
Version: 2.8.4
Resource-Identifier: 2L543E046394
Device-Class: stb
So now the port is know to be 8324, now TCP GETs and POSTs to dest port 8324. The XPLEX client identifier looks like a UPNP UDN. Note that the Target CLient indentifier needs to be added to the header!
192.168.1.128 192.168.1.117 TCP 454 64313 > 8324
GET /player/timeline/subscribe?port=32400&commandID=0 HTTP/1.1
Host: 192.168.1.117:8324
Accept-Encoding: gzip, deflate
X-Plex-Target-Client-Identifier: 2L543E046394
Accept-Language: en-us
X-Plex-Device-Name: Dirk's iPhone
Accept: */*
Connection: keep-alive
X-Plex-Client-Identifier: 085DA3BE-8E9F-4B13-954F-560D4E1D0067
User-Agent: Plex/3.4.2 CFNetwork/672.1.15 Darwin/14.0.0
Response
HTTP/1.1 200 OK
Date: Sun, 27 JUL 2014 16:52:28 GMT
Server: Plex
Connection: close
Content-Length: 0
Content-Type: text/html
Accept-Ranges: bytes
192.168.1.128 192.168.1.117 TCP 66 [TCP Window Update] 32400 > 36996
POST /:/timeline HTTP/1.1
User-Agent: Roku/DVP-5.5 (095.05E02025A)
Host: 192.168.1.128:32400
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/x-www-form-urlencoded
X-Plex-Platform: Roku
X-Plex-Version: 2.8.4
X-Plex-Client-Identifier: 2L543E046394
X-Plex-Platform-Version: 5.5 build 2025
X-Plex-Product: Plex for Roku
X-Plex-Device: Roku 3500X
X-Plex-Device-Name: Roku 3500X
X-Plex-Username: dcorsus
Content-Type: application/xml
Content-Length: 384
<MediaContainer location="navigation" commandID="0"><Timeline state="stopped" controllable="stop,stepBack,stepForward,seekTo,playPause" type="video" /><Timeline state="stopped" shuffle="0" controllable="stop,stepBack,stepForward,seekTo,playPause,shu ffle,repeat" repeat="0" type="music" /><Timeline state="stopped" controllable="stop,playPause,shuffle" type="photo" /></MediaContainer>HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 0
Connection: keep-alive
Date: Sun, 27 Jul 2014 16:52:29 GMT
Access-Control-Allow-Methods: OPTIONS,HEAD,GET,POST,DELETE,PUT
Accept-Ranges: bytes
Access-Control-Max-Age: 1209600
Periodic Hellos
192.168.1.117 192.168.1.128 UDP 296 Source port: 46016 Destination port: 32413
HELLO * HTTP/1.0
Name: Roku 3500X
Port: 8324
Product: Plex for Roku
Content-Type: plex/media-player
Protocol: plex
Protocol-Version: 1
Protocol-Capabilities: timeline,playback,navigation
Version: 2.8.4
Resource-Identifier: 2L543E046394
Device-Class: stb
This is purely informational, perhaps someone is interested in creating a PI in the future.
Given the protocol is completely proprietary, I don't see a way to add it to the MediaController PI.
User Kideon found this link
https://forums.plex.tv/index.php/top...documentation/
Here are my Wireshark traces and some explanation
Discovery appears to be a broadcast to UDP dest ports 32414 and 32412
192.168.1.128 255.255.255.255 UDP 65 Source port: 32415 Destination port: 32414
M-SEARCH * HTTP/1.1
192.168.1.128 255.255.255.255 UDP 65 Source port: 32413 Destination port: 32412
M-SEARCH * HTTP/1.1
192.168.1.117 192.168.1.128 UDP 296 Source port: 59013 Destination port: 32413
With response
HELLO * HTTP/1.0
Name: Roku 3500X
Port: 8324
Product: Plex for Roku
Content-Type: plex/media-player
Protocol: plex
Protocol-Version: 1
Protocol-Capabilities: timeline,playback,navigation
Version: 2.8.4
Resource-Identifier: 2L543E046394
Device-Class: stb
So now the port is know to be 8324, now TCP GETs and POSTs to dest port 8324. The XPLEX client identifier looks like a UPNP UDN. Note that the Target CLient indentifier needs to be added to the header!
192.168.1.128 192.168.1.117 TCP 454 64313 > 8324
GET /player/timeline/subscribe?port=32400&commandID=0 HTTP/1.1
Host: 192.168.1.117:8324
Accept-Encoding: gzip, deflate
X-Plex-Target-Client-Identifier: 2L543E046394
Accept-Language: en-us
X-Plex-Device-Name: Dirk's iPhone
Accept: */*
Connection: keep-alive
X-Plex-Client-Identifier: 085DA3BE-8E9F-4B13-954F-560D4E1D0067
User-Agent: Plex/3.4.2 CFNetwork/672.1.15 Darwin/14.0.0
Response
HTTP/1.1 200 OK
Date: Sun, 27 JUL 2014 16:52:28 GMT
Server: Plex
Connection: close
Content-Length: 0
Content-Type: text/html
Accept-Ranges: bytes
192.168.1.128 192.168.1.117 TCP 66 [TCP Window Update] 32400 > 36996
POST /:/timeline HTTP/1.1
User-Agent: Roku/DVP-5.5 (095.05E02025A)
Host: 192.168.1.128:32400
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/x-www-form-urlencoded
X-Plex-Platform: Roku
X-Plex-Version: 2.8.4
X-Plex-Client-Identifier: 2L543E046394
X-Plex-Platform-Version: 5.5 build 2025
X-Plex-Product: Plex for Roku
X-Plex-Device: Roku 3500X
X-Plex-Device-Name: Roku 3500X
X-Plex-Username: dcorsus
Content-Type: application/xml
Content-Length: 384
<MediaContainer location="navigation" commandID="0"><Timeline state="stopped" controllable="stop,stepBack,stepForward,seekTo,playPause" type="video" /><Timeline state="stopped" shuffle="0" controllable="stop,stepBack,stepForward,seekTo,playPause,shu ffle,repeat" repeat="0" type="music" /><Timeline state="stopped" controllable="stop,playPause,shuffle" type="photo" /></MediaContainer>HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 0
Connection: keep-alive
Date: Sun, 27 Jul 2014 16:52:29 GMT
Access-Control-Allow-Methods: OPTIONS,HEAD,GET,POST,DELETE,PUT
Accept-Ranges: bytes
Access-Control-Max-Age: 1209600
Periodic Hellos
192.168.1.117 192.168.1.128 UDP 296 Source port: 46016 Destination port: 32413
HELLO * HTTP/1.0
Name: Roku 3500X
Port: 8324
Product: Plex for Roku
Content-Type: plex/media-player
Protocol: plex
Protocol-Version: 1
Protocol-Capabilities: timeline,playback,navigation
Version: 2.8.4
Resource-Identifier: 2L543E046394
Device-Class: stb
Comment