Come esportare la cronologia di Skype?


31

È possibile esportare la cronologia chat di Skype v4 in un formato di testo normale leggibile?
( .txt, .xml, .html)

In alternativa, è possibile eseguire il backup / ripristino della cronologia chat di Skype?
(Non mi dispiacerebbe fare il backup su Gmail o in un formato di testo normale leggibile).

Ho trovato numerosi strumenti su Internet e ne ho persino provati alcuni, ma non sembrano funzionare.


Oggi è possibile eseguire il backup / ripristino delle chat semplicemente copiando il file main.dbed è possibile esportare la chat con un programma Python o direttamente con un programma in grado di leggere un database sqlite3, fare una query o selezionare attraverso l'opzione di un'interfaccia grafica . Ho scritto più dettagli nella risposta qui sotto.
Hastur,

Risposte:


11

Vedi lo script presentato qui: Salva la cronologia chat di Skype .

Ecco il codice:

' 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

Basta salvarlo come .vbsfile ed eseguirlo. Quindi, per la prima volta, Skype ti chiederà l'autorizzazione per connettere l'API di Skype, quindi fai clic su OK. Successivamente creerà una cartella chiamata SkypeChatHistorye alcuni file in essa contenuti che dovrebbero contenere la cronologia della chat.


1
Grazie. Sfortunatamente non funziona per me :-( Mostra l'errore "Impossibile trovare i nomi delle classi di automazione 'Skype4COM.skype'". Proverò a scoprire come farlo funzionare.
Peter Štibraný

1
Ho funzionato ... Avevo bisogno di installare Skype4COM da developer.skype.com/Download (utilizzando regsvr32.exe Skype4COM.dll da cmdline), quindi eseguire nuovamente lo script.
Peter Štibraný,

Si scopre che l'utilizzo dell'API di Skype per ottenere la cronologia delle chat è abbastanza semplice. Grazie per avermi indicato nella direzione corretta.
Peter Štibraný,

1
Ricordo di averlo usato una volta e ha funzionato in quel momento. Ora mi dà questo errore i53.tinypic.com/zmd3lf.png
IsmailS

1
Il download è stato spostato qui: developer.skype.com/accessories
sjbotha,

10

C'è Skype Historian , può esportare in testo semplice, json, csv e xml; anche in grado di raggruppare i dati.

A partire dal 2013, ha funzionato per me immediatamente (il mio skype è 6.0.0.126). Tuttavia, il suo successore sembra essere la skyninja open source , che non ho ancora provato.

Requisiti di sistema: Windows 7 / Windows XP con .NET Framework 3.5

opzioni di esportazione

Ho trovato il link a questo progetto sul blog nella risposta di harrymc.


Sembra che non ci siano build di skype-ninja disponibili.
lkraav,

@lkraav sembra che ci sia una versione 20150318 v0.1 di skyninja. richiede dotnet 4.5
n611x007

3

questo è il motivo per cui sto ancora usando Skype 3.

cosa stavano pensando quando hanno rimosso il comando / htmlhistory ???

con Skype 4 temo che le uniche opzioni siano programmi commerciali come Pamela per Skype (la registrazione della chat non è disponibile nella versione gratuita).

per quanto riguarda il backup e il ripristino della cronologia della chat, è abbastanza facile:

Individua la cartella Dati applicazioni \ Skype \ (il tuo nome utente) e copiala in un'altra posizione come un CD o un DVD-ROM.

Per ripristinare i file della cronologia, basta copiare i file in quella cartella.


3

Risposte rapide

  1. È possibile esportare la cronologia chat di Skype v4 (.txt, .xml, .html)?
    Sì, è con programmi come Skyperious [ 1 ] , scritti in phyton e open source, o più direttamente con ogni programma che consente di leggere il sqlite3formato del database [ 3 ] (vedi sotto per i dettagli).

  2. In alternativa, è possibile eseguire il backup / ripristino della cronologia chat di Skype?
    Sì, è [ 2 ] . La cronologia della chat viene salvata in un file di database, il main.dbfile.
    È possibile eseguire il backup e il ripristino del main.dbfile. quando hai bisogno / vuoi.


Qualche parola in più per esportare in un formato utilizzabile dall'uomo:

  • Non è il caso di reinventare il weel :-) Ci sono molti programmi sviluppati per questo.
    Vorrei suggerire Skyperious [ 1 ] , scritto in Python, scaricabile come codice sorgente e in versione binaria per Windows in modo che possa funzionare con ciascun sistema operativo .
    È in grado di esportare in html, txto csv.
    Questa riga di comando per Linux creerà un file html per ogni altro partner di chat in una sottodirectory:

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

    Per Windows esiste il file batch analogo skyperious.bat. HTML con un bel formato.

  • Ad essere onesti non è necessario un programma di terza parte : ma puoi fare un po 'di ginnastica con un database.
    La chat è all'interno del file main.db [ 2 ] . questo è un database sqlite3 [ 3 ], [ 4 ] .
    Con sqlite3o con qualsiasi altro strumento grafico o non grafico è possibile eseguire una query come

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

    (in una sola riga e con il nome utente skype della seconda persona anziché <OTHER_SKYPENAME>)

    Nota che è possibile per SELECTogni colonna del database che ti interessa.
    Con una GUI come sqliteman [ 3b ] , può essere più semplice, puoi selezionare la colonna in modo grafico, quindi inserire un filtro sul valore di un campo ... e comporrà di nuovo una riga come

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

    inserisci qui la descrizione dell'immagine


