Posts Tagged ‘television’

An API for twitter hashtags for TV programmes

Friday, December 31st, 2010

Overview
Hacking together an API that returns commonly-used hashtags for the programme you’re watching on the TV

Background
tweets on TVLast April, I wrote a quick-and-dirty Python script that displays tweets for a given hashtag on my TV screen so that I could follow the twitter backchannel about a programme that I watched.

Considering that it was a random idea that was hacked together in a few minutes, I’ve used it a lot since then: it’s made watching a bunch of programmes much more entertaining – Eurovision is probably the best example (the commentary on twitter is hysterical), but there are many others.

But I never made any changes to the script since I first wrote it. If I’m watching something on TV that I know has a hashtag, I ssh to my set-top box and run my hashtags script, giving it the hashtag to filter on in the command.

I was thinking – it’d be much better if it was all automatic. It’d be better if my set-top box automatically showed tweets with the hashtag for whatever programme I’m watching.

To do this, I needed some way of knowing what was the right hashtag for the programme currently on a given TV channel. I could’ve hacked this into my existing script, but I thought it might be a feature that people might find other uses for, so instead I’ve made a stand-alone thing, available as a web-service.

What it does
I’ve made a web feed that returns a blob of either JSON or XML. You can get either:

  • the commonly-used hashtag for the programme currently on a specified channel (e.g. “what is the hashtag for the programme that’s on BBC 1 now?”)
  • the next programme on TV that has a commonly-used hashtag (e.g. “what are the next five programmes on TV that have hashtags?”)

(more…)

Following twitter hashtags on TV

Tuesday, April 6th, 2010

DSC06104As a lot of other people, I’m watching the debate of the Digital Economy Bill on BBC Parliament tonight. I’m also trying to follow along with some of the #debill back-channel on twitter.

With such a heated and interesting commentary on twitter, it reminded me of Roo’s “Second screen” idea of having tweets with a specific hashtag next to the TV during live TV events, when following the twitter backchannel during ‘The Apprentice’.

Unfortunately, I don’t have a spare laptop kicking around to show tweets on. But I do have a hackable TV. 🙂

With that in mind, in just a few minutes I hacked together the following script to flash up tweets with the #debill tag on the TV:

# run me using:
#       python twittertv.py debill 1

import twython
import subprocess
import sys
from time import sleep

twitterKeyword = sys.argv[1]
twitterSearchRateLimitMins = int(sys.argv[2])

twitter = twython.core.setup()

showOnTVCommand = ['svdrpsend', 'mesg', 'messagetodisplay']

lasttweetid = 1

while True:
    search_results = twitter.searchTwitter(twitterKeyword, since_id=lasttweetid, show_user=True)

    numtweets = len(search_results["results"])
    for tweetnum in reversed(range(0, numtweets)):
        lasttweetid = search_results["results"][tweetnum]["id"]

        user = search_results["results"][tweetnum]["from_user"]
        tweet = search_results["results"][tweetnum]["text"]
        showOnTVCommand[2] = user + " : " + tweet

        subprocess.Popen(showOnTVCommand)
        sleep(20)

    sleep(twitterSearchRateLimitMins * 60)

DSC06127

It’s a quick-and-dirty hack, but I wanted to get something that would work before the debate was finished. 🙂

And it seems to do the trick.

last.fm for television

Wednesday, January 6th, 2010

One of the social network sites I’ve been using the longest is last.fm.

(If you know what last.fm is, bear with me teaching you to suck eggs for a few paragraphs… it gets more interesting – honest!)

The idea of last.fm is that a background service captures (or “scrobbles“) the music that I listen to on my computer at home, on the mp3 player that I use in the car, and on my laptop in the office.

This means that I now have a large record detailing the music I’ve listened to over the last three years.

I do this for a few reasons, including:

  • The data is made available to me through a rich API, which means I’m free to play with it, as well as take advantage of the creations of others, such as the wonderful visualisations generated by lastgraph
  • I can see what my friends listen to, which is interesting, as well as being a good way to come across new music
  • last.fm use this detailed history of my music-listening tastes to make automated recommendations of other music that I might like

This is all a long-winded way of saying that I like last.fm. I find it useful and interesting, and want the same for all the media that I consume – not just music.

I went looking for an equivalent for the books that I read in August 2008, and started using goodreads.

But what about the television that I watch? Could I create a last.fm-style scrobbler to capture what I watch on television? And then try and come up with a few examples of how I could share and visualise the data?

This question is where I started at Christmas… and after a few evenings of hacking some Python together, I’ve come up with:

last.fm for television

Please go take a look. (needs Flash – sorry)

(more…)

Tracking my location on TV

Wednesday, October 21st, 2009

Location tracking on TV

This is what you see if you press the “Find Dale” button on my TV remote control.

(Well, actually the “Teletext” button… cos I wasn’t using it, and there isn’t another button that makes any more sense!)

The on-screen-display adds a message at the bottom of the screen for a few seconds, saying my last recorded location and when I was there.

People following me on twitter may have noticed me talking about setting up a new home media server: a small Linux server that has become our Freeview box, PVR, home photo album, and music server.

And now it’s set up, it is surprisingly easy to do amazingly useful, and not-at-all annoying things like this! 😉

In my defence, I stopped just short of making the script poll for my location and display an on-screen message whenever my location changes. Which would’ve been very cool, but probably drive my family nuts. So I compromised with a script that runs when you press a button on the remote.

(more…)

What programme was on BBC1 at…?

Monday, July 27th, 2009

After my absence, I thought I’d come back with something quick and fun – the result of half an hour’s playing with a new (to me) API.

The problem that I wanted to look into was: What programme was on TV on a given channel at a given time?

And how can I find this out programmatically?

The first thing that I came across was the getProgrammes service in the beta BBC Web API.

As I expect from the forward-thinking BBC, it’s pretty awesome: a simple API that gives you an XML document containing the programmes schedule for the specified time window.

The documentation on the BBC site is pretty self-explanatory. It gives all the information you need to start playing with the API – either using the form on the BBC page, or by sending it a few requests using wget.

(more…)

Social TV

Tuesday, November 18th, 2008

At the BBC hackday “Mashed” earlier this year, I went to a talk explaining how to write applications that can be delivered to televisions through Freeview set-top boxes. For our CurrentCost-themed hack, we reused (that is to say, shamelessly stole!) some code from a colleague to get CurrentCost notifications onto a TV channel. The idea was that it’d be a ‘press the red button’ kind of thing where you could have results of CurrentCost challenges from you and your friends pop up as text overlaid onto the bottom of the screen while you watch TV.

I loved this idea, and it’s been bouncing around at the back of my head since. There is a lot of social network data on the web that I think would be well suited to notifications via a TV. Rather than needing to have a separate computer on, or send stuff to mobile phones, or use stand-alone ambient type devices like Nabaztags or Chumbys, why not have stuff popping up while you watch TV?

(more…)