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

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

有帮助吗?

解决方案

您还可以查看 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”- 聊天成员

这些表相当宽,某些字段的用法并不那么明显,但我想您已经明白了。

其他提示

来吧,这里是 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, author, , 和 username.

深入研究 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 指 2 个或更多方之间的消息集合。
  • 我认为 Chats 指的是用“昨天”、“7 天前”、“3 月 24 日”等标签分隔的逻辑时间间隔

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

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

“在这里输入的图像描述”

这是搜索功能:

“在这里输入的图像描述”

和这里是从出口输出示例:

“在这里输入的图像描述”

B中。的的困难,但自然更灵活的方式,是安装一个SQLite浏览器下,如这一个,并导出自己的消息。您可以通过查看的这篇文章,或者你也可以寻找其他类似物品(来自Alexs的回答也提供线索的)。你需要使用SQL的一些经验来使用此选项。

检查了这一点: 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 

我在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. 使用任何 SQL 软件(例如 SQLite 或 SQLite Expert 或其他)将文件作为数据库打开。

  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. 下载并安装 iPad 版 iExplorer 或其他一些浏览软件。

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

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

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

  5. 像桌面程序一样,重复上面所示的步骤 2 - 11。

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

  7. 启动 Skype 并查看结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top