Làm cách nào để xuất lịch sử của Skype?


31

Có thể xuất lịch sử trò chuyện Skype v4 sang một số định dạng văn bản thuần túy có thể đọc được không?
( .txt, .xml, .html)

Ngoài ra, có thể sao lưu / khôi phục lịch sử trò chuyện skype không?
(Tôi không nhớ sao lưu vào Gmail hoặc định dạng văn bản thuần có thể đọc được).

Tôi đã tìm thấy nhiều công cụ trên internet và thậm chí đã thử một số trong số chúng, nhưng chúng dường như không hoạt động.


Ngày nay, có thể sao lưu / khôi phục các cuộc trò chuyện chỉ cần sao chép tệp main.dbvà có thể xuất trò chuyện với chương trình python hoặc trực tiếp với chương trình có thể đọc cơ sở dữ liệu sqlite3, thực hiện truy vấn hoặc chọn thông qua tùy chọn giao diện đồ họa . Tôi đã viết chi tiết hơn trong câu trả lời dưới đây.
Hastur

Câu trả lời:


11

Xem kịch bản được trình bày ở đây: Lưu lịch sử trò chuyện Skype .

Đây là mã:

' 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

Chỉ cần lưu nó dưới dạng .vbstập tin và chạy nó. Sau đó, lần đầu tiên, Skype sẽ hỏi bạn về quyền kết nối API Skype, vì vậy chỉ cần nhấp vào OK. Sau đó, nó sẽ tạo một thư mục được gọi SkypeChatHistoryvà một số tệp trong đó sẽ có lịch sử trò chuyện của bạn.


1
Cảm ơn. Thật không may, nó không hoạt động với tôi :-( Nó hiển thị lỗi "Không thể định vị tên lớp tự động hóa 'Skype4COM.skype'". Tôi sẽ cố gắng tìm hiểu làm thế nào để nó hoạt động.
Peter tibraný

1
Tôi đã làm cho nó hoạt động ... Tôi cần cài đặt Skype4COM từ developer.skype.com/D Download (bằng cách sử dụng personas.exe Skype4COM.dll từ cmdline), sau đó chạy lại tập lệnh.
Peter tibraný

Hóa ra, sử dụng Skype API để lấy lịch sử trò chuyện khá dễ dàng. Cảm ơn đã chỉ cho tôi đi đúng hướng.
Peter tibraný

1
Tôi nhớ tôi đã sử dụng nó một lần và nó hoạt động vào thời điểm đó. Bây giờ nó mang lại cho tôi lỗi này i53.tinypic.com/zmd3lf.png
IsmailS

1
Tải xuống được chuyển đến đây: developer.skype.com/accessories
sjbotha

10

Skype Lịch sử , nó có thể xuất thành văn bản thuần túy, json, csv và xml; cũng có thể nhóm dữ liệu.

Kể từ năm 2013, nó hoạt động tốt với tôi (skype của tôi 6.0.0.126). Tuy nhiên, người kế nhiệm dường như là skyninja mã nguồn mở mà tôi chưa thử.

Yêu cầu hệ thống: Windows 7 / Windows XP với .NET Framework 3.5

tùy chọn xuất khẩu

Tìm thấy liên kết đến dự án này trên blog trong câu trả lời của harrymc.


Dường như không có bất kỳ bản dựng nào của skype-ninja.
lkraav

@lkraav dường như có một phiên bản skyninja 20150318 v0.1. nó yêu cầu dotnet 4.5
n611x007

3

đó là lý do tại sao tôi vẫn sử dụng Skype 3.

Họ đã nghĩ gì khi loại bỏ lệnh / htmlhistory ???

với Skype 4 tôi e rằng các tùy chọn duy nhất là các chương trình đặc biệt như Pamela cho Skype (ghi âm trò chuyện không có sẵn trong phiên bản miễn phí).

như để sao lưu và khôi phục lịch sử trò chuyện, điều đó khá dễ dàng:

Định vị thư mục Dữ liệu ứng dụng \ Skype \ (tên người dùng của bạn) và sao chép nó sang một vị trí khác, chẳng hạn như CD hoặc DVD-ROM.

Để khôi phục các tập tin lịch sử, chỉ cần sao chép các tập tin trở lại thư mục đó.


3

Những câu trả lời nhanh

  1. Có thể xuất lịch sử trò chuyện Skype v4 (.txt, .xml, .html) không?
    Có, đó là với các chương trình như Skyperious [ 1 ] , được viết bằng phyton và nguồn mở, hoặc trực tiếp hơn với mỗi chương trình cho phép đọc sqlite3định dạng cơ sở dữ liệu [ 3 ] (xem bên dưới để biết chi tiết).

  2. Ngoài ra, có thể sao lưu / khôi phục lịch sử trò chuyện skype không?
    Vâng, đó là [ 2 ] . Lịch sử trò chuyện được lưu trong một tệp cơ sở dữ liệu,main.db tệp.
    Bạn có thể sao lưu và khôi phục main.dbtập tin. khi bạn cần / muốn


Một số từ nữa về xuất khẩu ở định dạng có thể sử dụng được của con người:

  • Nó không phải là trường hợp để phát minh lại weel :-) Có nhiều chương trình được phát triển cho việc này.
    Tôi muốn đề xuất Skyperious [ 1 ] , được viết bằng python, có thể tải xuống dưới dạng mã nguồn và ở phiên bản nhị phân cho Windows để nó có thể hoạt động trong mỗi Hệ điều hành .
    có thể xuất khẩu tronghtml , txthoặc csv.
    Dòng lệnh này cho Linux sẽ tạo một tệp html cho từng đối tác trò chuyện khác trong thư mục con:

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

    Đối với Windows có tệp bó tương tự skyperious.bat. Html với một định dạng đẹp.

  • Thành thật mà nói, bạn không cần chương trình phần 3 : nhưng bạn có thể tập gym với cơ sở dữ liệu.
    Trò chuyện trong tập tin main.db [ 2 ] . đó là cơ sở dữ liệu sqlite3 [ 3 ], [ 4 ] .
    Với sqlite3hoặc với bất kỳ công cụ đồ họa hoặc không đồ họa nào khác, bạn có thể thực hiện một truy vấn như

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

    (chỉ trong một dòng và với tên người dùng skype của người thứ hai thay vì <OTHER_SKYPENAME>)

    Lưu ý rằng có thể với SELECTtừng cột của cơ sở dữ liệu mà bạn quan tâm.
    Với GUI như sqliteman [ 3b ] , tôi có thể đơn giản hơn, bạn có thể chọn cột theo cách đồ họa, sau đó đặt bộ lọc vào giá trị của một trường ... và nó sẽ soạn lại một dòng như

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

    nhập mô tả hình ảnh ở đây


