While you can make your Google Reader starred and shared items public available, I found no way to do the same for my liked items. There isn't even a link from inside Google Reader to view your liked items.
But you can view your liked items if you open the following url http://www.google.com/reader/view/user/-/state/com.google/like. And there is even an Atom feed available http://www.google.com/reader/atom/user/-/state/com.google/like. The problem is that you have to be logged in to view the feed. So here is a small script to do a Google ClientLogin and dump the atom feed.
import httplib2
from urllib import urlencode
client = httplib2.Http('cache')
def request_auth_token(email, passwd):
"""request auth token from google
see: http://code.google.com/apis/accounts/
http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
"""
url = 'https://www.google.com/accounts/ClientLogin'
headers = {'Content-type': 'application/x-www-form-urlencoded'}
body = urlencode({'Email': email, 'Passwd': passwd, 'service': 'reader'})
response, content = client.request(url, 'POST', headers=headers, body=body)
assert response['status'] == '200'
#if status == 403 check for Error=CaptchaRequired
resp_data = dict(x.split('=') for x in content.split('\n') if x)
return resp_data["Auth"]
def likes_feed(auth):
url = "http://www.google.com/reader/atom/user/-/state/com.google/like"
headers = {'Authorization': 'GoogleLogin auth=%s' % auth}
response, content = client.request(url, 'GET', headers=headers)
return content
if __name__ == '__main__':
email = "XXX@gmail.com"
passwd = "XXX"
auth = request_auth_token(email, passwd)
print likes_feed(auth)
The same method should work to get the content of private folders in Google Reader.