Scheduling Content Round the Edges – Supporting OU/BBC Co-Productions

Following the broadcast of the final episode of The Virtual Revolution, the OU/BBC co-produced history of the web, over the weekend, and the start today of the radio edit on BBC World Service, here are a few thoughts about how we might go about building further attention traps around the programme.

Firstly, additional content via Youtube playlists and a Boxee Channel – how about if we provide additional programming around the edges based on curating 3rd party content (including open educational video resources) as well as OU produced content?

Here’s a quick demo channel I set up, using the DeliTV way of doing things, and a trick I learned from @liamgh (How to build a basic RSS feed application for Boxee):

I opted for splitting up the content by programme:

Whilst the original programme is on iPlayer, we should be able to watch it on Boxee. I also created and bookmarked a Youtube playlist for each episode:

So for example, it’s easy to moderate or curate content that is posted on Youtube via a programme specific playlist.

Here’s the channel definition code:

<app>
<id>bbcRevolution</id>
<name>Virtual Revolution, Enhanced</name>
<version>1.0.1</version>
<description>Watch items related to the BBC/OU Virtual Revolution.</description>
<thumb>http://www.bbc.co.uk/virtualrevolution/images/ou_126x71.jpg</thumb>
<media>video</media>
<copyright>Tony Hirst</copyright>
<email>a.j.hirst@open.ac.uk</email>
<type>rss</type>
<platform>all</platform>
<minversion>0.9.20</minversion>
<url>rss://pipes.yahoo.com/ouseful/delitv?&_render=rss&q=psychemedia/_delitvS+bbcrevolution</url>
<test-app>true</test-app>
</app>

[This needs to be saved as the file descriptor.xml in a folder named bbcRevolution in the location identified in Liam’s post… alternatively, I guess it should be possible to prescribe the content you want to appear in the channel literally, e.g. as a list of “hard coded” links to video packages? Or a safer middle way might be to host a custom defined and moderated RSS feed on the open.ac.uk domain somewhere?]

Anyway, here’s where much of the “programming” of the channel takes place in the DeliTV implementation:

(Note that the Youtube playlist content is curated on the Youtube site using Youtube playlists, partly because there appeared to be a few pipework problems with individual Youtube videos bookmarked to delicious as I was putting the demo together!;-)

Secondly, subtitle based annotations, as demonstrated by Martin Hawksey’s Twitter backchannel as iPlayer subtitles hack. The hack describes how to create an iPlayer subtitle feed (I describe some other ways we might view “timed text” here: Twitter Powered Subtitles for BBC iPlayer Content c/o the MASHe Blog).

With The Virtual Revolution also being broadcast in a radio form on the BBC World Service, it strikes me that it could be interesting to consider how we might use timed text to supplement radio broadcasts as well, with either commentary or links, or as Martin described, using a replay of a backchannel from the original broadcast, maybe using something like a SMILtext player alongside the radio player? (Hmmm, something to try out for the next co-pro of Digital Planet maybe..?;-)

Watching YouTube Videos on Boxee via DeliTV

One of the easiest ways to get started with DeliTV is to use it to watch video feed subscription from YouTube.

With DeliTV, you can bookmark the following sorts of Youtube content and then view it in a DeliTV Channel:

Bookmarked YouTube page Resulting DeliTV subscription
User homepage/channel
e.g Teachers’ TV channel
Guardian Newspaper
Recently uploaded videos for that user
Playlist page e.g T151: 3D Geo-World Demos Playlist feed
Video page e.g The Machine is Us/ing Us (Final Version) Single video
[NEW] Search results page e.g Search for “formula one” Search results containing 20 most relevant videos

Here is the example channel bookmarked to a demo DeliTV channel guide: delitv_ytdemo:

(You can of course grab a copy of any of these bookmarks into your own delicious account.)

We can now bookmark this channel guide so that it appears in a DeliTV multiplex. In the following example, I’m bookmarking it to my main delitv feed, and also to the boxeetest5 multiplex.

Here’s the result in my boxeetest5 feed:

DeliTV

And here’s a view of the delitv_ytdemo channel guide:

DeliTV channel guide

This is what the bookmarked user/channel produces – the recent uploads listing for that user/channel:

DeliTV - Youtube user/channel recent upoads

And here’s the playlist guide:

DeliTV - Youtube playlist feed

