阅读skype消息存档

时间:2009-12-07 10:15:25

标签: message archive skype

我想在Skype应用程序之外阅读我的Skype消息存档。并且能够以某种方式导出它(除了从我的消息中复制粘贴它),因为我可以认为skype只提供30天或档案。

有没有人使用应用程序存档/导出Skype消息?

5 个答案:

答案 0 :(得分:21)

您还可以查看skype的个人资料数据库(%USERDIR%\ Application Data \ Skype \%您的个人资料名称%\ main.db ),它基本上是SQLite数据库,看看您可以从中获取什么它。如果您使用 Windows 8及更高版本,则路径为%USERDIR%\ AppData \ Local \ Packages \ Microsoft.SkypeApp \ Localstate \%your_skype_profile_name%\ main.db

我会给你一个表格:

  • “对话” - 对话
  • 通过convo_id字段链接到“对话”的“消息”
  • “聊天” - 保存的聊天列表,每个聊天都由对话组成
  • “ChatMembers” - 聊天成员

这些表非常广泛,某些字段的使用并不那么明显,但我认为你明白这一点。

答案 1 :(得分:15)

现在,C'现在,这是Stackoverflow,让我们获得技术支持,好吗?让我们放弃幼稚的jpegs,gui工具和电子表格的伪代码,找到问题的核心!

[拳头撞击]

来源:https://coolaj86.com/articles/searching-skypes-sqlite-database/

找到您的Skype数据库

首先,您必须为您的用户找到正确的skype数据库:

ls ~/Library/Application\ Support/Skype/

sqlite3 ~/Library/Application\ Support/Skype/<<YOUR_USER_NAME>>/main.db

了解他们表格好!

您想要查看可用的表及其说明:

.tables          " see the short table list
.schema Contacts " all about the Contacts table
.schema Messages " all about the Messages table

你可能需要使用好的ol&#39; ctrl+f在输出中搜索timeauthorusername等内容。

深入了解SQL

然后你深入研究了SQL ...

" List the 25 most recently contacted contacts
SELECT skypename, lastused_timestamp FROM Contacts ORDER BY lastused_timestamp DESC LIMIT 25;

" List the 100 most recent messages
SELECT id, convo_id, timestamp, type, author, body_xml FROM Messages ORDER BY timestamp DESC LIMIT 100;

" List the 100 most recent conversations (and all participants)
SELECT last_activity_timestamp, identity, type, given_displayname, displayname FROM Conversations ORDER BY last_activity_timestamp DESC LIMIT 100;

" Search for a message with the text 'home'
SELECT author, body_xml FROM Messages WHERE body_xml LIKE '%HOME%' ORDER BY timestamp ASC;

" Search for a contact named 'john'
SELECT (displayname || ' : ' || skypename || ' : ' || fullname) as names FROM Contacts WHERE names LIKE '%JOHN%' ORDER BY lastused_timestamp ASC;

(注意评论是&#34;而不是#)

请注意

  • Messages指的是一行文字,例如&#34;内容是什么?&#34;
  • Conversations是指2个或更多方之间的消息集合。
  • 我认为Chats是指与标签分开的逻辑时间间隔,例如&#39;昨天&#39; 7天前&#39;,&#39; 3月24日&#39;,等

答案 2 :(得分:7)

我建议采用两种方法:

一个。 最简单的方法是使用Skyperious 。适用于Windows,Linux和Mac。你可以做到这一切

enter image description here

这是搜索功能:

enter image description here

以下是导出的示例输出:

enter image description here

B中。 更难,但自然更灵活的方式是安装SQLite浏览器,例如this one,并自行导出邮件。您可以通过查看this article查看有关如何执行此操作的一些信息,或者您还可以搜索其他类似文章(AlexS' answer also provides clues)。您将需要一些使用SQL的经验来使用此选项。

答案 3 :(得分:4)

检查出来:http://web.archive.org/web/20061019071406/https://developer.skype.com/Docs/ApiDoc/CHAT_object

CHATMESSAGES - list of chatmessage identifiers 
CHATMESSAGES - all messages IDs in this chat, for example CHAT #test_l/$6a072ce5537c4044 CHATMESSAGES 34, 35, 36, 38, 39 

答案 4 :(得分:2)

我遇到了与Skype历史相同的问题, 由于种种原因,每个人都在寻找这些历史。 我想与你分享我的经验,因为我不是专家,但这可能对某人有帮助。

无论您是桌面设备还是智能设备,Main.db文件都是Skype历史记录的核心,它是SqL 3文件。

如何得到它???????????????????

<强> 1。桌面:

  1. 关闭Skype并在C:/Users/[your computer username]/App Data/Roaming/Skype/[your Skype Id]找到文件Main.db(请查看Win7的这个,对于XP和其他人,你必须找到该文件)。

  2. 在其他驱动器上备份此文件。

  3. 使用SQLite或SQLite Expert等其他sql软件将文件作为数据库打开。

  4. 在数据菜单中,您可以看到程序左侧历史记录的所有信息,如消息,来电,对话等等。

  5. 您将在消息中找到传出和传入的IM消息。

  6. 单击右键,然后转到选择列,并选择感兴趣的列,如ID用户名body-xml,用于消息文本和时间戳。

  7. 您可以勾选必填字段来缩短您的选择。

  8. 单击右键并选择文本编辑,然后您可以执行所需的任何操作,为所选字段添加删除等。

  9. 您无需保存任何内容,因为它会自动保存。

  10. 对于使用不同类型的日期格式的时间步骤非常重要,例如,您可以找到日期时间2312/2009 18:23的时间戳1261610607,

    所以你如何调整时间?

    您只需打开Excel工作表并粘贴等式:

    =IF(H6="","",(H6/86400)+25569+(-5/24))

    就是这样。

  11. 现在重新打开它,然后查看聊天记录。

  12. <强> 2。对于智能设备(例如Ipad):(您必须使用台式机或笔记本电脑寻求帮助:

    1. 下载并安装iExplorer for iPad或其他一些浏览软件。

    2. 连接您的设备,您将看到大部分文件。

    3. 选择APPs/Skype/Library/App Support/Skype/[your Skype ID]

    4. 点击右键并导出文件,将文件发送到桌面。

    5. 重复上述步骤,如2-11所示,与桌面程序类似。

    6. 完成编辑后关闭数据库并从iExplorer指向您的Skype用户并选择Add File,浏览到修改后的文件并再次发送到iPad。

    7. 启动Skype并查看结果。