Một số từ thêm về sao lưu / khôi phục

Có thể sao lưu / khôi phục tệp trò chuyện trực tiếp [ 2 ] .

Tất cả lịch sử trò chuyện được lưu trong một tệp cơ sở dữ liệu, tệp main.db.
Nếu bạn tạo các bản sao thường xuyên của tệp này, thì nó sẽ luôn có thể khôi phục lịch sử trò chuyện.
Đảm bảo rằng Skype không chạy trên máy tính.

Bạn chỉ phải tìm nơi nó được lưu trữ trên máy tính của bạn:

  • Trong Windows nó được báo cáo [ 2b ] được trong %appdata%\Skype\YourSkypeName, nơi thường%appdata%\Skype được dịch thành:C:\Users\YourUserName\AppData\Roaming\Skype
  • Trong Linux thay vì dưới /home/LinuxUsername/.Skype/SkypeUserName/
    hoặc trong thời gian ngắn~/.Skype/SkypeUserName/ .
  • Trên Mac nên dưới ~/Library/Application\ Support/Skype/<YOUR SKYPENAME>/

1
Tôi đồng ý, github.com/suurjaak/Skyperious là công cụ tốt nhất hiện có. Nó thậm chí có thể tạo số liệu thống kê về các cuộc trò chuyện của bạn, ví dụ như tin nhắn cho mỗi người dùng, biểu tượng cảm xúc cho mỗi người dùng, các từ được sử dụng nhiều nhất trong một cuộc trò chuyện, v.v.
asmaier

3

Nếu bạn muốn cách dễ nhất để xuất lịch sử của bạn sang định dạng có thể đọc được, đó sẽ là skypebrowser.com , có thể đọc main.dbtệp của bạn .

Nhưng vì đây là dịch vụ của bên thứ ba, rõ ràng bạn nên suy nghĩ kỹ trước khi sử dụng dịch vụ nếu bạn có bất kỳ dữ liệu bí mật nào trong các cuộc trò chuyện của mình. Trong trường hợp này, lựa chọn an toàn duy nhất của bạn là trình duyệt SQLite (bạn sẽ cần messagesbảng).


