Bagaimana cara mengekspor riwayat Skype?

31

Apakah mungkin untuk mengekspor riwayat obrolan Skype v4 ke dalam format teks biasa yang dapat dibaca?
( .txt, .xml, .html)

Atau, apakah mungkin untuk membuat cadangan / mengembalikan riwayat obrolan skype?
(Saya tidak keberatan mencadangkan ke Gmail, atau ke format teks biasa yang dapat dibaca).

Saya telah menemukan banyak alat di internet dan bahkan mencoba beberapa di antaranya, tetapi tampaknya tidak berhasil.

Peter Štibraný
sumber
Saat ini dimungkinkan untuk membuat cadangan / memulihkan obrolan hanya dengan menyalin file main.db, dan dimungkinkan untuk mengekspor obrolan dengan program python atau langsung dengan program yang dapat membaca database sqlite3, melakukan kueri atau memilih melalui opsi antarmuka grafis . Saya menulis lebih detail dalam jawaban di bawah ini.
Hastur

Jawaban:

11

Lihat skrip yang disajikan di sini: Simpan riwayat obrolan Skype .

Ini kodenya:

' 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

Simpan saja sebagai .vbsfile dan jalankan. Kemudian pada saat pertama, Skype akan meminta Anda tentang izin untuk menghubungkan API Skype, jadi klik saja OK. Setelah itu akan dibuat folder bernama SkypeChatHistorydan beberapa file di dalamnya yang seharusnya memiliki riwayat obrolan Anda.

harrymc
sumber
1
Terima kasih. Sayangnya itu tidak bekerja untuk saya :-( Ini menunjukkan "Tidak dapat menemukan nama kelas otomatisasi 'Skype4COM.skype'" kesalahan saya akan mencoba untuk mencari tahu bagaimana untuk membuatnya bekerja..
Peter Štibraný
1
Saya sudah bekerja ... Saya perlu menginstal Skype4COM dari developer.skype.com/Download (dengan menggunakan regsvr32.exe Skype4COM.dll dari cmdline), dan kemudian jalankan skrip lagi.
Peter Štibraný
Ternyata menggunakan Skype API untuk mendapatkan riwayat obrolan cukup mudah. Terima kasih telah menunjukkan saya ke arah yang benar.
Peter Štibraný
1
Saya ingat saya pernah menggunakannya dan berhasil pada saat itu. Sekarang ini memberi saya kesalahan ini i53.tinypic.com/zmd3lf.png
IsmailS
1
Unduhan dipindahkan ke sini: developer.skype.com/accessories
sjbotha
10

Ada Skype Historian , dapat mengekspor ke teks biasa, json, csv dan xml; juga dapat mengelompokkan data.

Pada 2013, itu bekerja untuk saya di luar kotak (skype saya 6.0.0.126). Namun penggantinya tampaknya adalah skyninja open-source , yang belum saya coba.

Persyaratan Sistem: Windows 7 / Windows XP dengan .NET Framework 3.5

opsi ekspor

Temukan tautan ke proyek ini di blog dalam jawaban harrymc.

n611x007
sumber
Sepertinya tidak ada membangun skype-ninja yang tersedia.
lkraav
@ lkraav sepertinya ada rilis 20120318 v0.1 skyninja. membutuhkan dotnet 4.5
n611x007
3

itulah alasan mengapa saya masih menggunakan Skype 3.

apa yang mereka pikirkan ketika mereka menghapus perintah / htmlhistory ???

dengan Skype 4 saya khawatir satu-satunya pilihan adalah program komersial seperti Pamela untuk Skype (rekaman obrolan tidak tersedia dalam versi gratis).

untuk cadangan dan memulihkan riwayat obrolan, itu cukup mudah:

Temukan folder Data Aplikasi \ Skype \ (nama pengguna Anda) dan salin ke lokasi lain seperti CD atau DVD-ROM.

Untuk mengembalikan file histori cukup salin file kembali ke folder itu.


sumber
3

Jawaban cepat

  1. Apakah mungkin untuk mengekspor riwayat obrolan Skype v4 (.txt, .xml, .html)?
    Ya, itu dengan program-program seperti Skyperious [ 1 ] , yang ditulis dalam phyton dan open source, atau lebih langsung dengan setiap program yang memungkinkan untuk membaca sqlite3format database [ 3 ] (lihat di bawah untuk perincian).

  2. Atau, apakah mungkin untuk membuat cadangan / mengembalikan riwayat obrolan skype?
    Ya, itu [ 2 ] . Riwayat obrolan disimpan dalam satu file database, main.dbfile tersebut.
    Anda dapat membuat cadangan dan memulihkan main.dbfile. ketika Anda membutuhkan / inginkan.


Beberapa kata lebih lanjut tentang ekspor dalam format yang dapat digunakan manusia:

  • Ini bukan kasus untuk menemukan kembali weel. :-) Ada banyak program yang dikembangkan untuk ini.
    Saya ingin menyarankan Skyperious [ 1 ] , ditulis dengan python, dapat diunduh sebagai kode sumber dan dalam versi biner untuk Windows sehingga dapat bekerja di bawah setiap Sistem Operasi .
    Hal ini mampu mengekspor dalam html, txtatau csv.
    Baris perintah untuk Linux ini akan membuat file html untuk setiap mitra obrolan lainnya dalam subdirektori:

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

    Untuk Windows ada file batch analog skyperious.bat. Html dengan format yang bagus.

  • Sejujurnya Anda tidak memerlukan program bagian ke-3 : tetapi Anda dapat melakukan olahraga dengan database.
    Obrolan ada di dalam file main.db [ 2 ] . itu adalah database sqlite3 [ 3 ], [ 4 ] .
    Dengan sqlite3atau dengan alat grafis lain atau tidak, Anda dapat melakukan kueri seperti

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

    (hanya dalam satu baris dan dengan nama pengguna skype dari orang kedua alih-alih <OTHER_SKYPENAME>)

    Perhatikan bahwa dimungkinkan untuk SELECTsetiap kolom dari basis data yang Anda minati.
    Dengan GUI seperti sqliteman [ 3b ] , dapatkah saya lebih sederhana, Anda dapat memilih kolom dengan cara grafis, lalu meletakkan filter pada nilai sebuah bidang ... dan itu akan menyusun lagi satu baris sebagai

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

    masukkan deskripsi gambar di sini