Remember, with DeliTV you don’t need to bookmark the actual Youtbe feed – just bookmark the user/channel, playlist or video page to Delicious, and DeliTV will do the rest for you…

To learn how to subscribe to your own DeliTV channel, see Deli TV – Personally Programmed Social Television Channels on Boxee: Prototype

PS a new feature, currently in testing, lets you bookmark a search results page. Whilst it is possible to generate searches for playlist or users/channels as well as videos, DeliTV currently returns just the 20 most relevant Youtube videos when a Youtube search results page is bookamarked.

Thematic BBC TV Channels on Boxee, courtesy of DeliTV

One of the nice things about iPlayer is that there are plenty of RSS feeds available for different sorts of content that is currently on iPlayer.

So for example, there are feeds available by channel, by genre, by genre and channel, feeds that contain the most popular programmes, and so on.

To a certain extent, you can also configure your own feeds:

BBC iPlayer feeds - http://www.bbc.co.uk/iplayer/feeds/

Feeds… hmmm :-)

Trying to subscribe to one of these feeds as is in Boxee gives…. nothing – no video items found:-( But if you tidy up the programme URIs that are contained in the feed up a little (for example, by using Boxee/BBC Feed helper pipe that just strips everything off the end of the programme URI after the programme ID. So for example http://www.bbc.co.uk/iplayer/episode/b00mq4r3/sign/Land_Girls_Destinies/ becomes http://www.bbc.co.uk/iplayer/episode/b00mq4r3) then you can subscribe to and that the programmes in Boxee…

Simply(?!) grab the BBC iPlayer programmes feed URI, paste it into the pipe, grab the RSS feed URI for that pipe containing that BBC iPlayer feed URI, and then subscribe to that feed in Boxee, and you can watch a thematic BBC iPlayer channel…

But that’s way too difficult, right? It’s much easier to just bookmark the feed to your DeliTV channel, and the DeliTV pipework will handle it for you. So for example, if you bookmark this Signed BBC TV programmes feed with your DeliTV tag on delicious, you’ll have that channel added to your DeliTV schedule :-)

PS remember, you can also bookmark BBC category pages, such as this one for BBC Thrillers (or on iPlayer: BBC TV Comedy (Sitcoms) with your DeliTV tag, and the programme feed should work correctly in your Boxee DeliTV channel:-)

Now I just need a day or two to put a proper DeliTV homepage togther, with some simple instructions and a screencast or two… Unless someone would like to volunteer to do that?! ;-)

PPS for howtos regarding the creation of other ‘canned’ DeliTV channels, see Recent BBC/OU TV Programmes on Boxee or UK Soaps on BBC and ITV/STV.

Recent BBC/OU TV Programmes on Boxee

Many of you will know that the OU co-produces several BBC television programmes, including Coast and The Money Programme, as well as a wide range of one off series.

If you want to keep up-to-date with OU/BBC programmes, you can now watch BBC/OU programmes on their own dedicated DeliTV channel: just bookmark http://pipes.yahoo.com/ouseful/bbcouiplayer to your DeliTV collection:-)

BBC/OU on DeliTV - http://pipes.yahoo.com/ouseful/bbcouiplayer

For details of getting started with DeliTV, see Deli TV – Personally Programmed Social Television Channels on Boxee: Prototype

If you interested in the technical details of how this channel was put together, read on…

