Media Control Point

Hello all,

Before asking my question, I’ll provide a little info on the situation which might make things slightly easier to follow. I’ve been using OH for years and frankly have never encountered anything as flexible or as powerful when it comes to “connecting odd bits together”. Everything from my alarm system to my coffee makers to my awning and even air conditioning are controlled via OH. I have no fear of a soldering iron, an IDE or a compiler for that matter.

The situation: In my lounge I have a Samsung TV with Ethernet, DLNA support. Connected to it is a hifi system with awesome sound but little in the way of “network interfaces”. When I’m doing things I like a bit of music, all of which is available by means of UPnP/DLNA, SMB, NFS, whatever fits the bill for a certain application.

The problem(s): The TV has a working DLNA browser which it can use to play back music, pictures and videos. This works fine (I’m only interested in music/videos, though). Although I can control the TV via the network using OH (or simply pick up the remote) it’s a tedious interface which requires either creating playlists (VERY tedious) or manually browsing around constantly in the case of music. Fine if you’re lying on the sofa, not so nice when you have a vacuum cleaner in your other hand.
What I want is to be able to do is similar to the “Play To” function found in Windows Media Player, e.g. I want to be able to select a video using a more friendly interface and go “play this on my TV” and the same for music; queue a few tracks and say “play these using the TV”.

The solution: The most sane way of going about this without adding some kind of [shudder] Google Chrome-something-or-other or more decent more expensive kit would be a simple Media Control Point (as per UPnP standards). This would then, by means of HTTP requests, custom scripting and/or API get integrated into OH. Once I have something I can operate by script/command line, I’ll hack it into OH - no worries there.

I recently stumbled upon upplay ( which is really nice when I use a laptop on the sofa. My problem is simply that it doesn’t work headless. Now, there are three ways of fixing this problem: 1) Hack/code an HTTP interface into it and (maybe) remove the QT interface. 2) Dump and recreate the UPnP MCP communication and implement this in a custom piece of software (reinventing that whole wheel) and 3) finding an alternative application/solution.

Now, before you go “Oh, but there are nice little devices that you can plug into the TV…” - yes, I know. Back in 2005 I built an entire media center virtually from scratch which allowed me to run anything from a DLNA server, browse Youtube within the native custom interface or even play SNES games. The reason I’m so interested in the UPnP MCP setup is that I have another couple of these TV’s and I don’t want to buy/make an extra device for each one. A ‘universal’ interface where I select the material to play back and the target device makes more sense in this environment.

The questions:

  1. Does anybody have a piece of software that fits the bill for this? (Media browser, control point with API/CLI/HTTP control)?
  2. Does anybody have alternative designs that they think I should consider?
  3. Is anybody else interested in seeing a ‘CLI only’ version of upplay (this is not trivial, help is welcome)?



EDIT: I’ve cobbled together a Perl script which takes a part of a filename as an argument and the target device as another. It then searches the available UPnP Media Servers, grabs the URL and tells the Media Renderer (TV) to play it. This works, but without any support for playlists or, more importantly, interrupting the playback to play another file/URL. Has anyone actually fully mapped the UPnP interface of Samsung TV’s?