Qualche parola in più su backup / ripristino

È possibile eseguire il backup / ripristino del file di chat direttamente [ 2 ] .

Tutta la cronologia della chat viene salvata in un file di database, il file main.db.
Se si eseguono copie regolari di questo file, sarà sempre possibile ripristinare la cronologia della chat.
Assicurati che Skype non sia in esecuzione sul computer.

Devi solo trovare dove è memorizzato sul tuo computer:

  • In Windows è segnalato [ 2b ] di essere %appdata%\Skype\YourSkypeName, dove di solito %appdata%\Skypesi traduce in:C:\Users\YourUserName\AppData\Roaming\Skype
  • In Linux invece è sotto /home/LinuxUsername/.Skype/SkypeUserName/
    o tra poco ~/.Skype/SkypeUserName/.
  • Su Mac dovrebbe essere sotto ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/

1
Sono d'accordo, github.com/suurjaak/Skyperious è lo strumento migliore disponibile. Può anche creare statistiche delle tue chat, ad esempio messaggi per utente, emoticon per utente, parole più utilizzate in una chat, ecc.
asmaier,

3

Se vuoi il modo più semplice per esportare la tua cronologia in un formato leggibile, sarebbe skypebrowser.com , che può leggere il tuo main.dbfile.

Ma poiché si tratta di un servizio di terze parti, ovviamente dovresti pensarci due volte prima di utilizzarlo se hai dati confidenziali nelle tue chat. In questo caso l'unica scelta sicura è un browser SQLite (avrai bisogno della messagestabella).


1

Il plugin G-Recorder di Skype funziona perfettamente per me per il backup delle chat.


L'ho trovato, ma non ha funzionato per me :-(
Peter Štibraný

@Peter: Sono un coautore di G-Recorder, hai segnalato un problema con la voce di menu "Segnala un problema"? Almeno solo per verificare come funziona il nostro team di supporto :)
Andriy Tylychko,


1

Devi solo andare nella cartella principale dell'utente come in win7: C: \ Users [tuo_utente] \ AppData \ Roaming \ Skype

Ricorda che la cartella "AppData" è nascosta, quindi potresti dover selezionare l'opzione per mostrare le cartelle nascoste.

Quindi trova la cartella con il nome utente del tuo account skype e copiala sul nuovo pc ... tutte le tue icone di chat, contatti, ecc. Verranno copiate sul nuovo computer.


1

Basta aprire una nuova finestra di chat con il contatto per il quale si desidera salvare la cronologia della chat. Digita "/ history" (senza virgolette) nella finestra della chat. Una volta popolata la cronologia, seleziona / evidenzia una parte del testo con il cursore del mouse. Quindi, (su Windows) premi "Ctrl + A" sulla tastiera. Una volta evidenziato tutto, premi " Ctrl+ C". Apri Microsoft Word (o un software di elaborazione testi simile, come OpenOffice.org Writer) e premi " Ctrl+ V" sulla tastiera. Salva il file sul tuo disco rigido o unità USB e voilà: hai un registro completo della cronologia della chat.


0

Software che consente di registrare chiamate e memorizzare chiamate registrate / cronologia chat / trasferimenti di file nella tua e-mail - http://skype2email.com

Skype2email è un programma commerciale con una prova gratuita di 14 giorni.
Disclaimer: ho lavorato su questo programma.


Ciao Mehal Ho provato il tuo programma, ma si blocca quando lo avvio. Se mi dici dove cercare o cosa inviarti, lo proverò di più.
Peter Štibraný,


0

C'è un'opzione per esportare la cronologia di Skype in CSV ecc. Dalla pagina del tuo account su Skype.com .


7
Potresti per favore scrivere dove posso trovarlo esattamente? Ho controllato l'intero account Skype, ma non l'ho trovato da nessuna parte :-(
Peter Štibraný,

1
Per non parlare di quanto sia spaventoso
lkraav il

0

Penso che ci sia un modo più elegante per salvare le tue chat e chiamate e inviarlo via e-mail. Ad esempio, l'utilizzo di Skype Recorder ti consente di salvarlo tutto nello spazio di archiviazione online e di aggiungere funzioni come la ricerca full-text, riprodurre le chiamate online e molte altre funzioni interessanti. Penso che ti aiuterà davvero con il tuo problema.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.