Comment exporter l'historique de Skype?

31

Est-il possible d'exporter l'historique de discussion Skype v4 dans un format de texte brut lisible?
( .txt, .xml, .html)

Alternativement, est-il possible de sauvegarder / restaurer l'historique des discussions Skype?
(Cela ne me dérangerait pas de sauvegarder sur Gmail ou sur un format de texte en clair lisible).

J'ai trouvé de nombreux outils sur Internet et j'ai même essayé certains d'entre eux, mais ils ne semblent pas fonctionner.

Peter Štibraný
la source
De nos jours, il est possible de sauvegarder / restaurer les chats en copiant simplement le fichier main.db, et il est possible d'exporter le chat avec un programme python ou directement avec un programme capable de lire une base de données sqlite3, en faisant une requête ou en sélectionnant via l'option d'une interface graphique . J'ai écrit plus de détails dans la réponse ci-dessous.
Hastur

Réponses:

11

Voir le script présenté ici: Enregistrer l'historique des discussions Skype .

Voici le code:

' 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

Enregistrez-le simplement en tant que .vbsfichier et exécutez-le. Ensuite, la première fois, Skype vous demandera l'autorisation de connecter l'API Skype, cliquez simplement sur OK. Après cela, il créera un dossier appelé SkypeChatHistoryet quelques fichiers qui devraient avoir votre historique de discussion.

