Git Product home page Git Product logo

plexdlnaplayer's Introduction

Plex DLNA Player

There is no built in way to cast plex music to DLNA speakers. This project will be the bridge.

Features

  • Use UPNP auto discovery to find your DLNA devices in LAN.
  • Use Plex GDM to notify Plex clients about the DLNA devices.
  • Connect your DLNA device to plex.tv and let the Plex clients which don't support GDM find your DLNA devices. eg, Plexamp.
  • Connect to your DLNA speakers with your Plex client's Select Player window.

Installation

Just clone this repo and run main.py with python. It's tested with python 3.9.

git clone https://github.com/songchenwen/plexdlnaplayer.git
cd plexdlnaplayer
python3 main.py

Docker

It's recommended to use this project in docker.

Note: It can only run with host network mode, due to udp broadcasting by UPNP and Plex GDM discovery.

docker run -d \
  --name=plexdlnaplayer \
  --network host \
  --restart unless-stopped \
  -v <path to data>:/config
  ghcr.io/songchenwen/plexdlnaplayer

Configuration

This project is configured with pydantic settings.

Environment Variables

Env Description Default
HTTP_PORT The port for the http server 32488
HOST_IP IP of this host. Plex client will use http://HOST_IP:HTTP_PORT to connect to your DLNA devices Auto Guess
ALIASES Preferred DLNA device names, looks like this uuid:name1,ip:name2,origin_name:name3 Empty
LOCATION_URL The location url of your DLNA device. Setting this env will disable DLNA device auto discovery None
CONFIG_PATH In where to store the persistent data. /config

Normally, you don't need to configure any of these environment variables.

Data Persistence

If you need data persistence with docker, you need to map /config to some location in your host. Data persistence will only be needed if you use the following features.

  • Use Plexamp as controller instead of Plex.
  • Edit device alias in the web page, instead of using environment variables.

Web Configuration

Go to http://HOST_IP:HTTP_PORT to manage your DLNA devices. In this page you can link your DLNA devices to your plex.tv account and edit the display name of them.

Because Plexamp don't support GDM discovery. You need to link your device to your account to use Plexamp as the controller.

Yeah, I know, Plexamp has the better play queue support.

Details

Any discovery of a new compatible DLNA device will start a new thread looping for its status.

Plex client uses the new subscribing method to get the player's status, while Plexamp uses the old inefficient polling way. In this case, using Plexamp with this project will certainly consume more resources.

DLNA devices can vary in functions. These differences will affect us most on the auto next part, which is where one track ends and we auto start playing the next track. If you find your device is unable to auto start the next track, please try to edit the check_auto_next function in plex/adapters.py. Pull request is always welcome.

TODO

  • A virtual device to play music with all the available DLNA speakers in sync.

plexdlnaplayer's People

Contributors

songchenwen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

plexdlnaplayer's Issues

Can't skip tracks or play new ones, only pause, forward/rewind works

First of all thanks for this project :)

I'm having a few issues however. Things work somewhat so far, I can play a song and it also plays to the end as it should.
However I can't skip nor play a new song, pausing sometimes is a bit iffy, skipping forward/backwards also works fine. Plexamp (on iOS) shows the progress of the song, but starting a new one also shows the progress of the old song on the new song.

I'm using HiFiBerry OS as the receiver, if that matters. Thanks for your help already!

EDIT: On the Plex Webinterface it only works when I press "Stop" on each track first, then play the next one. However there the progress doesn't work at all.

dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'

Hi, I stumble upon your project, I manage to install and authorize my amp a Maratnz MCR-611. Plex Web see the amp but I can't get sound out of it it tell me Reading Problem on the web and this in terminal:

