そのために、自分の発言だけなら Twilog というサービスがあるし、みんなで編集できる Togetter というのもある。
でも、なんか違うのだ。Twitter をやっていない人にはちんぷんかんぷんだろう。感覚的な話なので、詳しくは説明できない。要するに「タイムラインは自分だけのもの」なのだ。自分の発言だけとっておく(前者)のとは違うし、見えなかった発言まで入ってしまう(後者)のとも違う。
---
さてふと気が付くと、うちの Mac の emacs のバージョンが古くなっていた。この際だから新しくしようとあちこち調べた。そうしたら、emacs 上で動く Twitter クライアント twittering-mode というものを発見した。
emacs 上で動くというのはすごいことだ。当然、elisp で書いてあるわけで、自由にカスタマイズができてしまう。elisp は懐かしいなあ、と思いながら、twittering-mode.el をいじっていたら、これが「タイムラインを保存する」のに使えることに気づいた。
Twitter のタイムラインは多くの人の多くのポストからなる。一つ一つのポストは次の2つが判ると特定できる。(1) Twitter 全体での通し番号 Post ID。(2) ポストした人のアカウント名(screen_name)。
注意が必要なのは、(1) の Post ID だけではポストを参照できないということだ。これは、セキュリティとの兼ね合いだと思う。ちなみに、(1) さえあれば順番にならべて時系列が再現できるので、ポストの順序をわざわざ保存しておく必要は無い。
もっと注意が必要なのが、ポストした人のアカウント名は、内部的には User ID という番号で管理されているということだ。User ID は普通のユーザーの目には触れない。
詳しく説明: 各々のユーザーのプロフィールのページで、右下のオレンジ色のアイコン (RSS とかなんとか書いてある側にある) にマウスを乗せた時に出る、http://twitter.com/statuses/user_timeline/XXXXXXXXX.rss の XXXXXXXXX の部分が User ID だ。
User IDという番号で管理されている理由は、アカウント名 (screen_name) やハンドルをユーザが自由に変更できる仕様だからだ。というわけで、要するに、1つの投稿を定めるためには、User ID と Post ID という2つの数字が必要充分だ。この2つの数字は未来永劫、不変だ。
これに対し、Twitter の個々の発言に1つずつ割り振られ、「パーマリンク」として扱われることが多い
http://twitter.com/screen_name/status/xxxxxxxxxxx
の型のリンクは screen_name が変更されると参照できなくなる。(ちなみに xxxxxxxxxxx の部分が Post ID。)
---
さて、実際に、User ID と Post ID を入力して、元の投稿を参照するという CGI を設置してみた:
需要はほとんど無いと思われるが、自分が emacs (twittering-mode) でタイムラインを保存するために作ったのを、せっかくなので公開した。「Twitter のパーマリンク」とは異なり、誰かが screen_name を変更しても安心。←ここが唯一無二の売りです!
【付記: なお、User ID が存在しない、あるいは、User ID と Post ID に該当するポストが存在しない場合などは Twitter のトップページ http://twitter.com/ あるいは Twitter のエラーメッセージのページが表示される。】
あ、アカウントそのものを消去されちゃうと、もちろん発言は参照できなくなる。それはもうどうしようもないということで…。
ちなみに、私は .emacs に twittering-mode の各種設定の一部として
(setq twittering-status-format "%i%s %j%r%R\n%T\n%@ %#\n")を追加した。 j と # で User ID と Post ID をテキストとして刻み付けるためで、こうしておけば、あとで加工するのに不自由はない。
---
注: User ID から、そのプロフィールを表示するだけなら、手間はかからない。http://twitter.com/account/redirect_by_id?id=User_ID
とすればよい。
蛇足: 上の CGI で番号の若い User ID を誰が使っているのかを調べてみた。0 から 50 までの結果を記しておく:
12 @jack (ちなみにこの方の Post ID: 20 のツイートが、歴史上、最初のツイートだ。)
13 @biz
14 @noah
15 @crystal
16 @jeremy
17 @tonystubblebine
18 @Adam
20 @ev
21 @dom
22 @rabble
23 @timroberts
24 @meredith
31 @rayreadyray
34 @ariel
38 @florian
41 @drx
47 @kellan
空きがあるのは冗長にしたいからなのか、もう Twitter を止めたのか。1桁の人は居なかった。あたりまえだが、Twitter の社長さんとかが若い番号のようだ。