Struggling a bit with Plexconnect and Windows8(Trailers not available)

Hi Folks,

 

I appear to be getting the dreaded "Trailers Not available" error when trying to load "Trailers"

 

 

A few points:

 

1) I had to define my IP address as PlexConnect kept selecting an ip in the 10. non routable ip range which my ATV could not reach. (I'm guessing it couldn't detect it's host ip)

2) Logging doesn't appear to be working as I see no logs in the path i specified.

3) PlexGDM never appeared to try and do anything so I specified the IP again.

4) I have installed the profile on my ATV 

5) I had originally installed to c:\Program Files(x86) but I thought that maybe windows perms were causing issues to I moved the whole installation to d:\

 

Here is my output from the python window:

 

10:44:57 PlexConnect: ***
10:44:57 PlexConnect: PlexConnect
10:44:57 PlexConnect: Press CTRL-C to shut down.
10:44:57 PlexConnect: ***
10:44:57 PlexConnect: started: 10:44:57
10:44:57 PlexConnect: IP_self (from settings): 192.168.100.110
10:44:58 DNSServer: started: 10:44:58
10:44:58 DNSServer: ***
10:44:58 DNSServer: DNSServer: Serving DNS on 192.168.100.110 port 53.
10:44:58 DNSServer: intercept: ['trailers.apple.com'] => 192.168.100.110
10:44:58 DNSServer: restrain: ['mesu.apple.com', 'appldnld.apple.com', 'appldnld
.apple.com.edgesuite.net'] => 127.0.0.1
10:44:58 DNSServer: forward other to higher level DNS: 208.122.23.23
10:44:58 DNSServer: ***
10:44:58 WebServer: started: 10:44:58
10:44:58 WebServer: started: 10:44:58
10:45:02 WebServer: ***
10:45:02 WebServer: WebServer: Serving HTTP on 192.168.100.110 port 80.
10:45:02 WebServer: ***
10:45:02 WebServer: ***
10:45:02 WebServer: WebServer: Serving HTTPS on 192.168.100.110 port 443.
10:45:02 WebServer: ***
10:45:09 DNSServer: DNS request received!
10:45:09 DNSServer: Source: ('192.168.100.145', 59377)
10:45:09 DNSServer: Domain: trailers.apple.com
10:45:09 DNSServer: ***intercept request
10:45:09 DNSServer: -> DNS response: 192.168.100.110
10:46:19 DNSServer: DNS request received!
10:46:19 DNSServer: Source: ('192.168.100.145', 49666)
10:46:19 DNSServer: Domain: 34-courier.push.apple.com
10:46:19 DNSServer: ***forward request
10:46:19 DNSServer: -> DNS response from higher level
 

 

 

 

 

Here's my config file:

 

[PlexConnect]
 
port_pms = 32400
port_webserver = 80
ip_plexconnect = 192.168.100.110
certfile = D:\PlexConnect-master\assets\certificates railers.pem
ip_dnsmaster = 208.122.23.23
loglevel = Normal
enable_dnsserver = True
 
logpath = D:\PlexConnect-master\
ip_pms = 192.168.100.110
enable_plexgdm = False
hosttointercept = trailers.apple.com
port_ssl = 443
enable_webserver_ssl = True
prevent_atv_update = True
 
port_dnsserver = 53
enable_plexconnect_autodetect = False
 
I would greatly appreciate any assistance :)

Are you running VMWare or similar?

What version of Python are you running?

What firewall rules did you define for Python?

Hi F00b4r,

Sorry I wasn't more clear:

OS: Windows 8.1 x64 - Not Virtualized

Python - 2.7.6 x32

Windows Firewall settings for Python:
 

netsh advfirewall firewall> show rule python
 
Rule Name:                            python
---------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             UDP
LocalPort:                            Any
RemotePort:                           Any
Edge traversal:                       Defer to user
Action:                               Allow
 
Rule Name:                            python
---------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             TCP
LocalPort:                            Any
RemotePort:                           Any
Edge traversal:                       Defer to user
Action:                               Allow
Ok.
 
netsh advfirewall firewall>

Hmm looks to be in order.

I asked about VMWare because it can confuse the auto discovery, I was hoping to get you running a default configured PlexConnect so that logging was working.

