basic認証だけで行けるので結構簡単です.
getJapaneseTweetsは引数個の日本語ツイート(json)をsimplejsonで辞書に変換して,そのリストを返します.
文字参照をデコードし直してるのはツイート本文だけになってます.
#! /usr/bin/env python # encoding=utf-8 import urllib2 import base64 import simplejson import re STREAM_URL = 'https://stream.twitter.com/1/statuses/sample.json' USERNAME = 'username' PASSWORD = 'userpassword' def getJapaneseTweets(length, username=USERNAME, password=PASSWORD) : req = urllib2.Request(STREAM_URL, headers={ 'Authorization': 'Basic %s' % (base64.encodestring('%s:%s' % (username, password))[:-1]) }) tweets = [] while True : ua = urllib2.urlopen(req) for line in ua: tweet = simplejson.loads(line) try : tweet['text'] = tweet['text'].encode('utf-8').decode('utf-8', 'xmlcharrefreplace') except KeyError : tweet['text'] = '' if tweet['text'] and isJapanese(tweet['text']): tweets.append(tweet); if len(tweets) == length : return tweets time.sleep(30) def isJapanese(text) : return re.search(u'[ぁ-んァ-ヴ]', text) if __name__ == '__main__' : print getJapaneseTweets(1)[0]['text']