Jak mogę wyeksportować historię Skype?

31

Czy można wyeksportować historię czatów Skype v4 do czytelnego formatu tekstowego?
( .txt, .xml, .html)

Alternatywnie, czy można wykonać kopię zapasową / przywrócić historię czatów skype?
(Nie miałbym nic przeciwko tworzeniu kopii zapasowych w Gmailu lub w czytelnym formacie tekstowym).

Znalazłem wiele narzędzi w Internecie, a nawet wypróbowałem niektóre z nich, ale wydaje się, że nie działają.

Peter Štibraný
źródło
W dzisiejszych czasach możliwe jest tworzenie kopii zapasowych / przywracanie czatów po prostu przez skopiowanie pliku main.db, i można wyeksportować czat za pomocą programu python lub bezpośrednio za pomocą programu, który może odczytać bazę danych sqlite3, wykonując zapytanie lub wybierając opcję interfejsu graficznego . Bardziej szczegółowo napisałem w odpowiedzi poniżej.
Hastur

Odpowiedzi:

11

Zobacz skrypt przedstawiony tutaj: Zapisz historię czatów Skype .

Oto kod:

' 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

Po prostu zapisz go jako .vbsplik i uruchom. Wtedy po raz pierwszy Skype zapyta Cię o pozwolenie na połączenie API Skype, więc po prostu kliknij OK. Następnie utworzy folder o nazwie SkypeChatHistoryi niektóre pliki, które powinny mieć historię czatów.

harrymc
źródło
1
Dzięki. Niestety dla mnie to nie działa :-( Pokazuje błąd „Nie można zlokalizować nazw klas automatyzacji„ Skype4COM.skype ””. Spróbuję dowiedzieć się, jak to zrobić.
Peter Štibraný
1
Mam to działa ... Musiałem zainstalować Skype4COM z developer.skype.com/Download (używając regsvr32.exe Skype4COM.dll z cmdline), a następnie ponownie uruchomić skrypt.
Peter Štibraný
Okazuje się, że korzystanie ze Skype API do pobierania historii czatów jest dość łatwe. Dzięki za wskazanie mi właściwego kierunku.
Peter Štibraný
1
Pamiętam, że raz go użyłem i wtedy zadziałało. Teraz daje mi ten błąd i53.tinypic.com/zmd3lf.png
IsmailS
1
Pobrano
10

Jest Skype Historian , może eksportować do zwykłego tekstu, json, csv i xml; także w stanie grupować dane.

Począwszy od 2013 roku, działało to dla mnie od razu (mój Skype jest 6.0.0.126). Jednak jego następcą wydaje się być skyninja typu open source , której jeszcze nie próbowałem.

Wymagania systemowe: Windows 7 / Windows XP z .NET Framework 3.5

opcje eksportu

Link do tego projektu znalazł na blogu w odpowiedzi Harrymca.

n611x007
źródło
Wydaje się, że nie ma dostępnych żadnych wersji skype-ninja.
lkraav
@lkraav wydaje się, że jest wersja 20150318 v0.1 skyninja. wymaga dotnet 4.5
n611x007
3

to jest powód, dla którego wciąż używam Skype 3.

co oni myśleli, kiedy usunęli polecenie / htmlhistory ???

z Skype 4 obawiam się, że jedynymi opcjami są specjalne programy, takie jak Pamela dla Skype (nagrywanie czatu nie jest dostępne w wersji darmowej).

jeśli chodzi o tworzenie kopii zapasowych i przywracanie historii czatów, to dość proste:

Znajdź folder Dane aplikacji \ Skype \ (twoja nazwa użytkownika) i skopiuj go do innej lokalizacji, takiej jak dysk CD lub DVD-ROM.

Aby przywrócić pliki historii, po prostu skopiuj je z powrotem do tego folderu.


źródło
3

Szybkie odpowiedzi

  1. Czy można wyeksportować historię czatów Skype v4 (.txt, .xml, .html)?
    Tak, to jest z programami takimi jak Skyperious [ 1 ] , napisany w Phyton i open source, lub bardziej bezpośrednio z każdego programu, który pozwala, aby odczytać sqlite3formatu bazy danych [ 3 ] (szczegóły poniżej).

  2. Alternatywnie, czy można wykonać kopię zapasową / przywrócić historię czatów skype?
    Tak, to jest [ 2 ] . Historia czatów jest zapisywana w jednym pliku bazy danych, main.dbpliku.
    Możesz wykonać kopię zapasową i przywrócić main.dbplik. kiedy potrzebujesz / chcesz.


Kilka słów o wyeksportowaniu w formacie użytecznym dla człowieka:

  • To nie jest tak, aby wynaleźć na nowo Weel :-) Istnieje wiele programów opracowanych w tym celu.
    Chciałbym zasugerować Skyperiousa [ 1 ] , napisanego w Pythonie, do pobrania jako kod źródłowy oraz w wersji binarnej dla Windows, aby mógł działać w każdym systemie operacyjnym .
    Jest w stanie eksportować w html, txtlub csv.
    Ten wiersz poleceń dla systemu Linux utworzy plik HTML dla każdego partnera czatu w podkatalogu:

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

    W systemie Windows istnieje analogiczny plik wsadowy skyperious.bat. HTML z ładnym formatem.

  • Szczerze mówiąc, nie potrzebujesz programu z 3 części : ale możesz zrobić siłownię z bazą danych.
    Czat znajduje się w pliku main.db [ 2 ] . to jest baza danych sqlite3 [ 3 ], [ 4 ] .
    Za sqlite3pomocą dowolnego narzędzia graficznego lub innego narzędzia graficznego można wykonać zapytanie, takie jak

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

    (tylko w jednym wierszu i zamiast nazwy użytkownika skype drugiej osoby <OTHER_SKYPENAME>)

    Zauważ, że możliwe jest, aby SELECTkażda kolumna bazy danych, którą jesteś zainteresowany.
    Z graficznym interfejsem użytkownika, takim jak sqliteman [ 3b ] , to może być prostsze, możesz wybrać kolumnę w sposób graficzny, a następnie ustawić filtr na wartość pole ... i ponownie utworzy linię jako

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

    wprowadź opis zdjęcia tutaj


