我在 Mac OS X 10.5.8 上安装了 Skype 2.8。
在聊天菜单下有一个名为“最近聊天”的选项。通过这个选项,我可以看到最近的聊天记录,但看不到以前的聊天记录。
我知道较旧的聊天记录已保存,因为它们位于 中~/Library/Application Support/Skype/username/chatmsg256.dbb
。将此文件放入文本编辑器后,其中包含我之前所有 Skype 聊天的文本聊天信息。但它存储在一种未知的文件格式中,我不知道如何解析。
Skype 是否有内置日志查看器(如 Adium 的),我可以使用它来访问这些旧日志?
答案1
我不确定这是否表明全部的历史记录,但请尝试以下操作。无论联系人是在线还是离线,都会弹出聊天窗口。
然后点击“查看早期消息:”下的“全部”。
或者,点击联系人的齿轮图标并选择“查看聊天记录”。这将生成一个 html 文件,并在您的网络浏览器窗口中打开。
我不确定这是否显示了所有的历史记录,原因是我不完全记得我在这台电脑上的聊天记录是什么时候开始的。
答案2
Skype 将聊天历史记录存储在 SQLite 数据库中:~/Library/Application Support/Skype/YourSkypeName/main.db
。您可以使用命令行sqlite3
工具查看聊天记录。
找出聊天伙伴的用户名
终端中的以下命令(我假设您正在使用 shell bash
)列出了所有聊天伙伴的用户名:
sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db 'SELECT DISTINCT(dialog_partner) FROM Messages;'
提取与特定聊天伙伴之间的所有消息
选项 A. 写入终端
要打印与某个聊天伙伴发送的所有消息(theOtherPersonsUserName
),请使用以下命令:
sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;"
这将按时间顺序每行打印一条消息,发送用户名、显示名称、日期和文本,如下所示:
danielbecks-用户名|Daniel Beck|2012-02-03 08:47:53|只是测试一些东西
选项 B. 写入文件
您可以将此聊天记录直接写入文件。运行以下命令将记录写入theOtherPersonsUserName
文件theOtherPersonsUserName.log
:
sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;" > "theOtherPersonsUserName.log"
当然,您也可以main.db
在任何 SQLite 数据库查看器中打开并从那里开始。
答案3
只想提供一些更易于使用和最新的查看 Skype 日志的方法:
- 斯凯里乌斯 (https://suurjaak.github.io/Skyperious/) - 用于操作 Skype 日志的跨平台 GUI 工具
- Skype浏览器(http://www.skypebrowser.com/) - 具有类似功能的网络工具
- 任何 SQLite 管理器(例如这个 Firefox 插件)- 让您完全访问 Skype 存储的所有数据,包括消息(使用详情请参阅 Daniel Beck 的回答)
答案4
从 Mac 上的 Skype 8 开始,数据库文件的路径发生了变化。如下所示:
~/Library/Application Support/Microsoft/Skype for Desktop/databases