1

Plugin G-Recorder của Skype hoạt động rất tốt đối với tôi để sao lưu các cuộc trò chuyện.


Tôi đã tìm thấy điều đó, nhưng nó không hiệu quả với tôi :-(
Peter tibraný

@Peter: Tôi là đồng tác giả của G-Recorder, bạn đã báo cáo vấn đề của mình bằng mục menu "Báo cáo sự cố" chưa? Ít nhất chỉ để kiểm tra cách nhóm hỗ trợ của chúng tôi hoạt động :)
Andriy Tylychko


1

Bạn chỉ cần truy cập thư mục chính của người dùng như trong win7: C: \ Users [your_user] \ AppData \ Roaming \ Skype

Hãy nhớ rằng thư mục "AppData" bị ẩn, vì vậy bạn có thể phải chọn tùy chọn để hiển thị các thư mục ẩn.

Sau đó tìm thư mục có tên người dùng của tài khoản skype của bạn và sao chép nó vào máy tính mới ... tất cả các biểu tượng trò chuyện và danh bạ của bạn, v.v. sẽ được sao chép vào máy tính mới.


1

Chỉ cần mở một cửa sổ trò chuyện mới với liên hệ mà bạn muốn lưu lịch sử trò chuyện. Nhập "/ history" (không có dấu ngoặc kép) trong cửa sổ trò chuyện. Khi lịch sử được điền, chọn / tô sáng một phần văn bản bằng con trỏ chuột của bạn. Sau đó, (trên Windows) nhấn " Ctrl+ A" trên bàn phím của bạn. Khi mọi thứ được tô sáng, bấm " Ctrl+ C." Mở Microsoft Word (hoặc một phần mềm xử lý văn bản tương tự, như OpenOffice.org Writer) và nhấn " Ctrl+ V" trên bàn phím của bạn. Lưu tệp trên ổ cứng hoặc ổ USB và voila: Bạn có bản ghi đầy đủ về lịch sử trò chuyện của mình.


0

Phần mềm cho phép ghi lại các cuộc gọi và lưu trữ các cuộc gọi được ghi lại / lịch sử trò chuyện / chuyển tập tin vào email của bạn - http://skype2email.com

Skype2email là một chương trình thương mại với bản dùng thử miễn phí 14 ngày.
Tuyên bố miễn trừ trách nhiệm: Tôi đã làm việc trong chương trình này.


Xin chào Mehal. Tôi đã thử chương trình của bạn, nhưng nó gặp sự cố khi tôi khởi động nó. Nếu bạn cho tôi biết nơi để tìm hoặc những gì để gửi cho bạn, tôi sẽ cố gắng nhiều hơn nữa.
Peter tibraný

0

Cách dễ nhất để làm nếu bạn chỉ muốn chuyển lịch sử sang máy tính khác là làm theo lời khuyên của Skype tại đây: https://support.skype.com/en/faq/FA10649/Can-I-transfer-my-chat -history-from-one-computer-to-other? frompage = search & q = chat + history & fromSearchFirstPage = false . Những gì bạn làm là đánh dấu các cuộc hội thoại của bạn là Chưa đọc và chúng sẽ được chuyển sang một máy tính khác khi bạn đăng nhập vào lần tiếp theo.


0

Có một tùy chọn để xuất lịch sử Skype trong CSV, v.v. từ trang Tài khoản của bạn trên Skype.com .


7
Bạn có thể vui lòng viết chính xác nơi tôi có thể tìm thấy nó? Tôi đã xem qua toàn bộ tài khoản Skype, nhưng không tìm thấy nó ở bất cứ đâu :-(
Peter tibraný

1
Chưa kể điều đó đáng sợ đến mức nào
lkraav

0

Tôi nghĩ có một cách thanh lịch hơn để lưu các cuộc trò chuyện và cuộc gọi của bạn sau đó gửi nó đến email. Ví dụ: sử dụng Skype Recorder cho phép bạn lưu tất cả vào bộ lưu trữ trực tuyến cũng như thêm các chức năng như tìm kiếm toàn văn bản, phát cuộc gọi trực tuyến và nhiều tính năng hay khác. Tôi nghĩ rằng nó thực sự sẽ giúp bạn với vấn đề của bạn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.