What I originally hoped to do was make use of an earlier hack that underpinned Recent OU Programmes on the BBC, via iPlayer (also available on iPhone: iPhone 7 Day OU Programme CatchUp, via BBC iPlayer). Unfortunately the pipework behind those applications has broken (note to self: repair them… – DONE:-) becuase they relied on using a search of the BBC website, a search that now appears to be broken in Yahoo pipes (something to do with a robots.txt exclusion:-(

So it was time for a rethink…

My source of recent OU/BBC programmes is the @open2 twitter feed, which gives the title of the programme and the channel:

So what I needed was to find a way of getting the iPlayer programme IDs for these programmes. My first thought was to take each programme title from the @open2 feed, and search twitter with the name using the from:iplayer_bbcone search limit. But the @player_bbcone feed doesn’t seem to be complete, so I ruled that out…

Digging around the iPlayer site, I found a list of feeds containing content by channel currently on iPlayer (I think? God only knows how this’ll scale if they start to do much longer than 7 day catch-up….?!) – BBC iPlayer feeds

BBC iPlayer feeds - http://www.bbc.co.uk/iplayer/feeds/

[DOH! Something just jumped out at me there… have you seen it yet…? Important post to follow after this one…:-)]

So I created a pipe (BBC TV – Current Programmes on iPlayer) that pulled together the BBC TV feeds, and allowed you to “search” them by title (i.e. search by filtering…;-):

One thing I noticed in one of the @open2 tweets was a capitalisation error, which would fail to match in titles in the filter, so I used a regular expression to remove the effects of capitalisation from the filter stage. (I found the trick from a quick search of the Pipes forums,in a reply by @hapdaniel: replace the grabbed text with the \L prefix (i.e. I used \L$1 as the replacement text to convert everyhting in the $1 string to lower case. \U works for upper (\l replaces applies to the first char, as does \u).)

I could then run the titles from the @open2 feed through the BBC programmes pipe to grab the progamme URIs on iPlayer.

So here’s the pipe. We start by getting the last 50 items from the @open2 updates feed (using ?count=50 to get more than the default number of items from the feed), use a regular expression to parse the tweets to identify the programme titles, remove the duplicate programme title items from the feed using the Unique block, put the time that tweet was sent into a universal/canonical form and then filter by date so we only get tweets from the last 7 days.

We then run each item through the BBC programmes filter described above and return the recent programmes feed:

A couple of tweaks to the DeliTV pipe handle, you know, stuff ;-) and you can now bookmark this pipe – BBC/OU 7 Day TV Catchup (or it’s RSS feed output) to delicious, tagged so that it appears in your DeliTV feed, and you have a channel dedicated to recent BBC/OU TV programmes that have been broadcast on BBC One to Four and that are currently available on iPlayer :-)

So My Boxee “Delicious TV” Hack Gets a Trademark Infringement Warning

So it seems that the naming of my delicious/Boxee TV hack infringes a Trademark…

All Art Media, Inc.
161 Fort Road
South Portland, ME 04106


7 September 2009

OUseful.info, The Blog
http://www.programmableweb.com/mashup/delicious-tv-for-boxee

Attention: Tony Hirst

RE:	Trademark Infringement

Dear Mr. Hirst:

