This is the server component for my Remote Guide app for Windows Phone 8 and Windows 10. The app lets you browse the TV guide on your Media Center machine, schedule recordings, set up series recordings, see what’s been recorded, what will be recorded and so on. The app does not feature streaming of program data at this time. I wrote this app mostly for my own pleasure and so that I could quickly set a program to record while I was out and about. Given that I work for a living, remote viewing of my recorded shows wasn’t a priority – watching TV can wait until I get home. This server app will only run on Windows 7 or Windows 8.1 (and Windows 10, if you're clever) with Media Center. It won't work on earlier versions of Windows. Sorry. It will, however, run properly on both 32-bit and 64-bit operating systems.
The app features secure communications between the phone and the server. Well, secure enough. While other folks may go on and on about their wonderful proprietary security schemes, I’m too smart to know that I’m not smart enough to invent an unbeatable security system. It is, however, good enough. Your password won’t be exposed, and the data going over the air is all encrypted. I’m sure that a determined enough hacker will figure out how to break the encryption, but I doubt anyone would really want to work that hard. Details of how it works can be seen here.
Installation of the server should be a snap: just copy the executable file to somewhere on your Media Center machine and run it. On Windows 8.1, you'll receive a warning that Windows has protected your PC because the app is unrecognized. Click 'more info', and then 'run anyway'. On Windows 7, you'll be prompted with a security warning. Uncheck the checkbox "Always ask before opening this file" and then click "Run". After you've passed the security warning, you'll then be prompted to elevate to administrative privileges. Enter the appropriate credentials so it can run as admin. The app will finally start up. It provides a simple interface for installing and configuring the service. When you first run it, you’ll see something like this:
The information about your IP address and host name will be filled in. If you’ve bought your own domain name, you’ll see that there. If not, you’ll probably see whatever your ISP has assigned to your IP address. If you have a dynamically assigned IP address, you’ll very likely want to go buy a domain name and then use one of the various free services out there to link your new domain name to your dynamic IP address.
To install the service, just click the Install button. Once installed, choose a port number (the default will likely work out fine) and give your server a password.
You should click the Test Connectivity button to confirm the server will be able to configure your home router properly. Most modern routers implement Universal Plug and Play (UPnP), a protocol which allows automatic configuration of router services. Unfortunately, most modern routers implement it very poorly, so your mileage may vary. If the connectivity test fails, it may mean you’ll need to manually configure your router to direct traffic on your chosen port back to your Media Center machine. If you have no idea what this means, well, you’re not going to have much luck with this product.
Once you’ve assigned a port and password, you can start the service. Once it’s running, you no longer need to have this UI running. The service will restart on its own if you should reboot the computer. Note that the service will automatically open the appropriate port in Windows Firewall and your router when the service starts. It’ll close those ports when the service is stopped (assuming, again, that UPnP is implemented correctly on your router).
Once your server is up and running, the next step is to install the app on your Windows Phone. Scan this with your Windows Phone to install the app:
You need to be running at least v8 of the phone operating system. Once the app is installed, start it up and then configure it to talk to your Media Center:
Just enter your server name (visible on the setup UI), the port number and password you chose, and you’re ready to go. After you've entered your server information, you can automatically set up Remote Wake for your computer. If your computer is set to put itself to sleep, the app can remotely wake it up so that you can still see the guide.
The main menu is the portal into the various features of the app:
This should be pretty self-explanatory from here. You can browse the guide, see what you’ve got set to record, what’s going to record in the near future, what you’ve got recorded, and the ability to search for programs by various keywords. Many of the listing pages feature context menus. Just press and hold a list item to see a quick list of things you can do. You can schedule programs to record right from the program details page:
Just push the single dot to record that show, or the triple fading dot to record the whole series. You can configure the series settings (say, what channels and times are permissible, whether you want first run only, etc.) by tapping the edit button or from the Requests page. Explore around and let me know how you like it.
One point of note: All times and dates displayed on the phone will be in the phone's timezone, not your server's timezone. So, if you happen to be travelling, the guide data you see will be local to where you are.
Download the server:
To update the version you're already running, you do NOT need to uninstall the service. Simply stop the service, quit the setup UI (if that's how you stopped the service), and copy the new version of the server app over your existing version. Then start the service back up again. That's it. Be sure to install the server version that matches your client version. Do not install a new server version unless you've installed that same client version on your phone. The server and client are tied together and cross-version functionality is expressly prevented.
On a related note, I've been having a heckuva time keeping the clock on my Media Center machine properly set. Windows is supposed to keep the clock in sync by itself, but for whatever reason, it is doing a rather poor job. I've found this service which will properly keep your clock synchronized. Hopefully, someday, Windows itself will properly implement this and the need for 3rd party solutions will vanish.