はてなダイアリーの一覧を取得する非公式のAPI

ちょっと調べたのでメモ
これ使うとローカルでサクサクといろいろできそうな気がする。

End Point

http://d.hatena.ne.jp/(userId)/archive/plaintext

userId
タイトル一覧を取得したいユーザーのはてなID

※実際のソースではリクエストするURIのクエリパラメタとして乱数を付加していた。キャッシュ対策と思われる。

返却値

以下のカラムを持つCSV形式のテキスト

  • 日付
  • パーマリンクのパス(の一部)実際にアクセス可能なURLは下のようになる。
    • http://d.hatena.ne.jp/(userId)/(パーマリンクのパス)
  • カテゴリを含むタイトル

このダイアリーだと...
以下のような値が返ってくる。

$ curl http://d.hatena.ne.jp/snaka72/archive/plaintext?12345
2009/06/05 11:50:39,/20090605/1244170239,[javascript][idiom]javascriptでの"!!"の意味がなんとなくわかった!!
2009/06/04 13:12:23,/20090604/1244088743,[lifehack]思い付いたら即登録できる Launchy + ruby + ta-da lists でのToDo管理のストレスフリー度が最強
2009/06/02 22:54:50,/20090602/1243950890,[appjet]AppJet終了のお知らせ
2009/06/01 08:52:33,/20090601/1243813953,[windows][tips]WindowsXPでハードリンクを作成する
2009/06/01 07:45:14,/20090601/1243809914,[ipmsg-meets-growl]IPMsg meets Grolw の通知アイコンを設定した
2009/05/31 10:52:03,/20090531/1243734723,[firefox]nglayout.initialpaint.delay設定したら確かに体感的に早くなったけど...

先頭のエントリのURIを得るには、2カラムめの値から...

http://d.hatena.ne.jp/snaka72/20090605/1244170239

となる。

追記:2009/7/28

はてなグループの日記でも使えることがわかった、はてなグループにはエントリーの一覧からインクリメンタル検索する仕組みが無いから、このapi使えばグリモンとかvimpとかでそのような機能を実装できる(というか実装中)。

注意点として、改行の扱いが以下のように異なる。

  • d.hatena.ne.jp:\r\n(DOS形式)
  • g.hatena.ne.jp:\n(Unix形式)