[All Art Media, Inc. ] (the “Company”) owns and operates [Delicious TV].
The Company also owns trademarks associated with its business - find a
sample at DeliciousTV.com - [registered with the United States Patent and
Trademark Office with the registration number “U.S. Reg. No. 3,069,320,” 
(“Trademark”) registered on March 14, 2006.

It has come to our attention that your blog and websites, OUseful.info,
The Blog and Programmableweb.com, has been using our Trademark or a very
similar mark (“Infringing Trademark”) in association with the marketing,
sale, distribution or identification of its products and/or services, and
is thus trading on the name, goodwill and reputation earned by the
Company.  It is possible that you were unaware of this conflict and we
believe it is in our mutual interest to bring it to your attention and
resolve it.

Our Trademark provides us with certain proprietary rights, including the
right to monitor and restrict the unauthorized use of our Trademark, or
confusingly similar trademarks, in association with non-Company products
or services. We must exercise this right to protect the value of both our
Trademark and of our business. Our Trademark signifies the high quality of
products and services offered by the Company and indicates to our
customers and to the consuming public that all of our goods and/or
services come from a single source. As such, it contributes substantially
to the goodwill and value of the Company. Federal law supports our
position that confusingly similar trademarks may cause undesirable
confusion in the public. This confusion may in this instance cause
material and irreparable harm to our Trademark by eroding the distinct
association among our Trademark, our products and services, and the
Company. Your actions constitute trademark infringement and unfair
competition under both state and federal law, including the Lanham Act,
(15 U.S.C. §§ 1051-1127). Remedies for such infringement can include
payment of actual and treble damages, recovery of profits, reimbursement
of attorney’s fees, and may also include injunctions against your further
use of the Infringing Trademark and the seizure of infringing materials.

We respectfully request that you immediately discontinue any and all use
of the Infringing Trademark in association with the marketing, sale,
distribution, or identification of your products or services. Please
respond to us in writing by email within fourteen (14) calendar days
indicating that you will cease and desist from any and all further use of
our Trademark, the Infringing Trademark, or any confusingly similar
trademark. We hope this issue can be resolved civilly and that we can
avoid pursuing any further legal remedies.

This letter is not intended to be a full statement of the facts in this
matter, nor is it a waiver of our rights and remedies, whether at law or
equity, all of which are expressly reserved.

Sincerely,

Elizabeth Carson
President
161 Fort Road
South Portland, ME 04106
USA
207-871-8600
betsy@delicioustv.com


Executive Producer
Delicious TV's Totally Vegetarian
207-871-8600
www.delicioustv.com

Now, as far as the ProgrammablWeb goes, I don’t think I was registered/logged in when I submitted the hack, which means I can’t change any of the details there. But is it my responsiblity to now go round the web trying to clean up all mentions of Deli TV? If you have posted anything about, you know, that hack, please modify it along the lines of, I dunno, “Deli TV”.

Ho hum… Anyway – Deli TV, then? Or the “The DeliBox?”…? Which do you prefer?

Deli TV Exposed, Part 1 – The Master Pipe

Okay, as promised, here’s a quick run through of how the pipework behind Deli TV – Personally Programmed Social Television Channels on Boxee: Prototype works…

The first part of the pipe is the “input parser”. To make the pipe as simple as possible, I wanted users to just be able to enter their delicious username and grab the appropriate Deli TV programming feed from delicious.

Of course, because users are users, as well as them entering their delicious user name, I had to defend against them pasting in the URL to their delcious account, or the RSS feed URI for the Delicious TV programming feed they wanted to use.

So what the input stage does is try to identify a user’s delicious username whatever they shove into the pipe’s input text box and generate the the URI to the delicious feed from that. As an undocumented feature, I decided to allow users to specify a feed pulled from users’ tag or tag combination pages. If no tag is input (e.g. if I just enter my delicious username (psychemedia), the input stage will assume I want to pull the programming feed in from psychemedia/delitv. However, if i specify a tag as well as my username (e.g. psychemedia/boxeetext5), that’s the programming feed the pipe will use.

So that’s the input stage…

The next stage is the clever part… What is does is look at the link from each item in the feed pulled in from delicious, and decide what to do with it. If the link is a link to a Youtube user page, or a Youtube playlist page, we need to rewrite the URI to a Youtube feed URI, and give it the rss:// protocol.

So for example:

  • given a Youtube playlist URI, we identify the playlist ID:
    http://www.youtube.com/view_play_list\?p=([^&]*)
    and generate the Youtube feed URI for that playlist:
    rss://gdata.youtube.com/feeds/base/playlists/$1?alt=rss&v=2
  • given a Youtube user URI, we identify the username:
    http://www.youtube.com/user/(.*)
    and generate the Youtube feed URI for that user’s recent uploads:
    rss://gdata.youtube.com/feeds/base/users/$1/uploads?alt=rss&v=2&orderby=published

These rewrites are handled by a Regular Expression block.

Delicious TV pipework 2

If the link is a link to another delicious feed, or to a BBC programmes page (such as a genre listing), the delicious feed details, or the iPlayer programmes page details are passed to another pipe, identified to Boxee as an rss:// feed.

These subpipes create valid Boxee feeds from iPlayer programme page URIs, or from other delicious pages. I’ll describe how these subpipes work in a couple of follow-on posts.

The final part of the pipe is a filter. It checks the links in the output feed that will be passed to Boxee to make sure that they can play in the Boxee environment.

At the moment, this is limited to rss:// identified feeds, Youtube programme pages, individual iPlayer programme pages and mp3 files.

As and when I get the chance, I’ll experiment with filters for other video websites. In this ‘release’, I wanted to try to limit what the pipe would pass through so that it stood a good chance of working. If I don’t get round to extending the filters fast enough for you, please feel free to clone the pipe and extend it to your heart’s desire. For example, you might want to extend it to let through content from ITV, Channel 4 or Channel 5 pages in the UK. (I’d appreciate it if you’d let me know about any changes you make to your version of the pipe that make it more useful and/or usable, though:-)

Next up, in a day or two, I’ll post an explanation of how the subpipes work…

PS if you have referred to this hack as “Delicious TV” anywhere, please change it to Deli TV. Why? So My Boxee “Delicious TV” Gets a Trademark Infringement Warning.

PS See also the UK HEI Boxe Channel for details about how that pipe works…