Kilka słów więcej o tworzeniu kopii zapasowych / przywracaniu

Możliwe jest bezpośrednie utworzenie kopii zapasowej / przywrócenie pliku czatu [ 2 ] .

Cała historia czatów jest zapisywana w jednym pliku bazy danych, pliku main.db.
Jeśli wykonujesz regularne kopie tego pliku, zawsze będzie możliwe przywrócenie historii czatów.
Upewnij się, że Skype nie działa na komputerze.

Musisz tylko znaleźć, gdzie jest przechowywany na twoim komputerze:

  • W Windows jest zgłaszane [ 2b ], w %appdata%\Skype\YourSkypeNamektórym zwykle %appdata%\Skypetłumaczy się to:C:\Users\YourUserName\AppData\Roaming\Skype
  • W Linuksie zamiast tego jest poniżej /home/LinuxUsername/.Skype/SkypeUserName/
    lub wkrótce ~/.Skype/SkypeUserName/.
  • Na komputerze Mac powinno być poniżej ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/
Hastur
źródło
1
Zgadzam się, github.com/suurjaak/Skyperious to najlepsze dostępne narzędzie. Może nawet tworzyć statystyki twoich czatów, np. Wiadomości na użytkownika, emotikony na użytkownika, najczęściej używane słowa na czacie itp.
asmaier
3

Jeśli chcesz najprościej wyeksportować swoją historię do czytelnego formatu, może to być skypebrowser.com , który może odczytać twój main.dbplik.

Ale ponieważ jest to usługa strony trzeciej, oczywiście powinieneś pomyśleć dwa razy przed skorzystaniem z niej, jeśli masz poufne dane w swoich czatach. W takim przypadku jedynym bezpiecznym wyborem jest przeglądarka SQLite (będziesz potrzebować messagestabeli).

geppertuo
źródło
1

Wtyczka Skype G-Recorder działa świetnie dla mnie do tworzenia kopii zapasowych czatów.


źródło
Znalazłem to, ale to nie działało dla mnie :-(
Peter Štibraný
@Peter: Jestem współautorem programu G-Recorder. Czy zgłosiłeś problem przez pozycję menu „Zgłoś problem”? Przynajmniej żeby sprawdzić, jak działa nasz zespół wsparcia :)
Andriy Tylychko,
1

Musisz tylko przejść do głównego folderu użytkownika, jak w win7: C: \ Users [twój_użytkownik] \ AppData \ Roaming \ Skype

Pamiętaj, że folder „AppData” jest ukryty, więc może być konieczne wybranie opcji wyświetlania ukrytych folderów.

Następnie znajdź folder z nazwą użytkownika konta Skype i skopiuj go na nowy komputer ... wszystkie ikony czatów i kontaktów itp. Zostaną skopiowane na nowy komputer.

Iconfx
źródło
1

Wystarczy otworzyć nowe okno czatu z kontaktem, dla którego chcesz zapisać historię czatów. Wpisz „/ history” (bez cudzysłowu) w oknie czatu. Po zapełnieniu historii zaznacz / zaznacz część tekstu kursorem myszy. Następnie (w systemie Windows) naciśnij „ Ctrl+ A” na klawiaturze. Gdy wszystko zostanie podświetlone, naciśnij „ Ctrl+ C”. Otwórz Microsoft Word (lub podobne oprogramowanie do edycji tekstu, takie jak OpenOffice.org Writer) i naciśnij „ Ctrl+ V” na klawiaturze. Zapisz plik na dysku twardym lub dysku USB i voila: masz pełny zapis swojej historii czatów.

Wesley
źródło
0

Oprogramowanie umożliwiające nagrywanie połączeń i przechowywanie zarejestrowanych połączeń / historii czatów / transferów plików na adres e-mail - http://skype2email.com

Skype2email to program komercyjny z 14-dniową bezpłatną wersją próbną.
Uwaga: Pracowałem nad tym programem.

Mehal
źródło
Cześć Mehal. Wypróbowałem twój program, ale zawiesza się, gdy go uruchamiam. Jeśli powiesz mi, gdzie mam szukać lub co mam wysłać, dam ci więcej możliwości.
Peter Štibraný
0

Istnieje możliwość wyeksportowania historii Skype w CSV itp. Ze strony konta na Skype.com .

Daniel
źródło
7
Czy mógłbyś napisać, gdzie dokładnie mogę to znaleźć? Przejrzałem całe konto Skype, ale nigdzie go nie znalazłem :-(
Peter Štibraný
1
Nie wspominając już o tym, jak to jest przerażające
lkraav
0

Myślę, że istnieje bardziej elegancki sposób na zapisywanie czatów i połączeń, a następnie wysyłanie ich na e-mail. Na przykład użycie Skype Recorder pozwala zapisać wszystko w pamięci online, a także dodać takie funkcje, jak wyszukiwanie pełnotekstowe, odtwarzanie połączeń online i wiele innych ciekawych funkcji. Myślę, że to naprawdę pomoże ci z twoim problemem.

Zhenya
źródło