Friendfeed is an excellent life streaming service aggregating all your feeds from different service providers, compile them together, build a social network among your known people and finally deliver all these feeds as a mashup. As a result you can immediately track activities of your friends on all the different service they use (like jaiku, twitter, flickr) and stay up-to-date. Hats off to the developers of FriendFeed for delivering such a nice application to us.
In this blog post I will try to focus on how to develop such a service like Friendfeed using PHP and JS and how to scale such a huge load successfully. Previously I’d also written another article focusing “How to develop services like SpringLoops using PHP“. The complete article will be delivered in multiple installments and in current installment, I will focus on Photo sharing services used by friendfeed.
Area to focus
1. Services to be supported
2. Update discovery
3. Parsing the feeds
4. Storing the data
5. Scaling
FriendFeed parses feeds from a total of 35 popular services from around the web 😉 – lets have a look at them one by one and I will give you idea about the access points of these services. Though Not all of them are feed, so I will try to focus those services as well to give you a basic idea.
Service 1 : Flickr
Usable PHP Library: PHPFlickr
Flickr is an excellent photo sharing services under the banner of Yahoo. Friendfeed parses all the photo from a user and also the list of his/her favorite photos. Given an username you can easily find the Flickr ID like (76536911@N00)of that user and once you got it, here is the access points for list of public photos and favorites
List of photos
http://api.flickr.com/services/feeds/photos_public.gne?id=<user’s flickr id>&lang=en-us&format=rss_200
example: http://api.flickr.com/services/feeds/photos_public.gne?id=76536911@N00&lang=en-us&format=rss_200
List of favorites
http://api.flickr.com/services/feeds/photos_faves.gne?nsid=<user’s flickr id>&lang=en-us&format=rss_200
example:http://api.flickr.com/services/feeds/photos_faves.gne?nsid=76536911@N00&lang=en-us&format=rss_200
Service 2: Picasa Web Album
Picasa is another photo sharing service under the banner of the Giant, Google. Given a picasa user name , here are the access point of user’s public photos
List of public photos
http://picasaweb.google.com/data/feed/base/user/<picasa user name>?kind=album&alt=rss&hl=en_US&access=public
example:http://picasaweb.google.com/data/feed/base/user/countdraculla?kind=album&alt=rss&hl=en_US&access=public
Service 3: Smugmug
Here comes another photo sharing service where users can buy and sell their photos. Given a smugmug user name you can find the feed of this user’s photos
List of public photos
http://<smugmug user name>.smugmug.com/hack/feed.mg?Type=nickname&Data=Ifocus&format=rss200
example:http://ifocus.smugmug.com/hack/feed.mg?Type=nickname&Data=Ifocus&format=rss200
Service 4: Zoomr
Zoomr is another photo sharing service started in late 2005 by Kristopher Tate as a place for him to share photos with his friends and later became a public services, is currently supported by FriendFeed. And here we go with the access points 🙂
List of public photos
http://www.zooomr.com/services/feeds/public_photos/?id=<zoomr user name>&format=rss_200
example:http://www.zooomr.com/services/feeds/public_photos/?id=wolfmank&format=rss_200
In next part, I will highlight the access points of supported bookmark services and news services supported by FriendFeed 🙂 Have a nice weekend.
Cool.
Lage Raho!
wow….. great… keep it up 😀
i think i was looking for this 😀
Thank u very much for this post. Hope I will try something from here.
see http://noserub.com/
@Sebastian Nohn
Thanks a lot, I didnt know about it 🙂
Cool, carry on!
We will learn a lot from this series of posts.
Eagerly waiting to see the final implementation.
Nice read, thanks!
I am interested in part 3 and 4. Most importantly how are you willing to tackle storing onlythe delta of the feeds entries (new feeds).
Would love to read more about it, waiting for the rest 🙂
@Ahsan, Anupom, Ali.B
Thanks for the nice words. Next installments are coming soon 🙂
thanks for the post.
I have been talking over with some of the reps for friendfeed to develop a wdiget for the service and a pretty cool intervention with their API, just getting the developers together.
the noserub solution is frigging awesome. Its a shame that services like that are not getting their due PR
However ‘noerub’ seems to be a service that offers a script that can decentralise social streaming, however as far as a read it you would add a script to your own site that ‘connects’ to the other versions of noserub around the web.
interesting
Its great, waiting for the rest.
Thanks for the post. Will wait the rest 🙂
So all you are saying is if you know how to store user data in a database and know how to parse rss/xml feeds then you are a-ok?
@shaun
nope, not at all – there will be a detailed post about scaling such a huge load. But these are just the appetizers 🙂
tests time mashine
It is great. But i don’t know about php. My interest in banking.
I found you! http://postdirtscurmor.co.cc/#uname