¿Cómo exporto el historial de Skype?

31

¿Es posible exportar el historial de chat de Skype v4 a un formato de texto plano legible?
( .txt, .xml, .html)

Alternativamente, ¿es posible hacer una copia de seguridad / restaurar el historial de chat de Skype?
(No me importaría hacer una copia de seguridad en Gmail o en un formato de texto sin formato legible).

Encontré numerosas herramientas en Internet e incluso probé algunas, pero parece que no funcionan.

Peter Štibraný
fuente
Hoy en día es posible hacer una copia de seguridad / restaurar los chats simplemente copiando el archivo main.db, y es posible exportar el chat con un programa de Python o directamente con un programa capaz de leer una base de datos sqlite3, haciendo una consulta o seleccionando a través de la opción de una interfaz gráfica . Escribí más detalles en la respuesta a continuación.
Hastur

Respuestas:

11

Vea el script presentado aquí: guarde el historial de chat de Skype .

Aquí está el código:

' 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

Simplemente guárdelo como .vbsarchivo y ejecútelo. Luego, por primera vez, Skype le pedirá permiso para conectar la API de Skype, así que simplemente haga clic en Aceptar. Después de eso, creará una carpeta llamada SkypeChatHistoryy algunos archivos que deberían tener su historial de chat.

harrymc
fuente
1
Gracias. Desafortunadamente no funciona para mí :-( Muestra el error "No se pudo localizar los nombres de clase de automatización 'Skype4COM.skype'". Intentaré averiguar cómo hacerlo funcionar.
Peter Štibraný
1
Lo tengo funcionando ... Necesitaba instalar Skype4COM desde developer.skype.com/Download (usando regsvr32.exe Skype4COM.dll desde cmdline), y luego ejecutar el script nuevamente.
Peter Štibraný
Resulta que usar la API de Skype para obtener el historial de chat es bastante fácil. Gracias por señalarme en la dirección correcta.
Peter Štibraný
1
Recuerdo que lo había usado una vez y funcionó en ese momento. Ahora me da este error i53.tinypic.com/zmd3lf.png
IsmailS
1
La descarga se trasladó a aquí: developer.skype.com/accessories
sjbotha
10

Hay Skype Historian , puede exportar a texto plano, json, csv y xml; También es capaz de agrupar datos.

A partir de 2013, funcionó para mí fuera de la caja (mi Skype es 6.0.0.126). Sin embargo, su sucesor parece ser el skyninja de código abierto , que aún no he probado.

Requisitos del sistema: Windows 7 / Windows XP con .NET Framework 3.5

opciones de exportación

Encontré el enlace a este proyecto en el blog en la respuesta de harrymc.

n611x007
fuente
No parece haber ninguna versión de skype-ninja disponible.
lkraav
@lkraav parece haber una versión 20150318 v0.1 de skyninja. requiere dotnet 4.5
n611x007
3

Esa es la razón por la que todavía estoy usando Skype 3.

¿Qué estaban pensando cuando eliminaron el comando / htmlhistory ?

con Skype 4, me temo que las únicas opciones son programas comerciales como Pamela para Skype (la grabación de chat no está disponible en la versión gratuita).

En cuanto a la copia de seguridad y restauración del historial de chat, eso es bastante fácil:

Busque la carpeta Datos de aplicación \ Skype \ (su nombre de usuario) y cópiela en otra ubicación, como un CD o DVD-ROM.

Para restaurar los archivos del historial, simplemente copie los archivos nuevamente en esa carpeta.


fuente
3

Respuestas Rápidas

  1. ¿Es posible exportar el historial de chat de Skype v4 (.txt, .xml, .html)?
    Sí, es con programas como Skyperious [ 1 ] , escritos en phyton y código abierto, o más directamente con cada programa que permite leer el sqlite3formato de la base de datos [ 3 ] (ver más abajo para más detalles).

  2. Alternativamente, ¿es posible hacer una copia de seguridad / restaurar el historial de chat de Skype?
    Sí, es [ 2 ] . El historial de chat se guarda en un archivo de base de datos, el main.dbarchivo.
    Puede hacer una copia de seguridad y restaurar el main.dbarchivo. cuando necesitas / quieres.


Algunas palabras más a punto de exportar en un formato utilizable por humanos:

  • No es el caso de reinventar el weel. :-) Hay muchos programas desarrollados para esto.
    Me gustaría sugerir Skyperious [ 1 ] , escrito en python, descargable como código fuente y en versión binaria para Windows para que pueda funcionar en cada sistema operativo .
    Puede exportar a html, txto csv.
    Esta línea de comando para Linux creará un archivo html para cada compañero de chat en un subdirectorio:

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

    Para Windows existe el archivo por lotes análogo skyperious.bat. HTML con un buen formato.

  • Para ser sincero, no necesita un programa de tercera parte : pero puede hacer algo de gimnasio con una base de datos.
    El chat está dentro del archivo main.db [ 2 ] . esa es una base de datos sqlite3 [ 3 ], [ 4 ] .
    Con sqlite3o con cualquier otra herramienta gráfica o no, puede hacer una consulta como

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

    (en una sola línea y con el nombre de usuario de Skype de las segundas personas en lugar de <OTHER_SKYPENAME>)

    Tenga en cuenta que es posible para SELECTcada columna de la base de datos que le interese.
    Con una GUI como sqliteman [ 3b ] , puede ser más simple, puede seleccionar la columna de forma gráfica y luego colocar un filtro en el valor de un campo ... y volverá a componer una línea como

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

    ingrese la descripción de la imagen aquí


