Как мне экспортировать историю скайпа?

31

Можно ли экспортировать историю чата Skype v4 в какой-нибудь читаемый текстовый формат?
( .txt, .xml, .html)

Кроме того, возможно ли сделать резервную копию / восстановить историю чата Skype?
(Я не возражаю против резервного копирования в Gmail или в читаемый текстовый формат).

Я нашел множество инструментов в Интернете и даже попробовал некоторые из них, но, похоже, они не работают.

Петр Штибраны
источник
В настоящее время можно создавать резервные копии / восстанавливать чаты, просто копируя файл main.db, и можно экспортировать чат с помощью программы на python или непосредственно с программой, способной считывать базу данных sqlite3, выполняя запрос или выбирая опцию графического интерфейса. , Я написал более подробно в ответе ниже.
Хастур

Ответы:

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, поэтому просто нажмите OK. После этого он создаст папку с именем SkypeChatHistoryи некоторыми файлами в ней, которая должна иметь историю чата.

harrymc
источник
1
Спасибо. К сожалению, он не работает для меня :-( Он показывает ошибку «Не удалось найти имена классов автоматизации« Skype4COM.skype »». Я постараюсь выяснить, как это работает.
Питер Штибрань,
1
У меня все работает ... Мне нужно было установить Skype4COM с developer.skype.com/Download (с помощью regsvr32.exe Skype4COM.dll из cmdline), а затем снова запустить скрипт.
Питер Штибраны
Оказывается, использовать Skype API для получения истории чата довольно просто. Спасибо, что указал мне правильное направление.
Питер Штибраны
1
Я помню, я использовал его один раз, и он работал в то время. Теперь он дает мне эту ошибку i53.tinypic.com/zmd3lf.png
IsmailS
1
Загрузка перенесена сюда: developer.skype.com/accessories
sjbotha,
10

Существует Skype Historian , он может экспортировать в обычный текст, json, csv и xml; также способен группировать данные.

По состоянию на 2013 год он работал у меня из коробки (мой скайп есть 6.0.0.126). Однако его преемником, похоже, является skyninja с открытым исходным кодом , который я еще не пробовал.

Системные требования: Windows 7 / Windows XP с .NET Framework 3.5

варианты экспорта

Нашел ссылку на этот проект в блоге в ответе harrymc.

n611x007
источник
Кажется, что нет доступных сборок Skype-ниндзя.
Икра
@lkraav, кажется, выпуск skyninja 20150318 v0.1. для этого требуется dotnet 4.5
n611x007
3

вот почему я все еще использую Skype 3.

о чем они думали, когда удалили команду / htmlhistory ???

со скайпом 4, боюсь, единственными опциями являются коммерческие программы, такие как Pamela для Skype (запись чата недоступна в бесплатной версии).

Что касается резервного копирования и восстановления истории чата, это довольно просто:

Найдите папку Application Data \ Skype \ (ваше имя пользователя) и скопируйте ее в другое место, например на CD или DVD-ROM.

Чтобы восстановить файлы истории, просто скопируйте файлы обратно в эту папку.


источник
3

Быстрые ответы

  1. Можно ли экспортировать историю чата Skype v4 (.txt, .xml, .html)?
    Да, это относится к таким программам, как Skyperious [ 1 ] , написанным на phyton и с открытым исходным кодом, или, более конкретно, к каждой программе, которая позволяет считывать sqlite3формат базы данных [ 3 ] (подробности см. Ниже).

  2. Кроме того, возможно ли сделать резервную копию / восстановить историю чата Skype?
    Да, это [ 2 ] . История чата сохраняется в одном файле базы данных, main.dbфайле.
    Вы можете сделать резервную копию и восстановить main.dbфайл. когда вам нужно / хотите.


Еще несколько слов об экспорте в удобном для человека формате:

  • Это не тот случай, когда нужно заново изобретать weel. :-) Для этого разработано много программ.
    Я хотел бы предложить Skyperious [ 1 ] , написанный на python, который можно загрузить в виде исходного кода и в двоичной версии для Windows, чтобы он мог работать в каждой операционной системе .
    Это может экспортировать в html, txtили csv.
    Эта командная строка для Linux создаст HTML-файл для каждого партнера по чату в подкаталоге:

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

    Для Windows есть аналогичный командный файл skyperious.bat. HTML с хорошим форматом.

  • Если честно, вам не нужна программа третьей части, но вы можете заняться спортом с базой данных.
    Чат находится внутри файла 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 ] , мне проще, вы можете выбрать столбец графическим способом, а затем наложить фильтр на значение поле ... и он снова будет составлять строку как

    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>/