INFO: Started server process [28727]
INFO: Waiting for application startup.
dlna discover connected
INFO: Application startup complete.
got new dlna deviec location url http://192.168.1.1:1990/8e3b870d-61e4-44ec-bdaf-32ade8f361bd/WFADevice.xml
got new dlna deviec location url http://192.168.1.1:60000/076968b8/gatedesc.xml
INFO: Uvicorn running on http://0.0.0.0:32488 (Press CTRL+C to quit)
got new dlna deviec location url http://192.168.1.25:8080/description.xml
got new dlna device from Marantz M-CR611
init adapter for Marantz M-CR611 in thread MainThread
Marantz M-CR611 state start looping
state loop Marantz M-CR611 begin in Dlna State Thread Marantz M-CR611
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
sub dlna device Marantz M-CR611 urn:schemas-upnp-org:service:AVTransport:1
dlna Marantz M-CR611 GetVolume control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetTransportInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetMute control error AttributeError 'ClientResponse' object has no attribute 'status_code'
got new dlna deviec location url http://192.168.1.11:32469/DeviceDescription.xml
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
got new dlna deviec location url http://192.168.1.22:80/description.xml
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetTransportInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetVolume control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna Marantz M-CR611 GetPositionInfo control error AttributeError 'ClientResponse' object has no attribute 'status_code'
^CINFO: Shutting down
INFO: Waiting for application shutdown.
INFO: ASGI 'lifespan' protocol appears unsupported.
INFO: Application shutdown complete.
INFO: Finished server process [28727]
Marantz M-CR611 state loop Marantz M-CR611 stopped
dlna Marantz M-CR611 Stop control error AttributeError 'ClientResponse' object has no attribute 'status_code'

Could you help me?

Plexamp playback stopped issue

Using Plexamp app casts to plexdlnaplayer. If Plexamp app went to background, or phone slept, plexdlnaplayer playback will stop after current track or after next track. I need to go to Plexamp app and select a track to start playback again. Is this expected behavior?

Plexamp casts to Google Chromecast can play continues even Plexamp app in background or phone in sleep.

plexdlnaplayer lost connection to UPnP renderer | device uuid not found

I was playing music from plexamp (Android) via plexdlnaplayer for a couple of hours until it just stopped.

What I can see is that the UPnP device has disappeared from plexdlnaplayer:
image

plexdlnaplayer logs say:
device uuid not found c27ad14a-044d-de4e-5781-e45f017832d3

After this happened I tried connecting directly to the UPnP renderer via Airmusic (Android app), the connection worked, and I could play music from the same phone.

After restarting the plexdlnaplayer container all worked again:

plexdlnaplayer  | INFO:     Started server process [1]                                                                                               
plexdlnaplayer  | INFO:     Waiting for application startup.                                                                                         
plexdlnaplayer  | INFO:     Application startup complete.                                                                                            
plexdlnaplayer  | INFO:     Uvicorn running on http://0.0.0.0:32488 (Press CTRL+C to quit)                                                           
plexdlnaplayer  | dlna discover connected                                                                                                            
plexdlnaplayer  | got new dlna deviec location url http://10.10.10.87:40000/device.xml                                                               
plexdlnaplayer  | guessed host ip 10.10.10.10                                                                                                        
plexdlnaplayer  | INFO:     10.10.10.241:51733 - "GET / HTTP/1.1" 200 OK                                                                             
plexdlnaplayer  | INFO:     10.10.10.241:51733 - "GET /favicon.ico HTTP/1.1" 404 Not Found                                                           
plexdlnaplayer  | INFO:     10.10.10.241:51733 - "GET /favicon.ico HTTP/1.1" 404 Not Found                                                           
plexdlnaplayer  | INFO:     10.10.10.241:51733 - "GET / HTTP/1.1" 200 OK                                                                             
plexdlnaplayer  | INFO:     10.10.10.241:51733 - "GET /favicon.ico HTTP/1.1" 404 Not Found                                                           
plexdlnaplayer  | got new dlna deviec location url http://10.10.10.21:49152/uuid-c27ad14a-044d-de4e-5781-e45f017832d3/description.xml                
plexdlnaplayer  | got new dlna device from moody UPNP                                                                                                
plexdlnaplayer  | init adapter for moody UPNP in thread MainThread                                                                                   
plexdlnaplayer  | moody UPNP state start looping                                                                                                     
plexdlnaplayer  | state loop moody UPNP begin in Dlna State Thread moody UPNP                                                                        
plexdlnaplayer  | sub dlna device moody UPNP urn:schemas-upnp-org:service:AVTransport:1                                                              
plexdlnaplayer  | ignoring notice no info                                                                                                            
plexdlnaplayer  | INFO:     10.10.10.21:47192 - "NOTIFY /dlna/callback/c27ad14a-044d-de4e-5781-e45f017832d3 HTTP/1.1" 200 OK                         
plexdlnaplayer  | moody UPNP state change notified {'elapsed': 162000, 'old': {'elapsed': 0, 'current_uri': None, 'current_track_duration': None, 'state': None, 'volume': None, 'muted': None}, 'current_uri': 'http://10.10.10.208:42899/AirMusic.LPCM', 'current_track_duration': 0, 'state': 'PLAYING', 'volume': 37, 'muted': '0'}                                                                                             

