29

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

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

4

5 回答 5

21

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

我会给你一个关于桌子的打击:

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

这些表很宽,某些字段的使用并不那么明显,但我想你明白了。

于 2009-12-21T16:48:10.553 回答
15

现在来吧,这是 Stackoverflow,让我们来了解一下技术,好吗?让我们放下幼稚的 jpeg、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'ctrl+f在输出中搜索time,authorusername.

深入了解 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;

(注意注释带有“,而不是#)

注意

  • Messages指一行文字,例如“What's up?”
  • Conversations指的是两方或多方之间的消息集合。
  • 我认为Chats是指用“昨天”、“7 天前”、“3 月 24 日”等标签分隔的逻辑时间间隔
于 2015-07-08T18:16:29.197 回答
7

我推荐两种方法来做到这一点:

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

在此处输入图像描述

这是搜索功能:

在此处输入图像描述

这是导出的示例输出:

在此处输入图像描述

B.更难,但自然更灵活的方法是安装一个 SQLite 浏览器,比如这个,然后自己导出消息​​。您可以通过查看这篇文章来了解有关如何执行此操作的一些信息,或者您也可以搜索其他类似的文章(AlexS 的回答也提供了线索)。您将需要一些 SQL 经验才能使用此选项。

于 2014-07-28T13:07:52.427 回答
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 
于 2009-12-07T10:28:19.310 回答
2

我对 Skype 的历史也有同样的问题,每个人都想玩弄这些历史,原因有很多。我想与您分享我的经验,因为我不是专家,但这可能会对某人有所帮助。

无论你有台式机还是智能设备,Main.db 文件都是 Skype History 的核心,它是 Sql 3 文件。

怎么获得?????????????

1.桌面:

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

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

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

  4. 在“数据”菜单中,您可以在程序左侧查看所有历史信息,例如消息、通话、对话和许多详细信息。

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

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

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

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

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

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

    那么如何调整时间呢?

    您可以简单地打开 Excel 工作表并粘贴方程式:

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

    就这样。

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

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 并查看结果。

于 2013-02-27T11:03:27.703 回答