Could you try installing a fresh copy to C:\ with everything default (just copy over the cert files) and see what output you get and if logging then works?

Sure thing,

I'd be happy to reinstall from scratch.

Just a few clarifying questions if that's ok.

1) You would like me to just extract the zip file from GIT hub to the Root of C. So C:\PlexConnect-master.

2) The official WIKI is unclear and there seems to be contradicting info on the internet, Do i need to install trailers.cer to my Windows Certificates store?

Once that's cleared up I'll do a fresh install :)

Thanks so much for being supportive!

1- yep

2 - just copy the cert files to the relevant PlexConnect folder (I think it is only the perm file you need but it means you have a copy of them all where you know they are that match the one on your ATV).

Okie dokie.

Installed to C:\

Logging now working.

Log:

13:23:12 PlexConnect: started: 13:23:12
13:23:12 Settings: getsetting enable_plexconnect_autodetect=True
13:23:12 PlexConnect: IP_self: 10.199.1.6
13:23:12 Settings: getsetting port_webserver=80
13:23:12 Settings: getsetting hosttointercept=trailers.apple.com
13:23:12 Settings: getsetting enable_dnsserver=True
13:23:12 DNSServer: started: 13:23:12
13:23:12 Settings: getsetting port_dnsserver=53
13:23:12 Settings: getsetting ip_dnsmaster=8.8.8.8
13:23:12 Settings: getsetting prevent_atv_update=True
13:23:12 DNSServer: ***
13:23:12 DNSServer: DNSServer: Serving DNS on 10.199.1.6 port 53.
13:23:12 DNSServer: intercept: ['trailers.apple.com'] => 10.199.1.6
13:23:12 DNSServer: restrain: ['mesu.apple.com', 'appldnld.apple.com', 'appldnld.apple.com.edgesuite.net'] => 127.0.0.1
13:23:12 DNSServer: forward other to higher level DNS: 8.8.8.8
13:23:12 DNSServer: ***
13:23:12 Settings: getsetting enable_webserver_ssl=True
13:23:12 WebServer: started: 13:23:12
13:23:12 Settings: getsetting port_webserver=80
13:23:12 WebServer: ***
13:23:12 WebServer: WebServer: Serving HTTP on 10.199.1.6 port 80.
13:23:12 WebServer: ***
13:23:12 ATVSettings: init class CATVSettings
13:23:12 ATVSettings: load settings
13:23:12 WebServer: started: 13:23:12
13:23:12 Settings: getsetting port_ssl=443
13:23:12 Settings: getsetting certfile=./assets/certificates/trailers.pem
13:23:12 Settings: getsetting certfile=./assets/certificates/trailers.pem
13:23:12 WebServer: ***
13:23:12 WebServer: WebServer: Serving HTTPS on 10.199.1.6 port 443.
13:23:12 WebServer: ***
 
Looking at the self_ip it shows: 10.199.1.6
The actual IP of my Windows 8.1 box is 192.168.100.110
 
My Apple TV cannot reach the self that is being selected, if I understand the logic correctly, shouldn't PlexConnect be detecting the IP of the windows 8.1 box and using that as it's self IP?
 
Here is my current config file:
 
[PlexConnect]
port_pms = 32400
port_webserver = 80
 
ip_plexconnect = 0.0.0.0
 
certfile = ./assets/certificates/trailers.pem
 
ip_dnsmaster = 8.8.8.8
loglevel = High
enable_dnsserver = True
logpath = .
ip_pms = 192.168.178.10
enable_plexgdm = True
hosttointercept = trailers.apple.com
port_ssl = 443
enable_webserver_ssl = True
prevent_atv_update = True
port_dnsserver = 53
enable_plexconnect_autodetect = True
 

Have you got some kind of VPN setup that is confusing the IP auto detection (the unblock-us DNS server is not being used in this configuration unless you have eg router rules set up)?

Yup, I did. and that was the issue.

Allow me to elaborate here for folks who are maybe less technically savvy who hit this issue.

The reason why F00B4r was asking if I was running VMWare or something similar (in my case Open VPN) is because of what those applications do and how plexconnect works.

