Aggregating your life stream with FriendFeed and Drupal

06 Feb Tagged activitystream, atom, feed, friendfeed, life stream, lifestream, rss, social media, twitter, web
Click to enlarge

Social media junkie or not, any geek loves it when all the pieces of a technology come together just right. Thanks to some great online services like FriendFeed and a Drupal module appropriately named FriendFeed You can aggregate your tweets, diggs, pictures and even comments on blogs, into clean HTML and RSS for easy consumption.

The column on the far right of this page is an aggregation of just about everything I say or share online in a casual web view. It includes:

Activity Stream Module

The activity stream bar was originally created using the Activity Stream Drupal module. This module was chosen because the stream parsers could be modified for each service to create detailed links. For instance, Laconica hash tags could link directly to that tags page, @ replies could link to the sender's profile and URLs could link to the actual target. This method worked well but social sites are popping up all the time and each new service required a new sub-module that may or may not already exist. This is also a heavier approach since the module performs a lot of parsing and curl requests to each service feed.

FriendFeed Module

The current bar is powered by the FriendFeed module. This module is great because it pulls an aggregated stream from FriendFeed instead of from each individual source. Adding a new service in FriendFeed automatically adds it here as well. That takes care of the maintenance problem but this also means that the module is less content aware. What it basically boiled down to was a choice between detailed linking (hash tags, @ replies etc) and maintainability. Fortunately FriendFeed has a few extra features in it's feed aggregation that tipped the scale. FriendFeed groups related or batch posts such as a group of pictures or a tweet and stumble of the same link. This makes the stream significantly easier by reducing "dupe" content.

All code on this site is free for use at your own risk and provided as-is under the WTFPL license unless otherwise stated. Attribution is appreciated but not required.
Blog content, with the exception of externally quoted material, is licensed under the Creative Commons Attribution 3.0 license