For a long time, we’ve wanted to have widgets for our RSS feeds that others could embed in their blogs or web sites. I’ve had a few false starts in this area, mostly due to the fact that I don’t know Flash or ActionScript, which is what most of these are written in. So I’ve been dabbling recently. My first experiment was for Social Innovation Conversations.
This is a Flash RSS reader and media player from BigContact.com. They’re a widget-service provider and this is one of their free versions. The image at the top isn’t part of the player — I’ve added that — but BigContact.com will, for a fee, generate a custom player for you, track usage, generate reports, etc. On one hand I like widgets as services, but I’m not fond of the idea that we need to go back to them and pay a fee every time we want to make a change. All things being equal, I’d rather own the source code or at least be able to tweak it ourselves. I’m also a bit concerned about their infrastructure. We’ve noticed on more than one occasion that the player won’t download from BigContact.com. But I do think their widget has the best combination of functionality and design given what I’ve seen.
The requirements for SpokenWord.org are somewhat different however. On Social Innovation Conversations, we have a limited number of feeds for which we need player widgets: just one per channel or perhaps one per series, and specifically for audio. But for SpokenWord.org, we need a palyer widget that will work with any feed submitted by a member or any playlist that s/he creates and may have associated audio or video.
I’m still struggling with the idea of a player widget versus a simple RSS widget. It’s easy for audio: the web-page real estate is predictable. But it’s hard to put a simple playlist widget in a narrow column, for example, and expect it to play a mix of audio and video formats. I’ve tried a variety of pop-up window schemes, but haven’t particularly liked them.
Then I came across Google Gadgets. It turns out that the same gadgets you can add to your iGoogle home page can also be deployed on third-party pages, at least if they’re written properly. I really didn’t want to get into writing code for a new framework, but as usual the Google documentation is pretty good and there were lots of examples of RSS and player widgets. One nice thing about all Google Gadgets is that you can read their source code, making it much easier to build upon the work of others. I’ve just completed my first foray into Google Gadgets and embedded an RSS feed gadget on the /feed pages of SpokenWord.org:
Yes, Google Gadgets are hosted elsewhere, but I have a lot more faith in Google’s infrsatructure than in that of an unknown company. And although we’re limited in what we can do with a Google Gadget, we do have complete control over the source code and formatting and can change it at any time. Furthermore, we can use this widget with any RSS URL since that and other things can be passed as parameters. Eventually, I’ll make the color scheme configurable for anyone who wants to paste the widget from any of our feeds or playlists into their own web site. That’s not too hard to do.
I have discovered one nasty bug in the Google library, however. Their parser for RSS feeds tends to pick up the wrong URL and doesn’t give you access to the others. For example, it may return the URL from the <enclosure> tag (a link to a media file) instead of the <link> tag, which is usually a web page. So you never quite know what’s going to happen when you click on one of the links in our widget. It may open the web page for the program, or it may just start playing the audio or video. I think it’s an old bug, so I don’t know how much attention it’s getting from Google’s developers.
I know this isn’t the end of the Player/RSS Widget saga. There are still CSS and browser-incompatibility problems, and if it turns out we need a Flash player to go along with the RSS reader, I may still go back to BigContact.com or even outsource the development of a custom player. But for now I’m just going to clean this one up, add user control over colors and size, and deploy it for our playlists in addition to feeds. And get a lot of feedback.