如何导出Skype的历史记录?


31

是否可以将Skype v4聊天记录导出为某种可读的纯文本格式?
.txt, .xml, .html

另外,是否可以备份/还原Skype聊天记录?
(我不介意备份到Gmail或可读的纯文本格式)。

我在互联网上找到了很多工具,甚至尝试了其中的一些工具,但是它们似乎没有用。


如今,仅通过复制文件就可以备份/恢复聊天main.db,并且可以使用python程序或直接使用能够读取数据库sqlite3的程序,进行查询或通过图形界面选项进行选择来导出聊天。 。我在下面的答案中写了更多细节。
Hastur,2015年

Answers:


11

请参阅此处显示的脚本:保存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,其中应包含您的聊天记录的一些文件。


1
谢谢。遗憾的是它没有为我工作:-(它显示“无法定位自动化类名‘Skype4COM.skype’”的错误,我会尝试找出如何得到它的工作。
彼得Štibraný

1
我已经开始工作了...我需要从developer.skype.com/Download安装Skype4COM (通过使用cmdline中的regsvr32.exe Skype4COM.dll),然后再次运行脚本。
PeterŠtibraný09年

事实证明,使用Skype API获取聊天记录非常简单。感谢您指出正确的方向。
PeterŠtibraný09年

1
我记得我曾经使用过它,当时它可以工作。现在,它给了我这个错误i53.tinypic.com/zmd3lf.png
IsmailS 2011年

1
下载已移至此处:developer.skype.com/accessories
sjbotha 2011年

10

Skype Historian,它可以导出为纯文本,json,csv和xml;也能够对数据进行分组。

截至2013年,它为我开箱即用(我的skype是6.0.0.126)。但是,它的继任者似乎是开源的 skyninja,我还没有尝试过。

系统要求:Windows 7 / Windows XP和.NET Framework 3.5

出口选择

在harrymc的答案中的博客上找到了该项目的链接。


似乎没有任何可用的skype-ninja版本。
lkraav 2013年

@lkraav似乎有skyninja的20150318 v0.1版本。它需要dotnet 4.5
n611x007

3

这就是为什么我仍在使用Skype 3的原因。

当他们删除/ htmlhistory命令时,他们在想什么???

使用Skype 4时,恐怕唯一的选择是商业程序,例如Skype的Pamela(免费版本中没有聊天记录)。

至于备份和还原聊天记录,这很简单:

找到文件夹Application Data \ Skype \(您的用户名)并将其复制到其他位置,例如CD或DVD-ROM。

要恢复历史记录文件,只需将文件复制回该文件夹。


3

快速解答

  1. 是否可以导出Skype v4聊天记录(.txt,.xml,.html)?
    是的,它是 使用phyton和开放源代码编写的诸如Skyperious [ 1 ]之类的程序更直接地使用允许读取sqlite3数据库格式 [ 3 ]的每个程序(有关详细信息,请参见下文)。

  2. 另外,是否可以备份/还原Skype聊天记录?
    是的,它是 [ 2 ]。聊天记录保存在一个数据库main.db文件中。
    您可以备份和还原main.db文件。当您需要/想要时。


还有一些要以人类可用格式导出的词:

  • 重塑焊缝并非如此 :-),为此开发了许多程序。
    我想建议以Python编写的Skyperious [ 1 ],可以将其下载为源代码,也可以以Windows的二进制版本下载,以便它可以在每个操作系统下工作
    它是能够出口htmltxtcsv
    Linux的以下命令行将在子目录中为每个聊天伙伴创建一个html文件:

        ./skyperious.sh export ~/.Skype/SKYPE_USERNAME/main.db -t html
    

    对于Windows,有类似的批处理文件skyperious.bat。HTML格式不错。

  • 老实说,您不需要第3部分程序:但您可以使用数据库进行一些锻炼。
    聊天位于文件main.db [ 2 ]中。那是一个sqlite3数据库[ 3 ],[ 4 ]
    使用sqlite3或与任何其他图形工具或非图形工具一起使用,您可以进行查询,例如

        sqlite3 main.db "SELECT author,timestamp, body_xml 
                FROM messages WHERE dialog_partner = '<OTHER_SKYPENAME>'" > My_file.txt
    

    (仅在一行中使用第二人称的Skype用户名代替<OTHER_SKYPENAME>

    请注意,您可能会对SELECT数据库的每一列感兴趣。
    使用sqliteman [ 3b ]这样的GUI 可以更简单,您可以以图形方式选择该列,然后在一个字段...它将再次组成一行

    SELECT author, timestamp, body_xml FROM "main"."messages" WHERE dialog_partner = 'SKYPE NAME of 2nd USER';
    

    在此处输入图片说明


有关备份/还原的更多信息

可以直接备份/恢复聊天文件[ 2 ]

所有聊天记录都保存在一个数据库文件main.db文件中。
如果您对此文件进行常规复制,则始终可以恢复聊天记录。
确保Skype没有在计算机上运行。

您只需找到它在计算机上的存储位置:

  • 在Windows中据报道 [ 2b ]在中%appdata%\Skype\YourSkypeName,通常%appdata%\Skype翻译为:C:\Users\YourUserName\AppData\Roaming\Skype
  • 在Linux中,它处于下/home/LinuxUsername/.Skype/SkypeUserName/
    或不久状态~/.Skype/SkypeUserName/
  • 在Mac上应该在 ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/

1
我同意,github.com/suurjaak/Skyperious是可用的最佳工具。它甚至可以创建您的聊天统计信息,例如每个用户的消息,每个用户的表情符号,聊天中最常用的单词等。
asmaier

3

如果您想要将历史记录导出为可读格式的最简单方法,那就是skypebrowser.com,它可以读取您的main.db文件。

但是由于它是第三方服务,因此如果您的聊天中有任何机密数据,显然您应该三思而后行。在这种情况下,唯一安全的选择是SQLite浏览器(您将需要该messages表)。


1

Skype插件G-Recorder非常适合我备份聊天。


我发现了,但对我却不起作用:-(
PeterŠtibraný10年

@Peter:我是G-Recorder的合著者,您是否通过“报告问题”菜单项报告了您的问题?至少只是检查我们的支持团队是如何工作的:)
Andriy Tylychko 2011年


1

您只需要像win7一样转到用户主文件夹:C:\ Users [您的用户] \ AppData \ Roaming \ Skype

请记住,“ AppData”文件夹是隐藏的,因此您可能必须选择显示隐藏文件夹的选项。

然后找到带有您的Skype帐户用户名的文件夹并将其复制到新的PC ...所有聊天记录和联系人图标等将被复制到新计算机。


1

只需打开一个新的聊天窗口,其中包含您要为其保存聊天记录的联系人。在聊天窗口中键入“ / history”(不带引号)。填充历史记录后,使用鼠标光标选择/突出显示文本的一部分。然后,(在Windows上)按键盘上的“ Ctrl+ A”。突出显示所有内容后,按“ Ctrl+” C。打开Microsoft Word(或类似的文字处理软件,例如OpenOffice.org Writer),然后在键盘上按“ Ctrl+ V”。将文件保存到硬盘或USB驱动器上,瞧:您已完整记录了聊天记录。


0

该软件可以记录呼叫并将已记录的呼叫/聊天记录/文件传输存储到您的电子邮件-http: //skype2email.com

Skype2email是一项商业程序,具有14天的免费试用期。
免责声明:我从事此程序。


嗨,Mehal。我尝试了您的程序,但是启动它时崩溃了。如果您告诉我要看的地方或要寄给您的内容,我会尝试一下。
PeterŠtibraný10年



0

我认为,有一种更优雅的方式来保存您的聊天和通话,然后将其发送到电子邮件。例如,使用Skype Recorder可以将其全部保存到在线存储中,以及添加诸如全文搜索,在线播放呼叫以及许多其他不错的功能之类的功能。我认为这确实可以帮助您解决问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.