Viewing the full Skype chat history

I have Skype 2.8 on Mac OS X 10.5.8.

Under the the chat menu is an option called "Recent Chats". This allows me to see logs of recent chats, but not of older ones.

I know the older ones are stored because they are in ~/Library/Application Support/Skype/username/chatmsg256.dbb. This file when put in a text editor has text chat information from all my previous Skype chats. It is however stored in an unknown file format that I do not know how to parse.

Does Skype have a built-in log viewer (like Adium's) that I can use to access these older logs?


Solution 1:

I'm not sure if this shows the entire history, but try the following. Whether the contact is online or offline, pop up the chat window.

Click blue chat button

Then click "All" under "View earlier messages:".

Click all

Alternatively, click the gear icon for the contact and select "View Chat History". That generates an html file that is opened in your web browser window.

The reason I'm not sure if this shows all the history is because I can't fully remember when my chat history began on this computer.

Solution 2:

Skype stores its chat history in a SQLite database: ~/Library/Application Support/Skype/YourSkypeName/main.db. You can use the command line sqlite3 tool to view the chat logs.

Find out user names of your chat partners

The following command in Terminal (I'm assuming you're using the bash shell) lists all your chat partners' user names:

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db 'SELECT DISTINCT(dialog_partner) FROM Messages;'

Extract all messages to and from a specific chat partner

Option A. Write to terminal

To print all messages to and from a certain chat partner (theOtherPersonsUserName), use the following command:

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;"

This will print one message per line, chronologically, with sending username, display name, date, and text, like the following:

danielbecks-username|Daniel Beck|2012-02-03 08:47:53|Just testing something

Option B. Write to file

You can write this chat log directly to a file. Run the following to write the log with theOtherPersonsUserName to the file theOtherPersonsUserName.log:

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;" > "theOtherPersonsUserName.log"


Of course, you can also open main.db in any SQLite database viewer and go from there.

Solution 3:

Just want to provide some more easy-to-use and up-to-date ways to view Skype logs:

  • Skyperious (https://suurjaak.github.io/Skyperious/) - cross-platform GUI tool for manipulating Skype logs
  • SkypeBrowser (http://www.skypebrowser.com/) - a web tool with similar functionality
  • Any SQLite manager (like this Firefox addon) - gives you full access to all the data stored by Skype, including messages (usage details are provided in Daniel Beck's answer)

Solution 4:

Try SkypeHistoryViewer.

A small program that will allow the user to open all history of Skype activity that is on a PC, check your kids usage, who there talking to what there saying or check on a cheating partner. Currently for Windows Vista and 7.