harrymc
la source
1
Merci. Malheureusement, cela ne fonctionne pas pour moi :-( Il montre l'erreur "Impossible de localiser les noms de classe d'automatisation" Skype4COM.skype "". J'essaierai de savoir comment le faire fonctionner.
Peter Štibraný
1
Je le fais fonctionner ... J'avais besoin d'installer Skype4COM à partir de developer.skype.com/Download (en utilisant regsvr32.exe Skype4COM.dll à partir de cmdline), puis réexécutez le script.
Peter Štibraný
Il s'avère que l'utilisation de l'API Skype pour obtenir l'historique des discussions est assez facile. Merci de m'avoir indiqué dans la bonne direction.
Peter Štibraný
1
Je me souviens l'avoir utilisé une fois et cela a fonctionné à l'époque. Maintenant, cela me donne cette erreur i53.tinypic.com/zmd3lf.png
IsmailS
1
Le téléchargement a été déplacé ici: developer.skype.com/accessories
sjbotha
10

Il y a Skype Historian , il peut exporter en texte brut, json, csv et xml; également en mesure de regrouper les données.

À partir de 2013, cela a fonctionné pour moi hors de la boîte (mon skype est 6.0.0.126). Cependant, son successeur semble être le skyninja open-source , que je n'ai pas encore essayé.

Configuration requise: Windows 7 / Windows XP avec .NET Framework 3.5

options d'exportation

Trouvé le lien vers ce projet sur le blog dans la réponse de harrymc.

n611x007
la source
Il ne semble pas y avoir de versions de skype-ninja disponibles.
lkraav
@lkraav il semble y avoir une version 20150318 v0.1 de skyninja. il nécessite dotnet 4.5
n611x007
3

c'est la raison pour laquelle j'utilise toujours Skype 3.

à quoi pensaient-ils quand ils ont supprimé la commande / htmlhistory ???

avec Skype 4, je crains que les seules options soient des programmes commerciaux tels que Pamela pour Skype (l'enregistrement de chat n'est pas disponible dans la version gratuite).

quant à la sauvegarde et la restauration de l'historique de chat, c'est assez simple:

Recherchez le dossier Application Data \ Skype \ (votre nom d'utilisateur) et copiez-le dans un autre emplacement tel qu'un CD ou un DVD-ROM.

Pour restaurer les fichiers d'historique, copiez simplement les fichiers dans ce dossier.


la source
3

Réponses rapides

  1. Est-il possible d'exporter l'historique de discussion Skype v4 (.txt, .xml, .html)?
    Oui, c'est avec des programmes comme Skyperious [ 1 ] , écrits en phyton et open source, ou plus directement avec chaque programme qui permet de lire le sqlite3format de la base de données [ 3 ] (voir ci-dessous pour plus de détails).

  2. Alternativement, est-il possible de sauvegarder / restaurer l'historique des discussions Skype?
    Oui, c'est [ 2 ] . L'historique de discussion est enregistré dans un fichier de base de données, le main.dbfichier.
    Vous pouvez sauvegarder et restaurer le main.dbfichier. quand vous avez besoin / voulez.


Quelques mots plus sur l'exportation dans un format utilisable par l'homme:

  • Ce n'est pas le cas de réinventer le weel :-) Il existe de nombreux programmes développés pour cela.
    Je voudrais suggérer Skyperious [ 1 ] , écrit en python, téléchargeable en tant que code source et en version binaire pour Windows afin qu'il puisse fonctionner sous chaque système d'exploitation .
    Il est capable d'exporter en html, txtou csv.
    Cette ligne de commande pour Linux créera un fichier html pour chaque autre partenaire de chat dans un sous-répertoire:

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

    Pour Windows, il existe un fichier de commandes analogue skyperious.bat. HTML avec un joli format.

  • Pour être honnête, vous n'avez pas besoin d'un programme en 3ème partie : mais vous pouvez faire de la gym avec une base de données.
    Le chat est à l' intérieur du fichier main.db [ 2 ] . c'est une base de données sqlite3 [ 3 ], [ 4 ] .
    Avec sqlite3ou avec tout autre outil graphique ou non graphique, vous pouvez effectuer une requête telle que

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

    (en une seule ligne et avec le nom d'utilisateur skype des deuxièmes personnes au lieu de <OTHER_SKYPENAME>)

    Notez qu'il est possible d' accéder à SELECTchaque colonne de la base de données qui vous intéresse.
    Avec une interface graphique telle que sqliteman [ 3b ] , cela peut être plus simple, vous pouvez sélectionner la colonne de manière graphique, puis mettre un filtre sur la valeur de un champ ... et il composera à nouveau une ligne comme

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

    entrez la description de l'image ici


Quelques mots sur la sauvegarde / restauration

Il est possible de sauvegarder / restaurer directement le fichier de discussion [ 2 ] .

Tout l'historique de discussion est enregistré dans un fichier de base de données, le fichier main.db.
Si vous faites des copies régulières de ce fichier, il sera toujours possible de restaurer l'historique de discussion.
Assurez-vous que Skype n'est pas en cours d'exécution sur l'ordinateur.

Il vous suffit de trouver où il est stocké sur votre ordinateur:

  • Sous Windows , il est rapporté [ 2b ] à être %appdata%\Skype\YourSkypeName, où habituellement %appdata%\Skypeest traduit par:C:\Users\YourUserName\AppData\Roaming\Skype
  • Sous Linux, c'est plutôt sous /home/LinuxUsername/.Skype/SkypeUserName/
    ou bientôt ~/.Skype/SkypeUserName/.
  • Sur Mac devrait être sous ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/
Hastur
la source
1
Je suis d'accord, github.com/suurjaak/Skyperious est le meilleur outil disponible. Il peut même créer des statistiques de vos chats, par exemple des messages par utilisateur, des émoticônes par utilisateur, les mots les plus utilisés dans un chat, etc.
asmaier
3

Si vous voulez la façon la plus simple d'exporter votre historique dans un format lisible, ce serait skypebrowser.com , qui peut lire votre main.dbfichier.

Mais comme il s'agit d'un service tiers, vous devriez évidemment réfléchir à deux fois avant de l'utiliser si vous avez des données confidentielles dans vos chats. Dans ce cas, votre seul choix sûr est un navigateur SQLite (vous aurez besoin du messagestableau).

geppertuo
la source
1

Le plugin Skype G-Recorder fonctionne très bien pour moi pour sauvegarder les chats.


la source
Je l'ai trouvé, mais cela n'a pas fonctionné pour moi :-(
Peter Štibraný
@Peter: Je suis co-auteur de G-Recorder, avez-vous signalé votre problème par l'élément de menu "Signaler un problème"? Au moins juste pour vérifier le fonctionnement de notre équipe d'assistance :)
Andriy Tylychko
1

Il vous suffit d'accéder au dossier principal de votre utilisateur comme dans win7: C: \ Users [votre_utilisateur] \ AppData \ Roaming \ Skype

N'oubliez pas que le dossier «AppData» est masqué, vous devrez donc peut-être sélectionner l'option pour afficher les dossiers masqués.

Ensuite, trouvez le dossier avec le nom d'utilisateur de votre compte skype et copiez-le sur le nouveau PC ... toutes vos icônes de chats et de contacts et etc. seront copiées sur le nouvel ordinateur.

Iconfx
la source
1

Ouvrez simplement une nouvelle fenêtre de discussion avec le contact pour lequel vous souhaitez enregistrer l'historique de discussion. Tapez "/ history" (sans les guillemets) dans la fenêtre de discussion. Une fois l'historique rempli, sélectionnez / mettez en surbrillance une partie du texte avec le curseur de votre souris. Ensuite, (sous Windows), appuyez sur " Ctrl+ A" sur votre clavier. Une fois que tout est en surbrillance, appuyez sur " Ctrl+ C". Ouvrez Microsoft Word (ou un logiciel de traitement de texte similaire, comme OpenOffice.org Writer) et appuyez sur " Ctrl+ V" sur votre clavier. Enregistrez le fichier sur votre disque dur ou clé USB, et le tour est joué: vous disposez d'un enregistrement complet de votre historique de chat.

Wesley
la source
0

Logiciel qui permet d'enregistrer les appels et de stocker les appels enregistrés / l'historique de chat / les transferts de fichiers sur votre messagerie - http://skype2email.com

Skype2email est un programme commercial avec un essai gratuit de 14 jours.
Avertissement: j'ai travaillé sur ce programme.

Mehal
la source
Salut Mehal. J'ai essayé votre programme, mais il se bloque lorsque je le démarre. Si vous me dites où chercher ou quoi vous envoyer, je vais essayer plus.
Peter Štibraný
0

La chose la plus simple à faire si vous souhaitez simplement transférer l'historique vers un autre ordinateur est de suivre les conseils de Skype ici: https://support.skype.com/en/faq/FA10649/Can-I-transfer-my-chat -histoire-d'un-ordinateur à un autre? frompage = search & q = chat + history & fromSearchFirstPage = false . Ce que vous faites, c'est marquer vos conversations comme non lues, et elles sont transférées vers un autre ordinateur lorsque vous vous y connectez la prochaine fois.

RyanTM
la source
0

Il existe une option pour exporter l'historique Skype en CSV, etc. à partir de la page de votre compte sur Skype.com .

Daniel
la source
7
Pourriez-vous s'il vous plaît écrire où exactement je peux le trouver? J'ai regardé l'intégralité du compte Skype, mais je ne l'ai trouvé nulle part :-(
Peter Štibraný
1
Sans oublier à quel point c'est effrayant
lkraav
0

Je pense qu'il existe un moyen plus élégant de sauvegarder vos conversations et vos appels, puis de les envoyer par e-mail. Par exemple, l'utilisation de Skype Recorder vous permet de tout enregistrer sur le stockage en ligne et d'ajouter des fonctions telles que la recherche en texte intégral, lire vos appels en ligne et bien d'autres fonctionnalités intéressantes. Je pense que cela vous aidera vraiment avec votre problème.

Zhenya
la source