Python + goo.gl でURLを短縮する

この記事が元ネタ。なぜか全然動かないコードだったので勝手に修正。
動作確認はWindows Vista + Python 2.5。
simplejsonがないとImportErrorって言われて怒られると思います。

googl.py
#!/usr/bin/env python

def shorten(url):
  from urllib2 import urlopen, Request, HTTPError
  from urllib import quote
  from simplejson import loads
  try:
    req = Request('http://goo.gl/api/url', 'url=%s' % quote(url))
    try: urlopen(req)
    except HTTPError, e:
      if e.code == 201: res = e.read()
      else: raise
    j = loads(res)
    return j['short_url']
  except: raise Exception('Unknown eror forming short URL.')

if __name__ == '__main__':
  from sys import argv
  print shorten(argv[1])

使いかた

python googl.py 」っていうコマンドを実行する。
もしくはPythonスクリプトからshorten関数をインポートして「shorten(url)」。