How To Export Starred Items From Google Reader Into HTML
I’m a big fan of Google Reader. I like to use the gold star to flag interesting posts. I wanted to export a list of these interesting posts, but couldn’t find any info online on how to do this. Here’s my approach. It is much simpler to do than to explain.
1. Inside Google Reader, go to “Settings” on top right, then go to “Folders and Tags”. Click the box next to “Your starred items”, then use the “change sharing” pulldown to set your starred items to “Public.” If you are worried about privacy, you can make your starred list private again afterwards.
2. Click “View Public Page” on the “Your Starred Items” page.
3. Copy the URL of this page and paste it in a text editor or Notepad. It should have a long number it, 20 or so digits. That number represents your Google Reader account.
4. Paste this url into your text editor (this is all one line)
http://www.google.com/reader/public/atom/user/99999/state/com.google/starred?n=100
and replace the string of 9s with your long 20 digit number.
Make sure when you paste in the number that the URL still has a slash before and after the number. (Note on Nial Kennedy’s excellent Google API page there’s a typo where he omitted the initial slash on the starred item url.)
5. Voilà — that URL is an Atom feed for your starred items.
The n=100 parameter indicates how many items you want. You can adjust it appropriately.
6. Similarly, you can get Atom feeds for your Google Reader tags, your Google Reader read items, etc. Nial has the details.
7. Digression: at this point, if you wanted, you could run your Atom feed through Yahoo Pipes to derive a new feed, dropping rows or merging in additional information.
8. Now, how to go from Atom to HTML? If you knew enough XSLT, you could use a simple transformation. I tried to cook up some XSLT so folks could use an online tool like xslt.sitesfree.com. No luck; couldn’t figure it out. Any XSLT gurus reading this? Advice?
9. Striking out with XSLT, I opted to use a script. I went with Ruby. Perl or Python would also work. Here’s the 8 line Ruby program:
require "rubygems"
require "open-uri"
require "simple-rss"
feed = "http://www.google.com/reader/public/atom/user/99999/state/com.google/starred?n=100"
rss = SimpleRSS.parse open(feed)
rss.entries.each do |item|
puts "<li><a href='#{item.link}'>#{item.title}</a></li>\n"
end
Again, replace those 9s with your 20 digit Google Reader id.
Ruby is installed by default on ‘nix and Mac; there’s a Win95 version here. gem install simple-rss gets you the RSS-parsing gem if you need it.
10. Now you can undo Step #1 to reset your starred feed to private if you want.
11. Here’s sample output from the script:
- Do’s and Don’ts for Ecommerce Vendor Selection
- Metrics That Matter
- Search: So Easy A Caveman Can Comment On It
- Arrrrr you prepared for Talk Like a Pirate Day with pirate fonts?
- Free Shipping: Customer Centric or Lost Profit
- Leveraging Your Affiliates for PageRank
- E-Mail Marketing: Discounts And Promotions
- Fixing the one big thing
- The first law of mass media
- One Retailer’s View on Why Not to Offer Free Shipping
- Return a 404 When You’re Supposed To, Or Get Dinged by Google
- How to unit-test code that interacts with a database
- Like your hair is on fire



Thank you for the great tip. Now I can read my starred items on my iPod touch offline!
Here is an XSLT stylesheet I put together that one can modify to include/exclude/layout the data they want. Depending how crazy you want to go with it, there are also style-sheet and javascript components that can be modified.
xslt http://pastebin.com/f412de634
css http://pastebin.com/f35966c20
js http://pastebin.com/f3e390475
I’ve done it with feedburner
Wow, this is exactly what I was looking for! Thank you so much. :)
It works well. What I would like to know is how can I spider the resultant HTML links and get all the url of the links on the webpages referred to by the initial list of links. I have looked at anemone, but cannot see how I can get it to use the output of this as an input?
Hi, this is exactly what i am looking for. But unfortunately it doesn’t work for me. I did everything as described above. I’ve created a rb-file with the code provided by you (but my Google reader ID), but i can not open this file. Could you please describe what i have to do after creating the ruby script? Do i have to open this file in Terminal (i am using a MAC), do i have to install any other program befor or something completely differen?
Apologies for my questions, i really would like to have this work for me :-)
All the best from Germany.
Thanks! This is especially useful when switching trough accounts.
This worked great. Thanks!
Thanks for this post.
But my requirement is a little tricky. I want to move all my starred items from one gmail to another gmail ID. Because I want to keep all my RSS Feeds (and starred items) of science journals seperate from RSS feeds of general interest.
Any help will be much appreciated!
Thanks so much
Cheers!
Thanks for the post!
Is it possible to export the Reader items into Excel format (esp. since most of the items I’m looking at are tweets)?
On a somewhat related note, I’ve not found a good way to export tweets (based on a given key word search) out of Twitter… Any tips?
Much appreciation!
Nice tip ! Thank you
After realizing a while back that I couldn’t easily browse through my starred items, I stopped starring and started bookmarking on delicious again (now on Pegboard, but that’s another topic…). I had thousands of articles starred and was hoping to use this method, but it seems Google caps the number of articles it returns via this Atom feed to 1000. Probably plenty for all but the most hardcore bookmarkers out there, but I just thought I’d mention it.