bind to device page doesn't seem to work properly

With the patch in my PR, I'm able to connect to my HEOS, and play music to them. However I have two strange problems:

  1. Sometimes the devices show up on the list of remote playable things, sometimes they don't, it's kinda random and per-player. Sometimes only one of my Heos devices show up, sometimes all three.

  2. On the link webpage, it always shows them as unlinked. Is the linking persistent across restarts of the application? Even if I go and link one, when I reload the bind devices page, it shows everything unlinked, even if I'm currently playing to that device.

Almost working...

Very very interesting project. Plex becomes more and more competing as music service and this is exactly the missing link for real Plexamp usage at home. I got this almost working with docker, Plex, all properly linked and player visible within the Plex app.

Sadly as soon as I try to play a file on Plex side:

dlna xCORE USB Audio SetAVTransportURI control error AttributeError 'ClientResponse' object has no attribute 'status_code'
dlna xCORE USB Audio Play control error AttributeError 'ClientResponse' object has no attribute 'status_code'

I tried various modifications hoping it was a network or docker config issue but no luck so far (is there a chance?). My DLNA device have been tested and work perfectly when I try to stream with other apps. I tried to investigate the implementation of the DLNA device itself but it really get too technical for me to suggest anything...

it's a LMS/Squeeze endpoint

<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>
<friendlyName>xCORE USB Audio 2.0</friendlyName>
<manufacturer>Logitech</manufacturer>
<manufacturerURL>http://www.mysqueezebox.com</manufacturerURL>
<modelDescription>Logitech Media Server UPnP/DLNA Plugin</modelDescription>
<modelName>Squeezebox</modelName>
<modelNumber>1</modelNumber>
<modelURL>http://www.slimdevices.com</modelURL>
<serialNumber>5a:32:a8:b8:65:4b</serialNumber>
<UDN>uuid:751A3305-F248-1F5C-3110-7B964AD4FFEE</UDN>
<iconList>
<icon>...</icon>
<icon>...</icon>
<icon>...</icon>
<icon>...</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<SCPDURL>/plugins/UPnP/MediaRenderer/RenderingControl.xml</SCPDURL>
<controlURL>
/plugins/UPnP/MediaRenderer/RenderingControl/control?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</controlURL>
<eventSubURL>
http://192.168.1.85:37293/plugins/UPnP/MediaRenderer/RenderingControl/eventsub?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<SCPDURL>/plugins/UPnP/MediaRenderer/ConnectionManager.xml</SCPDURL>
<controlURL>
/plugins/UPnP/MediaRenderer/ConnectionManager/control?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</controlURL>
<eventSubURL>
http://192.168.1.85:37293/plugins/UPnP/MediaRenderer/ConnectionManager/eventsub?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<SCPDURL>/plugins/UPnP/MediaRenderer/AVTransport.xml</SCPDURL>
<controlURL>
/plugins/UPnP/MediaRenderer/AVTransport/control?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</controlURL>
<eventSubURL>
http://192.168.1.85:37293/plugins/UPnP/MediaRenderer/AVTransport/eventsub?player=5a%3A32%3Aa8%3Ab8%3A65%3A4b
</eventSubURL>
</service>
</serviceList>
<presentationURL>http://192.168.1.85:9000</presentationURL>
</device>
</root>

plexdlnaplayer going crazy

In my setup, plexdlnaplayer will often go crazy with tons of (repeating) message on console. It seems something trigger plexdlnaplayer to keep trying/testing (?) connection. In this crazy situation, actual playback doesn't work. I need to quit the script and re-run, then quickly start playback from Plex client and hope it will work.