Beberapa kata lebih lanjut tentang backup / restore

Dimungkinkan untuk membuat cadangan / mengembalikan file obrolan secara langsung [ 2 ] .

Semua riwayat obrolan disimpan dalam satu file database, file main.db.
Jika Anda membuat salinan reguler dari file ini, maka akan selalu mungkin untuk memulihkan riwayat obrolan.
Pastikan Skype tidak berjalan di komputer.

Anda hanya perlu menemukan tempat penyimpanannya di komputer Anda:

  • Di Windows dilaporkan [ 2b ] berada di %appdata%\Skype\YourSkypeName, di mana biasanya %appdata%\Skypediterjemahkan menjadi:C:\Users\YourUserName\AppData\Roaming\Skype
  • Di Linux sebagai gantinya adalah di bawah /home/LinuxUsername/.Skype/SkypeUserName/
    atau segera ~/.Skype/SkypeUserName/.
  • Di Mac harus di bawah ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/
Cepat
sumber
1
Saya setuju, github.com/suurjaak/Skyperious adalah alat terbaik yang tersedia. Bahkan dapat membuat statistik obrolan Anda, misalnya pesan per pengguna, emotikon per pengguna, kata-kata yang paling sering digunakan dalam obrolan dll.
asmaier
3

Jika Anda ingin cara termudah untuk mengekspor riwayat Anda ke format yang dapat dibaca, itu adalah skypebrowser.com , yang dapat membaca main.dbfile Anda .

Tetapi karena ini adalah layanan pihak ketiga, Anda jelas harus berpikir dua kali sebelum menggunakannya jika Anda memiliki data rahasia dalam obrolan Anda. Dalam hal ini satu-satunya pilihan aman Anda adalah browser SQLite (Anda akan membutuhkan messagestabel).

geppertuo
sumber
1

Plugin Skype G-Recorder berfungsi baik bagi saya untuk membuat cadangan obrolan.


sumber
Saya menemukan itu, tetapi itu tidak berhasil untuk saya :-(
Peter Štibraný
@ Peter: Saya adalah rekan penulis G-Recorder, pernahkah Anda melaporkan masalah pada Anda dengan item menu "Laporkan masalah"? Setidaknya hanya untuk memeriksa cara kerja tim pendukung kami :)
Andriy Tylychko
1

Anda hanya perlu pergi ke folder utama pengguna seperti pada win7: C: \ Users [your_user] \ AppData \ Roaming \ Skype

Ingat bahwa folder "AppData" disembunyikan, jadi Anda mungkin harus memilih opsi untuk menampilkan folder tersembunyi.

Kemudian cari folder dengan nama pengguna akun skype Anda dan salin ke pc baru ... semua ikon obrolan dan kontak Anda dan lain-lain akan disalin ke komputer baru.

Iconfx
sumber
1

Cukup buka jendela obrolan baru dengan kontak yang ingin Anda simpan riwayat obrolannya. Ketik "/ histori" (tanpa tanda kutip) di jendela obrolan. Setelah riwayat diisi, pilih / sorot sebagian teks dengan kursor mouse Anda. Kemudian, (pada Windows) tekan " Ctrl+ A" di keyboard Anda. Setelah semuanya disorot, tekan " Ctrl+ C." Buka Microsoft Word (atau perangkat lunak pengolah kata serupa, seperti OpenOffice.org Writer) dan tekan " Ctrl+ V" pada keyboard Anda. Simpan file di harddisk atau USB drive Anda, dan voila: Anda memiliki catatan lengkap tentang riwayat obrolan Anda.

Wesley
sumber
0

Perangkat lunak yang memungkinkan untuk merekam panggilan dan menyimpan rekaman panggilan / riwayat obrolan / transfer file ke email Anda - http://skype2email.com

Skype2email adalah program komersial dengan uji coba gratis selama 14 hari.
Penafian: Saya mengerjakan program ini.

Mehal
sumber
Hai Mehal. Saya sudah mencoba program Anda, tetapi macet ketika saya memulainya. Jika Anda memberi tahu saya di mana mencarinya atau apa yang harus Anda kirim, saya akan coba lagi.
Peter Štibraný
0

Ada opsi untuk mengekspor riwayat Skype di CSV dll dari halaman Akun Anda di Skype.com .

Daniel
sumber
7
Bisakah Anda menulis di mana tepatnya saya dapat menemukannya? Saya melihat-lihat seluruh akun Skype, tetapi tidak menemukannya di mana pun :-(
Peter Štibraný
1
Belum lagi betapa menyeramkannya hal itu
lkraav
0

Saya pikir ada cara yang lebih elegan untuk menyimpan obrolan dan panggilan Anda kemudian mengirimkannya ke email. Misalnya menggunakan Skype Recorder, Anda dapat menyimpan semuanya ke penyimpanan online serta menambahkan fungsi seperti pencarian teks lengkap, memutar panggilan online, dan banyak fitur menarik lainnya. Saya pikir itu akan sangat membantu Anda dengan masalah Anda.

Zhenya
sumber