Algunas palabras más sobre copia de seguridad / restauración

Es posible hacer una copia de seguridad / restaurar el archivo de chat directamente [ 2 ] .

Todo el historial de chat se guarda en un archivo de base de datos, el archivo main.db.
Si realiza copias regulares de este archivo, siempre será posible restaurar el historial de chat.
Asegúrese de que Skype no se esté ejecutando en la computadora.

Solo tiene que encontrar dónde está almacenado en su computadora:

  • En Windows se informa que [ 2b ] está en %appdata%\Skype\YourSkypeName, donde generalmente %appdata%\Skypese traduce como:C:\Users\YourUserName\AppData\Roaming\Skype
  • En Linux, en cambio, está debajo /home/LinuxUsername/.Skype/SkypeUserName/
    o en breve ~/.Skype/SkypeUserName/.
  • En Mac debería estar debajo ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/
Hastur
fuente
1
Estoy de acuerdo, github.com/suurjaak/Skyperious es la mejor herramienta disponible. Incluso puede crear estadísticas de sus chats, por ejemplo, mensajes por usuario, emoticones por usuario, palabras más utilizadas en un chat, etc.
asmaier
3

Si desea la forma más fácil de exportar su historial a un formato legible, sería skypebrowser.com , que puede leer su main.dbarchivo.

Pero dado que es un servicio de terceros, obviamente debe pensarlo dos veces antes de usarlo si tiene datos confidenciales en sus chats. En este caso, su única opción segura es un navegador SQLite (necesitará la messagestabla).

geppertuo
fuente
1

El complemento de Skype G-Recorder funciona muy bien para mí para respaldar chats.


fuente
Encontré eso, pero no funcionó para mí :-(
Peter Štibraný
@ Peter: Soy coautor de G-Recorder, ¿ha informado de su problema mediante el elemento del menú "Informar un problema"? Al menos solo para comprobar cómo funciona nuestro equipo de soporte :)
Andriy Tylychko
1

Solo tiene que ir a su carpeta principal de usuario como en win7: C: \ Users [your_user] \ AppData \ Roaming \ Skype

Recuerde que la carpeta "AppData" está oculta, por lo que es posible que deba seleccionar la opción para mostrar las carpetas ocultas.

Luego, busque la carpeta con el nombre de usuario de su cuenta de Skype y cópiela en la nueva PC ... todos sus chats e iconos de contactos, etc. se copiarán en la nueva computadora.

Iconfx
fuente
1

Simplemente abra una nueva ventana de chat con el contacto para el que desea guardar el historial de chat. Escriba "/ history" (sin las comillas) en la ventana de chat. Una vez que se completa el historial, seleccione / resalte una parte del texto con el cursor del mouse. Luego, (en Windows) presione " Ctrl+ A" en su teclado. Una vez que todo esté resaltado, presione " Ctrl+ C". Abra Microsoft Word (o un software de procesamiento de texto similar, como OpenOffice.org Writer) y presione " Ctrl+ V" en su teclado. Guarde el archivo en su disco duro o unidad USB, y listo: tiene un registro completo de su historial de chat.

Wesley
fuente
0

Software que permite grabar llamadas y almacenar llamadas grabadas / historial de chat / transferencias de archivos a su correo electrónico - http://skype2email.com

Skype2email es un programa comercial con una prueba gratuita de 14 días.
Descargo de responsabilidad: trabajé en este programa.

Mehal
fuente
Hola mehal Intenté su programa, pero se bloquea cuando lo inicio. Si me dices dónde buscar o qué enviarte, lo intentaré más.
Peter Štibraný
0

Hay una opción para exportar el historial de Skype en CSV, etc. desde la página de su cuenta en Skype.com .

Daniel
fuente
77
¿Podría escribir dónde puedo encontrarlo exactamente?
Revisé
1
Sin mencionar lo aterrador que es eso
lkraav
0

Creo que hay una manera más elegante de guardar sus chats y llamadas y luego enviarlo por correo electrónico. Por ejemplo, usar Skype Recorder le permite guardarlo todo en el almacenamiento en línea, así como agregar funciones como la búsqueda de texto completo, reproducir sus llamadas en línea y muchas otras características interesantes. Creo que realmente te ayudará con tu problema.

Zhenya
fuente