是否可以将 Skype v4 聊天记录导出为某种可读的纯文本格式?
(.txt, .xml, .html
)
或者,是否可以备份/恢复 Skype 聊天记录?
(我不介意备份到 Gmail,或可读的纯文本格式)。
我在网上找到了许多工具,甚至尝试了其中一些,但它们似乎不起作用。
答案1
请参阅此处提供的脚本:保存 Skype 聊天记录。
以下是代码:
' Define global variables
Dim oFSO, chat_file, folder_to_save
' Directory where You want to save history (you can modify it)
' Now it is relative, so it will be created where Your *.vbs script runs
folder_to_save = "SkypeChatHistory"
line_count = 0
' Create FSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
set_next_free_dir()
' Connect to Skype API via COM
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")
' Open skype, if it is not running
If Not oSkype.Client.IsRunning Then
oSkype.Client.Start()
End If
WScript.Echo "Skype history will be saved. Found " & oSkype.Chats.Count & " chat group."
' Iterate chats
For Each oChat In oSkype.Chats
names = ""
' First name is You, so it is unnecessary to keep
no_1st_flag = TRUE
For Each oUser In oChat.Members
If no_1st_flag Then
no_1st_flag = FALSE
Else
names = names & "_" & oUser.FullName
End If
Next
get_file("chat" & names & ".txt")
chat_file.WriteLine(vbNewLine & "==== CHAT HISTORY (" & Replace(names, "_", "") & ") ====" & vbNewLine)
line_count = line_count + oChat.Messages.Count
' Fix by an anonymous commenter
If oChat.Messages.Count > 0 Then
For Each oMsg In oChat.Messages
' Fix by Vadim Kravchenko
On Error Resume Next
chat_file.WriteLine(oMsg.FromDisplayName & " (" & oMsg.Timestamp & "): " & oMsg.Body)
Next
End If
chat_file.Close
Next
WScript.Echo "Backup was finished (" & line_count & " line saved). You can find your chats in: ./" & folder_to_save
' Garbage collection
SET chat_file = NOTHING
SET folder_to_save = NOTHING
SET oFSO = NOTHING
SET oSkype = NOTHING
' Access to a file given by name
Sub get_file(file_name)
' Parameter fix by: rommeech
Set chat_file = oFSO.OpenTextFile(folder_to_save & "/" & file_name, 8, True, -1)
End Sub
' Find an appropriate directory the logs to save, however, to avoid collision with former dirs
Sub set_next_free_dir()
If oFSO.FolderExists(folder_to_save) Then
ext = 1
While oFSO.FolderExists(folder_to_save & "_" & ext) And ext < 100
ext = ext + 1
Wend
folder_to_save = folder_to_save & "_" & ext
End If
oFSO.CreateFolder(folder_to_save)
End Sub
只需将其保存为.vbs
文件并运行即可。然后,Skype 会首次询问您是否有权连接 Skype API,因此只需单击“确定”即可。之后,它将创建一个名为的文件夹,其中包含SkypeChatHistory
一些文件,其中应该包含您的聊天记录。
答案2
有Skype 历史记录,可以导出为纯文本、json、csv和xml;还可以对数据进行分组。
截至 2013 年,它对我来说开箱即用(我的 skype 是6.0.0.126
)。然而它的继任者似乎是开源 天空忍者,我还没尝试过。
系统要求:Windows 7 / Windows XP,带有 .NET Framework 3.5
在博客在 harrymc 的回答中。
答案3
这就是我仍在使用 Skype 3 的原因。
当他们移除/htmlhistory命令???
对于 Skype 4,恐怕唯一的选择就是商业程序,例如Pamela 的 Skype(免费版本不提供聊天记录)。
至于备份和恢复聊天记录,这相当容易:
找到文件夹Application Data\Skype\(您的用户名)并将其复制到另一个位置,例如 CD 或 DVD-ROM。
要恢复历史文件,只需将文件复制回该文件夹。
答案4
如果你想以最简单的方式将你的历史记录导出为可读格式,那么skypebrowser.com,它可以读取您的main.db
文件。
但因为它是第三方服务,如果你的聊天记录中包含机密数据,那么在使用它之前你显然应该三思而后行。在这种情况下,你唯一安全的选择是 SQLite 浏览器(你需要表格messages
)。