Any virtualization platform (VMWARE, HyperV etc) or VPN platform (in my case Open VPN) will very likely install additional network adaptors to handle the virtual network needed for those programs to work.

Now you're asking me: "Br3akd0wn, why does that matter to me, and why is my Plex not working right?"

I'm getting to that part :)

I had mentioned that part of this was how plexconnect works, Here is the part of the plexconnect code that handles figuring out your IP :

def getIP_self():
    cfg = param['CSettings']
    if cfg.getSetting('enable_plexconnect_autodetect')=='True':
        # get public ip of machine running PlexConnect
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('1.2.3.4', 1000))
        IP = s.getsockname()[0]
        dprint('PlexConnect', 0, "IP_self: "+IP)
    else:
        # manual override from "settings.cfg"
        IP = cfg.getSetting('ip_plexconnect')
        dprint('PlexConnect', 0, "IP_self (from settings): "+IP)
    
    return IP
 
I know that the above is probably nonsense to those without programming experience so let me break it down to the important parts:
 
The code above basically means that PlexConnect is using Python to tell Windows "Hey give me a list of all your network adapters and i'll get my IP from there".
 
This line in in particular is what matters here:
 
IP = s.getsockname()[0]
 
What's happening here is that we are talking that "list" and setting the IP to be the first item in the list (Array index 0) represented by [0]
 
So now you are probably thinking ..... "Ok so I'm sort of following you... but what is this list you are talking about....."
 
Here's an example from my Windows Machine with non essential or personally identifying information stripped out:
 

c:\>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : Your Machine Name

   Primary Dns Suffix  . . . . . . . :

   Node Type . . . . . . . . . . . . : Hybrid

   IP Routing Enabled. . . . . . . . : No

   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :

   Description . . . . . . . . . . . : TAP-Win32 Adapter V9

   Physical Address. . . . . . . . . :

   DHCP Enabled. . . . . . . . . . . : Yes

   Autoconfiguration Enabled . . . . : Yes

   Link-local IPv6 Address . . . . . : fe80::2035:183:b8f5:a358%4(Preferred)

   IPv4 Address. . . . . . . . . . . : 10.199.1.6(Preferred)

   Subnet Mask . . . . . . . . . . . : 255.255.255.252

   Lease Obtained. . . . . . . . . . : December 14, 2013 1:03:14 AM

   Lease Expires . . . . . . . . . . : December 14, 2014 1:03:14 AM

   Default Gateway . . . . . . . . . :

   DHCP Server . . . . . . . . . . . : 10.199.1.5

   

   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :

   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller

   Physical Address. . . . . . . . . :

   DHCP Enabled. . . . . . . . . . . : No

   Autoconfiguration Enabled . . . . : Yes

   Link-local IPv6 Address . . . . . : fe80::b06e:94a6:1cd1:614%3(Preferred)

   IPv4 Address. . . . . . . . . . . : 192.168.100.110(Preferred)

   Subnet Mask . . . . . . . . . . . : 255.255.255.0

   Default Gateway . . . . . . . . . : 192.168.100.254

 
As you can see, I have 2 Ethernet Adapters, each with a different IP address.  The bolded items are what Python is what python is putting in that "List" I keep talking about.

Here is what that list would look like:

item 0: 10.199.1.6
item 1: 192.168.100.110
 
(The first item is numbered 0 because most programming languages begin an Array index at 0)
 
So if you notice in my earlier log the Self_IP that was selected is infact the first item on the list:
 
13:23:12 PlexConnect: IP_self: 10.199.1.6
 
Which for me was bad, because my server's ACTUAL ip address was item number 1 in the list, not 0.
 
If you are having a similar problem the solution is simple:
 
1) Set the following items in your settings.cfg file (preferred if you want to leave your applications installed):
     - ip_plexconnect = (ex: ip_plexconnect = 192.168.100.110)
     - enable_plexconnect_autodetect = False (This tells plexconnect to use the IP you specified instead of pulling it from the "list")
 
2) You can uninstall the app that installed the additional network adatper
 
Hope this helps someone in the future! Big thanks to F00b4r for replying to the thread with advice!

Glad you got it working and a good breakdown of the issue.
Those settings were specifically added to help in that type of situation, although most users should just start with the default setup.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.