ramblings on PHP, SQL, the web, politics, ultimate frisbee and what else is on in my life
back

Using Yahoo pipes

For a while now I have been meaning to create a planet for digital DJs. Thanks to Yahoo pipes it was a breeze to create this planet once I finally sat down to do it. Essentially Yahoo pipes lets you take any web content, preferably feeds, and pipe them through various tools for looping, string manipulation etc and aggregate them all together into one final output stream. This stream can then be consumed in various ways like RSS, json, php serialized strings and even a nicely formatted website. You can also embed the output into your site with some simple javascript. If you are interested in reading about my motivation for this planet check out my music related blog. Nice!

Unfortunately if you view the feed in html on the pipes site, it always takes a while to load. The GUI interface is also not super speedy, but its still kind of nice if you can deal with visual "programming". Be sure to check out the source to get an idea of how things work. This all just took a few minutes really to setup. I spend more time deciding which feeds to include than configuring the planet.

The main missing pieces (or maybe I just overlooked the right tools) at this point is being able to easily append a name identifying the source feed in the final output. I have solved this by adding the "item.dc:creator" to the titles using a loop and a string builder. This means me to the next issue, obviously not all feeds are created equal and so some contain "item.dc:creator" some "item.author.name" and others some variation thereof. So I needed to add some loops around some feeds to normalize them to all contain the "item.dc:creator" field, so that I can do the title manipulation with just a single loop. It would be nice to have a "feed normalizer" that handles such difference for me and just spits out a stream that gives me the same format for all feeds.

What I want to look into next is using the Yahoo maps integration. The idea being that I could have DJTT add new fields in their forum where people can fill in their location as well as certain aspects about themselves like if they have access to a DJ practice room, if they have a residency at a local club, if they have a firmware upgrade kit for the VCI-100 and whatever else. Then I could create a feed out of this data that I could then map via pipes. I would also want to allow people to filter the data and this also seems to be supported in pipes. Though I am not sure if I would want to do the filtering inside pipes or if I would use the ability to construct feed URLs dynamically to be able to do the filtering on the source server.

The last thing where I am pondering to use Yahoo pipes is actually for a customer project where we want to integrate some third party content. The sites would all be ok with us taking the content, but they simply currently do not provide an API for us and I doubt they ever will. So using the screen scraping tools, especially YQL, which is a query language against any markup content on the web also created by Yahoo, we could probably get fairly good results, that a somewhat technically inclined customer could maybe even expand on his own.