Hastur
источник
1
Я согласен, github.com/suurjaak/Skyperious - лучший доступный инструмент. Он даже может создавать статистику ваших чатов, например, сообщений на пользователя, смайликов на пользователя, наиболее часто используемых слов в чате и т. Д.
asmaier
3

Если вы хотите самый простой способ экспортировать свою историю в читаемый формат, это будет skypebrowser.com , который может прочитать ваш main.dbфайл.

Но поскольку это сторонний сервис, вам, очевидно, следует подумать дважды, прежде чем использовать его, если у вас есть какие-либо конфиденциальные данные в ваших чатах. В этом случае ваш единственный безопасный выбор - браузер SQLite (вам понадобится messagesтаблица).

geppertuo
источник
1

Плагин Skype G-Recorder отлично подходит для резервного копирования чатов.


источник
Я нашел это, но у меня это не сработало :-(
Peter Štibraný
@Peter: Я являюсь соавтором G-Recorder. Вы сообщали о своей проблеме с помощью пункта меню «Сообщить о проблеме»? Хотя бы просто проверить, как работает наша
служба
1

Вам просто нужно перейти в главную папку вашего пользователя, как в win7: C: \ Users [ваш_пользователь] \ AppData \ Roaming \ Skype

Помните, что папка «AppData» скрыта, поэтому вам, возможно, придется выбрать опцию, чтобы показать скрытые папки.

Затем найдите папку с именем пользователя вашей учетной записи Skype и скопируйте ее на новый компьютер ... все ваши чаты, значки контактов и т. Д. Будут скопированы на новый компьютер.

Iconfx
источник
1

Просто откройте новое окно чата с контактом, для которого вы хотите сохранить историю чата. Введите "/ история" (без кавычек) в окне чата. Как только история заполнится, выделите / выделите часть текста курсором мыши. Затем (в Windows) нажмите « Ctrl+ A» на клавиатуре. Когда все выделено, нажмите « Ctrl+ C». Откройте Microsoft Word (или аналогичное программное обеспечение для обработки текста, такое как OpenOffice.org Writer) и нажмите « Ctrl+ V» на клавиатуре. Сохраните файл на жестком диске или USB-накопителе и вуаля: у вас есть полная запись истории чата.

Wesley
источник
0

Программное обеспечение, которое позволяет записывать звонки и сохранять записанные звонки / историю чата / передачи файлов на вашу электронную почту - http://skype2email.com

Skype2email - это коммерческая программа с 14-дневной бесплатной пробной версией.
Отказ от ответственности: я работал над этой программой.

Mehal
источник
Привет Мехал. Я попробовал вашу программу, но она вылетает при запуске. Если вы скажете мне, где искать или что вам отправить, я дам еще попробовать.
Питер Штибраны
0

Если вы просто хотите перенести историю на другой компьютер, проще всего последовать совету по Skype здесь: https://support.skype.com/en/faq/FA10649/Can-I-transfer-my-chat -история от одного компьютера к другому? frompage = search & q = chat + history & fromSearchFirstPage = false . То, что вы делаете, помечаете ваши разговоры как непрочитанные, и они передаются на другой компьютер, когда вы входите в него в следующий раз.

RyanTM
источник
0

Существует возможность экспортировать историю Skype в CSV и т. Д. Со страницы вашей учетной записи на Skype.com .

Даниил
источник
7
Не могли бы вы написать, где именно я могу найти это? Я просмотрел всю учетную запись Skype, но нигде не нашел ее :-(
Peter Štibraný
1
Не говоря уже о том, как это страшно
lkraav
0

Я думаю, что есть более элегантный способ сохранить ваши чаты и звонки, чем отправить их по электронной почте. Например, использование Skype Recorder позволяет вам сохранить все это в онлайн-хранилище, а также добавить такие функции, как полнотекстовый поиск, воспроизводить ваши звонки в Интернете и многие другие приятные функции. Я думаю, что это действительно поможет вам с вашей проблемой.

Женя
источник