2009年5月21日木曜日

Skypeのチャット履歴のエクスポート方法

4.0 以降についてのまとめページ
SkypeのチャットログのSQLiteをhtml出力するComments
Skypeのチャット履歴をAPIを経由せず直接読みに行く方法 : OKの日記

結論的には、
  • 4.0 以降、履歴が保管されている main.db は、sqlite3 のデータベースファイル形式になっている
    (main.db ファイルは "%USERPROFILE%\Application Data\Skype\スカイプのアカウント名" 配下に存在。また、main.db には chat のログ以外にも各種データが保存されている)
  • sqlite3 対応のデータベースファイルを読めるツールで中身を取り出せる
    (例:PupSQLiteSQLite Database Browser といったアプリや、各種スクリプト用のライブラリなど)
ということらしい。

また、4.0 以前の 3.8 辺り(対応バージョンの詳細不明)だと、
Skypeチャットの隠しコマンド /htmlhistory により HTML 形式でエクスポート
というのができたらしい。

追記(2009/05/22 00:56:06):
とりあえず、簡単に DB の状態のメモ。

ざっと、テーブル構成+レコード内容を見た感じでは、
  • chats テーブルが「会話」のまとまりの単位ごとに1レコード発生&ユニークな name を持つ
  • Messages テーブルは会話の具体的な1メッセージ単位毎にレコード発生。
    一つの「会話」のまとまりは Messages.chatname が同じ値を持つ& chats.name と一致
という関係の様子。

例えば、

SELECT chats.name, from_dispname, body_xml, Messages.timestamp FROM Messages
inner join chats
on participants = 'user1 user2' and Messages.chatname = chats.name;

で user1 user2 の組み合わせの会話一覧が取れる・・・ぽい。
(participants は必ずアルファベット順で名称が入る様子)

0 件のコメント:

コメントを投稿