Can’t browse media via the web interface when running TwonkyServer on port 80

You can’t browse media via the web interface if the Twonky Server, which usually runs on port 9000, is instead mapped to port 80. The view comes up empty, because the request fails due to some processing happening in the client JavaScript code.

In browse.js, around lines 1212-1215 at the start of the httpGet function, there is a statement:

    var i = urlin.indexOf(":", 5),
     url = '';
    if (i < 1) {

This is looking for the port number section of the URL. Unfortunately when running on port 80, this is implied and therefore missing. It happens to work fine up until the point where the path part of the URL contains a colon, which it does later in the process of querying your server’s contents.

The URL it fails on is something like:

http://myserver/nmc/rss/server/RBuuid:55076f6e-6b79-4d65-6497-60a44c3e1361,0?start=0&fmt=json

I’ve fixed it by simply checking if the colon we found is beyond the first forward slash (/) after the “http://” part. As we are looking for the port number, if it exists it will only be before that slash.

To make the patch, open up “resources\webbrowse\browse.js” under the location you installed the server to, which on Windows is by default:

C:\Program Files (x86)\Twonky\TwonkyServer\resources\webbrowse\browse.js

Replace:

    if (i < 1) {

…with this:

    var j = urlin.indexOf("/", 7);
    if (i < 1 || i > j) {

I’ve tested it and it solves my problem. Hopefully it will work for others too!

Leave a Reply