Now Playing in the Cloud
Our latest post is from Matthew Wood, our software engineering team leader, who's been spending a little time recently with XMPP (as picked up by Tom on his recent Foocamp trip). Over to Matt...
XMPP seems to have been attracting quite a lot of interest. It's how find out about new downloadable content, it's the peer-to-peer messaging protocol for , and it's even been touted as .
As a mechanism for passing realtime messages between very large numbers of humans and machines, XMPP also looks interesting to national radio networks that want to connect to their considerable audiences, a large proportion of which are listening live and synchronously.
To try and find out if there's anything in all this I've exposed the tracks our music networks are currently playing as XMPP events that you can pick up and play with.
You can follow these steps to get going:
• Download a tune-capable XMPP client - I've been using as it has a handy XML console you can use to watch messages pass back and forth across the wires.
• Register yourself an account on the XMPP server at hug.hellomatty.com. Psi will do this for you, but only if you ask it not to 'Probe the Legacy SSL Port' when it makes a connection.
• Add a ³ÉÈËÂÛ̳ music network as a buddy. Try radio1@hug.hellomatty.com, or 1xtra@hug.hellomatty.com, or...
• Follow along with our playout systems in the comfort of your home!
Note: As Matt says, you need a standards-compliant XMPP client. I've just discovered that isn't - Tristan
To achieve anything more exciting than lighting up a tooltip you'll probably want to pick up an XMPP library and knock up a client yourself. You could try building something Flashy with . Or if, like me, you're still in your ruby phase you could try .
Next steps are to expose more of the inner workings of radio (when programmes start and end, the 'live text' that scrolls across DAB receivers). Maybe to start spawning conversations around specific programmes ('Chat LIVE to real live Audience Members about 'The Court of King Rudolf II' would be an invitation I might just click on).
But what do you think we should expose with XMPP? And what kind of clients could you build?
I don't know if I'm right but afaik has radio1@hug.hellomatty.com authorize me so that i am allowed to see tune notifications.
Service discovery on hug.hellomatty.com is also not possible :(
What protocol is required for Adium to supoprt this? I might give the pidgin guys a heads-up?
Hi,
very nice.
Do you plan on opening up S2S (XMPP Federation)? It would allow anyone to add radio1@hug.hellomatty.com as a buddy without creating an account in your server.
That is the true power of XMPP, really...
Best regards
Hi,
very nice.
Do you plan on opening up S2S (XMPP Federation)? It would allow anyone to add radio1@hug.hellomatty.com as a buddy without creating an account in your server.
That is the true power of XMPP, really...
Best regards
hi from orf radio in vienna, austria:
we are at the definition stage for our radio playout systems real-time metadata delivery standards. it seems relatively easy to push information upon real ACTIONS which happen in the automation playlist (start of a new song, opening a fader for weather, news, traffic etc.).
what seems more complex is to deliver metadata DURING file playback, e.g. our culture program, which most often consists of pre-produced 30, 60 or 120 minute files in "one piece".
is there any means in the bbc radio production workflow to add metadata as "markers" on the timeline of a longer file? can this information (like "who is speaking", "what is the current topic" etc) be played out in realtime, and also be delivered inside the file header if delivered on-demand as a podcast or download?
thanks for your insights,
karl.
I've followed the current versions of the XEPs for PEP and User Tune as closely as I could - libpurple seems to receive the messages OK but Adium doesn't reflect them in its UI :-( I've raised this as a bug with Adium (#9146) and if I'm really lucky I'll find some time to look into a fix :-)
Is it actually broadcasting today? I've added radio1@hug.hellomatty.com as a buddy in Psi, but nothing's showing up in the XML Console.
It's not especially novel but I'd like to be alerted whenever keywords I specify come up in programme metadata so I know where I can listen to stuff I like.
One of the biggest problems I have is that I can never be 100% sure I know about all the shows that will feature stuff I like.
I don't want to wade through the listings so it'd be great if I could say "Computer, let me know when anything comes on featuring 'maths' or 'Lee Scratch Perry' or 'Nicholas Parsons' or 'Christopher Brookmyre' or whatever.
Then when I'm logged in via some open ID authentication so I don't have to re-register for Yet Another Web Service, the service just pushes this stuff to me, like: "Simon, the Today programme features Lee Scratch Perry"
Even better would be that it pushed me a way of accessing that content through the app of my choice.
What XMPP server are you using? Me, I like ejabberd because I'm attracted to the alien nature of erlang (my partner calls me a snob for this kind of thing)
btw this submission seems very slow tonight 8.08 pm UK time. Maybe you have about 7 of these, I'm just real interested is all.
@karl At the moment our production teams don't add the kind of segment markers you're talking about into our playout system - but they do put this info into the system that generates DAB 'live text.' Until we get the workflow pushed back into the production/ playout system our hope is that we can capture the activity around text and use that as a source of segment metadata.
@simon I like your 'active recommendations' idea - once we get programme notifications into the XMPP stream it should be pretty easy to write a bot to do what you describe. Do you like apml as a way of expressing 'stuff I like'? And as for a/v - I'd been focussing more on programme metadata but it's definitely on the list of things to look at. The server is ejabberd. Remember: there was no erlang before Roswell.
And to all those who've requested s2s, it's coming.
Matthew,
I have been trying to play with this and have been tried with both a home rolled and the client.pl script from debian which allows me a connection to the xmpp server. Using psi I can see the messages being sent by radio1 in the XML console as you say and can send messages from another account to my perl script which are displayed, I can even send the XML which I can see in psi to my perl script but I can never see any messages from either radio1 or radio2. Is there something I am missing here? Do I need to enable a specific presence or subscribe differently or something?
Many thanks
Simon
Matthew, it's a tentative 'yes' to APML from me, I'd never seen it before so had to do a bit of reading up.
For the folks that don't already have their tastes profiled in this way, I'd like to see it hidden from the user though and generated through some kind of friendly interface. Or alternatively you could just send 'preference reggae 75' and build a profile up piecemeal.
Then at any time a user could request their APML profile to use elsewhere.
Lastly, the implicit data should be easily turn off and on-able so users aren't bothered by stuff they don't like.
This is why I gave up on pandora, since it at the time (maybe it's changed) it wasn't smart enough to know that my preference for Aerosmith meant anything from the 70s rather than "love in an elevator", "pink" or any of their other stinkers.
Plus implicit in naming aerosmith was to invite any number of awful hair metal bands to assault my ears.