Below is console message. IP 192.168.0.100 is my Plex server address. LUMIN is my UPnP renderer.

C:\Users\Paper\plexdlnaplayer>python main.py
?[32mINFO?[0m: Started server process [?[36m39512?[0m]
?[32mINFO?[0m: Waiting for application startup.
dlna discover connected
?[32mINFO?[0m: Application startup complete.
?[32mINFO?[0m: Uvicorn running on ?[1mhttp://0.0.0.0:32488?[0m (Press CTRL+C to quit)
got new dlna deviec location url http://192.168.0.100:8080/upnpd/765f33c55b.xml
got new dlna deviec location url http://192.168.0.1:1900/igd.xml
got new dlna deviec location url http://192.168.0.111:8008/ssdp/device-desc.xml
got new dlna deviec location url http://192.168.0.111:9080
got new dlna deviec location url http://192.168.0.1:49152/wps_device.xml
got new dlna deviec location url http://192.168.0.114:60006/upnp/desc/aios_device/aios_device.xml
got new dlna deviec location url http://192.168.0.118:23000/
got new dlna device from LUMIN:LUMIN
init adapter for LUMIN:LUMIN in thread MainThread
LUMIN:LUMIN state start looping
socket reuse failed module 'socket' has no attribute 'SO_REUSEPORT'
dlna subscribe no host ip
state loop LUMIN:LUMIN begin in Dlna State Thread LUMIN:LUMIN
LUMIN:LUMIN state change notified {'current_uri': 'https://14-198-45-114.e567a65d157e417b83be197a9b88cfe3.plex.direct:20905/library/parts/293722/1660209143/file.dsf?X-Plex-Token=transient-2a507724-b094-4e7d-b5fc-5ec50920eda1', 'old': {'current_uri': None, 'current_track_duration': None, 'state': None, 'volume': None, 'muted': None}, 'current_track_duration': 0, 'state': 'STOPPED', 'volume': 100, 'muted': 'false'}
got new dlna deviec location url http://192.168.0.102:1305/dev/dbd8e26f-c633-bc80-ffff-ffffc893b8c3/desc.xml
got new dlna deviec location url http://192.168.0.102:1305/dev/dbd8e26f-c633-bc80-ffff-ffffb2e61307/desc.xml
got new dlna deviec location url http://192.168.0.1:49153/wps_device.xml
guessed host ip 192-168-0-100.ae8f4c041ec84e4c95f3d5400ca6b4ce.plex.direct
?[32mINFO?[0m: 192.168.0.100:40000 - "?[1mGET /player/timeline/poll?commandID=0 HTTP/1.1?[0m" ?[32m200 OK?[0m
http://192-168-0-100.ae8f4c041ec84e4c95f3d5400ca6b4ce.plex.direct:32400/player/timeline/poll?commandID=0&wait=1 used 0:00:10.003749
?[32mINFO?[0m: 192.168.0.100:40002 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
http://192-168-0-100.ae8f4c041ec84e4c95f3d5400ca6b4ce.plex.direct:32400/player/timeline/poll?commandID=0&wait=1 used 0:00:10.017208
?[32mINFO?[0m: 192.168.0.100:40005 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
sub dlna device LUMIN:LUMIN urn:schemas-upnp-org:service:AVTransport:1
http://192-168-0-100.ae8f4c041ec84e4c95f3d5400ca6b4ce.plex.direct:32400/player/timeline/poll?commandID=0&wait=1 used 0:00:10.014325
?[32mINFO?[0m: 192.168.0.100:40007 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40011 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40013 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40015 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40017 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40019 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40021 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40023 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40025 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40027 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40029 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40031 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40033 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40035 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40037 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40039 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40041 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40043 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40045 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40047 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40049 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40051 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40053 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40055 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40057 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40064 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40065 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40067 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40069 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40071 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40073 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40075 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40077 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40079 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40081 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40083 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40085 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40087 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40089 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40091 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40093 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40095 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40097 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40099 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40101 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40103 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40105 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40107 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40109 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40111 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40113 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40115 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40117 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40119 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40121 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40123 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40125 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40127 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40129 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40131 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40133 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40135 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40137 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40139 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40141 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40143 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40145 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40147 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40149 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40151 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40153 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40155 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40157 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40159 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40161 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40163 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40165 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40167 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40169 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40171 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40173 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40175 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40177 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40179 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40181 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40183 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40185 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40187 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40189 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40191 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40193 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40195 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40197 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40199 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40201 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40203 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40205 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40207 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40209 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40211 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40213 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40215 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40217 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40219 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40221 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40223 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40225 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40227 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40229 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40231 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40233 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40235 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40237 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40239 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40241 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40243 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40245 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40247 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40249 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40251 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40253 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40255 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40257 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40259 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40261 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40263 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40265 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40267 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40269 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40271 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40273 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40275 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40277 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40279 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40281 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40283 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40285 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40287 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40289 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40291 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40293 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40295 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40297 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40299 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40301 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40303 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40305 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40307 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40309 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40311 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40313 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40315 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40317 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40319 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40321 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40323 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40325 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40327 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40329 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40331 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40333 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40335 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40337 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40339 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40341 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40343 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40345 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40347 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40349 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40351 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40353 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40355 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40357 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40359 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40361 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40363 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40365 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40367 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40369 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40371 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40373 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40375 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40377 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40379 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40381 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40383 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40385 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40387 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40389 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40391 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40393 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40395 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40397 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40399 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40401 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40403 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40405 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40407 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40409 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40411 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40413 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40415 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40417 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40419 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40421 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40423 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40425 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40427 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40429 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40431 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40433 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40435 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40437 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40439 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40441 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40443 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40445 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40447 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40449 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40451 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40453 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40455 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40457 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40459 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40461 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40463 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40465 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40467 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40469 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40471 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40473 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40475 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40477 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40479 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40481 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40483 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40485 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40487 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40489 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40491 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40493 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40495 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40497 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40499 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40501 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40503 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40505 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40507 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40509 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40511 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40513 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40515 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40517 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40519 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40521 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40523 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40525 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40527 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40529 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40531 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40533 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40535 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40537 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40539 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40541 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40543 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40545 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40547 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40549 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40551 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40553 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40555 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40557 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40559 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40561 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40563 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40565 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40567 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40569 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40571 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40573 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40575 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40577 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40579 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40581 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40583 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40585 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40587 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40589 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40591 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40593 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40595 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40597 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40599 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40601 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40603 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40605 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40607 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40609 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40611 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40613 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40615 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40617 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40619 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40621 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40623 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40625 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40627 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40629 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40631 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40633 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40635 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40637 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40639 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40641 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40643 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40645 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40647 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40649 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40651 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40653 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40655 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40657 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40659 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40661 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40663 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40665 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40667 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40669 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40671 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40673 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40675 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40677 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40679 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40681 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40683 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40685 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40687 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40689 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40691 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40693 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40695 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40697 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40699 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40701 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40703 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40705 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40707 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40709 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40711 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40713 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40715 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40717 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40719 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40721 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40723 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40725 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40727 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40729 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40731 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40733 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40735 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40737 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40739 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40741 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40743 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40745 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40747 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40749 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40751 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40753 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40755 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40757 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40759 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40761 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40763 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40765 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40767 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40769 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40771 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40773 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40775 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40777 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40779 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40781 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40783 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40785 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40787 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40789 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40791 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40793 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40795 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40797 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40799 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40801 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40803 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40805 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40807 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40809 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40811 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40813 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40815 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40817 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40819 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40821 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40823 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40825 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40827 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40829 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40831 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40833 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40835 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40837 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40839 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40841 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40843 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40845 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40847 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40849 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40851 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40853 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40855 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40857 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40859 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40861 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40863 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40865 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40867 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40869 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40871 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40873 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40875 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40877 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40879 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40881 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40883 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40885 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40887 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40889 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40891 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40893 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40895 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40897 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40899 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40901 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40903 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40905 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40907 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40909 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40911 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40913 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40915 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40917 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40919 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40921 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40923 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40925 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40927 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40929 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40931 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40933 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40935 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40937 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40939 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40941 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40943 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40945 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40947 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40949 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40951 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40953 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40955 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40957 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40959 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40961 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40963 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40965 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40967 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40969 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40971 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40973 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40975 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40977 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40979 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40981 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40983 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40985 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40987 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40989 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: 192.168.0.100:40991 - "?[1mGET /player/timeline/poll?commandID=0&wait=1 HTTP/1.1?[0m" ?[32m200 OK?[0m
?[32mINFO?[0m: Shutting down
?[32mINFO?[0m: Waiting for application shutdown.
LUMIN:LUMIN real update state from sub STOPPED None 0
LUMIN:LUMIN real update state from sub in lock STOPPED None 0
LUMIN:LUMIN state change notified {'current_uri': None, 'old': {'current_uri': 'https://14-198-45-114.e567a65d157e417b83be197a9b88cfe3.plex.direct:20905/library/parts/293722/1660209143/file.dsf?X-Plex-Token=transient-2a507724-b094-4e7d-b5fc-5ec50920eda1'}}
LUMIN:LUMIN state loop LUMIN:LUMIN stopped
?[31mERROR?[0m: Traceback (most recent call last):
File "C:\Python310\lib\site-packages\starlette\routing.py", line 635, in lifespan
async with self.lifespan_context(app):
File "C:\Python310\lib\site-packages\starlette\routing.py", line 533, in aexit
await self._router.shutdown()
File "C:\Python310\lib\site-packages\starlette\routing.py", line 622, in shutdown
await handler()
File "C:\Users\Paper\plexdlnaplayer\plex\plexserver.py", line 100, in on_shutdown
await asyncio.gather(stop_tasks)
File "C:\Users\Paper\plexdlnaplayer\dlna\dlna_device.py", line 274, in remove_self
await sub_man.notify_device_disconnected(self)
File "C:\Users\Paper\plexdlnaplayer\plex\subscribe.py", line 145, in notify_device_disconnected
asyncio.create_task(asyncio.gather(
[self.remove_subscriber(sub.uuid, target_uuid=device.uuid) for sub in subs]))
File "C:\Python310\lib\asyncio\tasks.py", line 337, in create_task
task = loop.create_task(coro)
File "C:\Python310\lib\asyncio\base_events.py", line 438, in create_task
task = tasks.Task(coro, loop=self, name=name)
TypeError: a coroutine was expected, got

?[31mERROR?[0m: Application shutdown failed. Exiting.
?[32mINFO?[0m: Finished server process [?[36m39512?[0m]
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x0000025815496E90>

C:\Users\Paper\plexdlnaplayer>

Need help with installation on Synology

Hi,

  1. I have installed through docker and the docker image is running

  2. I have mapped all three local ports in the docker image settings: UDP 1910, UDP 32412, TCP 32488

  3. I can run the web config page at :32488 but I see an empty list. None of my network DLNA speakers are listed there.

Screenshot 2023-09-10 at 2 07 27 PM

QUESTIONS:

a. how do I get my speakers discovered?

b. how exactly do I map the /config to use persistence? Here is what I did, created a folder /docker/plexdlna and mapped it to /config. Is that what is required?

Screenshot 2023-09-10 at 2 11 01 PM

thanks

Doesn't seem to want to stream to an Audiocast device

I'm trying to use Plexamp to stream to an Audiocast device without success.

I have linked the device using the web UI and it successfully shows up in the list of devices in Plexamp. Unfortunately switching to it is a 50/50 shot at connecting, Once it is connected no audio plays when starting playback - the playback position in Plexamp counts up to 10 and then resets to 0.

The logs seem to have quite a lot in but this is something that may be useful?

INFO:     192.168.11.116:62458 - "GET /player/timeline/poll?wait=1&includeMetadata=1&commandID=48&type=music HTTP/1.1" 200 OK


get queue https://192-168-11-17.TOKEN.plex.direct:32400/playQueues/350?own=1&X-Plex-Token=transient-TOKEN


Study Speakers state change notified {'state': 'TRANSITIONING', 'old': {'state': 'STOPPED'}}


http://192.168.11.17:32488/player/timeline/poll?wait=1&includeMetadata=1&commandID=49&type=music used 0:00:03.417354


INFO:     192.168.11.116:62458 - "GET /player/timeline/poll?wait=1&includeMetadata=1&commandID=49&type=music HTTP/1.1" 200 OK


Study Speakers state change notified {'state': 'STOPPED', 'old': {'state': 'TRANSITIONING'}}


dlna Study Speakers Seek control error ClientOSError [Errno None] Can not write request body for http://192.168.11.128:49152/upnp/control/rendertransport1

HEOS dosn't work

It discovered my heos devices, as well as a few others like my stereo, and my TV's, but nothing was listed on the web page as linkable.

What is it looking for in the XML to decide if a speaker is a playable target? Would providing you the xml files assist in making this work?

Looked like a good idea, but I'm missing some help to get started...

Hi guys,
this one really looked good, and for a short moment, I could see my desired player.
But then I stopped the python, and now it's not working anymore. Not at all, not even after reinstallation.
Maybe, I'm weak on the concept (and of course on programming, python debugging and ubuntu), but basically experienced in any IT matter, so here's the story:

I'm running plex server on ubuntu 20.04 (server) as a virtual machine on my qnap nas.
Works fine for the moment, quick, streamlined, as it should. Plex clients easily access and get the media quickly. Should purely act as a headless server.
But I want to stream to DNLA hardware (as most here).
So, I cloned the github and added (pip3) all the modules that it stated to miss (try and error, one by one).
For JUST ONE TIME, the thing came up, offered my DNLA for registration in the web page, I did so, and for once, the player was visible in my plex environment.
Then, I did the mistake to stop the script. The player disappeared.
OK, so I figured out that the script should be permanently running when the server will be up.
But, doing so, the player did not reappear, the web page ran into internal server error, end of the show.
I flipped back the snapshot of the virtual machine to repeat the exercise of installing and getting access to my players successfully before stopping the srcipt. But this does not work.
The player was visible once again in the registration screen, plex.tv/link accepted it, but it did not appear as a player in plex.
The server page (port 32488) offers "Server error", without saying anything further.

So, here's the questions:
1.) What do I need to do to get a stable installation of the script in ubuntu 20.04 server? Is there a better context to install and run than in my user directory?
2.) Does this script need to be running all the time when the server will be up?
3.) What will happen, if the server as such is being shut down / restarted? Will I need to re-register all my devices manually again?

The deal is:
If there will be a solution, I'll be glad to document it in the sense of writing an installation article for less advanced users for wiki.
I'm glad to assist for testing.

Cheers!

FrankSausF

P.S.: Docker is out of the question for me. I'm fine with virtual machines.
I've tried it, and Docker Station shot the network configuration of my NAS in a way that I really poured some sweat to get basic control of the device again without erasing all users.

Need some help with a manual installation

So far I have only used this via the docker image, but I now need to run it on a Raspberry Pi zero where resources are scarce, so I tried manually:


git clone https://github.com/songchenwen/plexdlnaplayer.git
cd plexdlnaplayer
python3 main.py

yields this error:

python3 main.py 
Traceback (most recent call last):
  File "/home/ovi/plexdlnaplayer/main.py", line 1, in <module>
    from plex.plexserver import start_plex_server
  File "/home/ovi/plexdlnaplayer/plex/__init__.py", line 1, in <module>
    from .plexserver import plex_server
  File "/home/ovi/plexdlnaplayer/plex/plexserver.py", line 2, in <module>
    from fastapi import FastAPI, Request, Header, Query, HTTPException, Form
ModuleNotFoundError: No module named 'fastapi'

python3 is already the newest version (3.9.2-3)

Any ideas? I am now trying "pip install fastapi " but if I need additional modules should this not be mentioned somewhere?

So close but no luck (i.e. sound) yet

I love the idea, but I just can't get any player to actually play music. The page on port 32488 shows up, linking works, just as confirming the link (already linked). Plex sees the players, I can connect or so it seems --- but then, nothing happens. I keep seeing the famous little spinning wheel spsinning forever, but no player will really connect and play music or even be controlled.

I've fiddled with every possible firewall setting on my Synology (from where I run the docker). I am on the host-network, tried every multicast setting in my router on or off, snooping etc etc. I feel I am very close, but it just won't happen. Perhaps anyone here has a brigth idea? I would really appreciate it.

Thanks, Tigo

Really promising - some suggestions

I've been looking for something like this for years (ability to stream direct from Plex to DLNA (specifically my Heos Denon amp). The mods that Garbled1 suggests make it work really well. So thanks !!

Some suggestions if you were thinking of investing any more effort:

  1. could the track metadata (artist / album / coverart) somehow be preserved through the bridge as it's currently not showing. I'm by no means an expert but is this something to do with DiDL if the stream is converted by the bridge?
  2. the docs don't explicitly say this is Linux only - but as uvloop isn't available on Windows and it appears to be a prereq I assume this is the case. Would it work on Windows if asyncio was quick enough ?
  3. I had hoped to run this in a VM (not docker) which has two network adapters. I tried experimenting with HOST_IP in settings but this doesn't appear to restrict the discovery to the correct adapter, it always seems to be performed on the primary adapter and fails to discover devices connected to the secondary adapter.
  4. The additional DLNA endpoints created don't appear to be available for selection in the Plex Alexa skill (at least not within a short time window) - this is probably well beyond our control but my goal was to be able to ask Alexa "Ask Plex to play 'Deacon Blue' on Denon". So close to being able to achieve this!!

Thanks for all your effects, This kind of feature should have been included in Plex directly, but their support for DLNA is lack-lustre at best - and this is really useful.

gapless support?

Thanks for the great work! Just tried this and it actually works! Tested streaming from 44.1 to 192khz and DSD64/128 and even MQA works! Great job!!!

The only thing missing is gapless playback between tracks. Could it be possible to add gapless playback? Or is there something I can edit in adapters.py to enable the function?

Thanks!

track randomly skipped

hi songchenwen,

Great piece of software !

playing from local server seems fine. But when playing from shared remote server, it will randomly skip tracks.

Let's say an album with 10 tracks, it will randomly skip 2 or 3 tracks. If I manually play the skipped track again , it always works.

It seems when the next track start, it timeout and jump to next track .

If there is some timeout or delay value between tracks I can adjust in the script, it may solve my problem !

My test is using web client.

Thanks !

Not playing chosen source through UPnP endpoint

This is completely awesome. Thank you so much for getting this rolling @songchenwen.

I have a PMS with a bunch of music and I also have a raspberry pi running moOde which (among many other fabulous things) advertises itself as a UPnP player connected to my hifi gear.

I put up plexdlnaplayer via docker (on the same ubuntu host where my PMS server is running) and it all seems to work. I brought the container up and all looked good. I went to the “Bind Device” page where it saw the moOde UPnP endpoint. I went to plex.tv/link and bound the device.

Next I went into both a plex web client and plexamp and both listed the moOde UPnP player as a device to cast to.

In both cases, if I try to stream a track, it doesn’t play through moOde. However, the play/pause button on the plex / plexamp client DOES control playback on moOde. Rather than playing the selected plex track, initiating play or pause via Plex will cause whatever was previously in the queue in moOde to play / pause.

This seems soooooo close to a solution I’ve been thinking about for a while now to let me have my preferred UI (plexamp) for all my PMS-hosted music, but play it bit-perfect through my little pi streamer.

I can python. Anyone who’s already dug into the code here have any ideas where I can look to start trying to figure out why plex is able to control the player but not successfully queue up any music?

I’ll take down the docker container and put up a venv on the host so I can hack on the code.

Oppo UDP-203 issues

First of all, thank you @songchenwen for such an amazing piece of useful software!

I would love to use my Oppo UDP-203 as renderer for playing from Plexamp but I am not able to make it work. I installed plexdlnaplayer in a Synology NAS and linked the device. In Plexamp I can find the Oppo and even choose it but when hitting play button, play doesn't start.

I assume it won't be compatible but if someone had any experience with this equipment I would appreciate to get some support.

Thanks!

Is this solution still working for anyone?

plexdlnaplayer has stopped working for me :-( could anyone still using it confirm whether it still works for them, so I know if it's something in my ecosystem which stopped working.

it runs just fine, I can access its web interface and still see my dlna speaker still properly connected/linked but when opening plexamp I do no longer see it as a casting target.

I'm unaware of anything major having changed in my network except plex and plexamp got updates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.