Skype for Mac のチャットログを手動でバックアップする

2014-04-03 20:58
Mac

大切な思い出の記録として Skype のログを取りたいという友人の要望。

Skypeの機能で実現できないかツールバーを漁ってみたが、書き出し機能見当たらず。
チャットの隠しコマンド /htmlhistory でHTML出力できる…というエントリーが複数ヒットするも、あいにく使えなかった。

というわけで、黒い画面からアレコレしてログを抜粋する方法を実践。

目的

特定のチャットのみ抜き出して保存したい。

環境

  • 友人の Mac Book (OS X 10.5)
  • Skype for Mac (バージョン不明)
    • バージョン控え忘れましたが、手元の環境(Mac OS X 10.8 / Skype v6.15) でもできました。

参考エントリー

手順

1. ターミナルを起動

2. ~/Library/Application Support/Skype/《Skype ID》/ に移動する

$ cd Library/'Application Support'/Skype/hi3103

3. いったん全部のログを書き出す

$ echo "SELECT from_dispname, body_xml, chatname FROM Messages;" | sqlite3 main.db > 任意の名前.log

4. 書き出したファイルを開き、バックアップしたい会話をさがす

ひとつひとつの発言が

サトウ|やっほー|#hi3103/$maeba;hogehogehogehoge

といったかたちになっており

  • グループチャット作成者の Skype ID (例:hi3103)
  • 最初にグループチャットに加えられたメンバーの Skype ID (例:maeba)
  • グループチャットのID(英数字16文字) (例:hogehogehogehoge)

が確認できるので、この # 以下をまるっとコピーする。

バックアップしたい会話が複数ある場合はすべて控えておく。

5. chatname を指定(コピーした内容を貼付)して書き出す

$ echo 'select datetime(timestamp,"unixepoch","localtime"), author, body_xml from Messages where chatname="ここにペースト";' | sqlite3 ./main.db > 任意の名前.log

6. 結果、こんな感じで保存できた

2014-04-03 15:17:33|hi3103|やっほー
2014-04-03 15:19:38|maeba|マエバだよー
2014-04-03 15:19:54|maeba|ドヤァ
2014-04-03 15:20:03|hi3103|うぜぇ

以上
なんかもっとスマートな方法ある気がするけど、目的は達成したのでよし。