Як експортувати історію Skype?


31

Чи можливо експортувати історію чатів Skype v4 в якийсь читабельний формат простого тексту?
( .txt, .xml, .html)

Також можна створити резервну копію / відновити історію чату по скайпу?
(Я б не проти резервного копіювання в 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 запитає вас про дозвіл на підключення API Skype, тому просто натисніть кнопку ОК. Після цього він створить папку з назвою SkypeChatHistoryта деякі файли в ній, яка повинна мати вашу історію чату.


1
Спасибі. На жаль, це не працює для мене :-( Він показує помилку "Не вдалося знайти назви класів автоматизації" Skype4COM.skype "". Я спробую дізнатися, як змусити його працювати.
Peter Štibraný

1
У мене це працює ... Мені потрібно було встановити Skype4COM з developer.skype.com/Download (використовуючи regsvr32.exe Skype4COM.dll з cmdline), а потім запустити сценарій ще раз.
Петро Штібрані

Виявляється, використовувати Skype API для отримання історії чату досить просто. Дякую, що вказали на мене в правильному напрямку.
Peter Štibraný

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.


Здається, не існує жодної версії скайп-ніндзя.
lkraav

@lkraav, схоже, є версія 20150318 v0.1 skyninja. для цього потрібна dotnet 4.5
n611x007

3

ось чому я все ще використовую Skype 3.

що вони думали, коли зняли команду / htmlhistory ???

Зі Skype 4 я боюся, що єдиними варіантами є такі комерційні програми, як Pamela for Skype (запис чату недоступний у безкоштовній версії).

що стосується резервного копіювання та відновлення історії чатів, це досить просто:

Знайдіть папку Дані програми \ Skype \ (ваше ім'я користувача) та скопіюйте її в інше місце, наприклад, компакт-диск чи DVD-ROM.

Для відновлення файлів історії просто скопіюйте файли назад у цю папку.


3

Швидкі відповіді

  1. Чи можна експортувати історію чатів Skype v4 (.txt, .xml, .html)?
    Так, саме з такими програмами, як Skyperious [ 1 ] , написаними у фітоні та з відкритим кодом, або безпосередньо з кожною програмою, яка дозволяє читати sqlite3формат бази даних [ 3 ] (детальніше див. Нижче).

  2. Також можна створити резервну копію / відновити історію чату по скайпу?
    Так, це [ 2 ] . Історія чату зберігається в одному файлі бази даних - main.dbфайлі.
    Ви можете створити резервну копію та відновити main.dbфайл. коли вам потрібно / хочете.


Кілька слів про те, як експортувати у людському зручному форматі:

  • Винаходити колодязь не в цьому випадку. Для цього :-) розроблено багато програм.
    Я хотів би запропонувати Skyperious [ 1 ] , написаний на python, завантажуваний як вихідний код, так і у двійковій версії для Windows, щоб він міг працювати під кожною операційною системою .
    Він може експортувати в html, txtабо csv.
    Цей командний рядок для 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
    

    (лише в одному рядку та із скайп-іменем другої особи замість <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>/

1
Я згоден, github.com/suurjaak/Skyperious - найкращий доступний інструмент. Він навіть може створювати статистику ваших чатів, наприклад, повідомлення на користувача, смайлики на користувача, найчастіше використовувані слова у чаті тощо.
asmaier

3

Якщо ви хочете найпростішим способом експортувати свою історію в читаний формат, це буде skypebrowser.com , який може прочитати ваш main.dbфайл.

Але оскільки це стороння послуга, ви, очевидно, повинні подумати двічі перед її використанням, якщо у ваших чатах є якісь конфіденційні дані. У цьому випадку ваш єдиний безпечний вибір - браузер SQLite ( messagesтаблиця вам знадобиться ).


1

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


Я виявив це, але це не спрацювало для мене :-(
Петро Штібрані

@Peter: Я є співавтором G-Recorder, чи повідомили ви про свою проблему, натиснувши пункт меню "Повідомте про проблему"? Принаймні просто перевірити, як працює наша команда підтримки :)
Андрій Тиличко


1

Вам просто потрібно перейти до основної папки користувача, як у win7: C: \ Users [your_user] \ AppData \ Roaming \ Skype

Пам’ятайте, що папка «AppData» прихована, тому вам, можливо, доведеться вибрати опцію для показу прихованих папок.

Потім знайдіть папку з ім'ям користувача вашого акаунта в скайпі і скопіюйте її на новий ПК ... всі ваші чати та контакти, і т.д., будуть скопійовані на новий комп'ютер.


1

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


0

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

Skype2email - комерційна програма з безкоштовним пробним періодом 14 днів.
Відмова: Я працював над цією програмою.


Привіт Мехале. Я спробував вашу програму, але вона виходить з ладу, коли я її запускаю. Якщо ви скажете мені, де шукати або що вам надіслати, я спробую ще більше.
Петро Штібрані

0

Найпростіше зробити, якщо ви просто хочете перенести історію на інший комп'ютер - це дотримуватися порад Skype тут: https://support.skype.com/en/faq/FA10649/Can-I-transfer-my-chat -history-from-one-computer-to to other? frompage = search & q = chat + history & fromSearchFirstPage = false . Що ви робите - позначайте ваші розмови як непрочитані, і вони переносяться на інший комп'ютер, коли ви входите на нього наступного разу.


0

Існує можливість експортувати історію Skype в CSV тощо зі сторінки вашого облікового запису на Skype.com .


7
Скажіть, будь ласка, де саме я його можу знайти? Я переглянув увесь обліковий запис Skype, але не знайшов його ніде :-(
Peter Štibraný

1
Не кажучи вже про те, як це страшно
lkraav

0

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.