I really miss the old versions of Skype on my Macbook running OSX Mountain Lion. While I could just download and install one of the Skype version for .DMG’s some people I talk with require the newer version of Skype to use some of the features not available in the older versions, etc. I wish Skype would stop with the Facebook integration and all the other fancy stuff and just allow me to send instant messages and make phone calls as I am not sure I have ever seen a piece of software that I once liked so much take so many steps backwards. Anyhow the issue at hand is Skype on OSX Mountain Lion using all of your computers CPU and unfortunately my resolution to the issue is to use a third party application to view Skype history.
The below images represent trying me trying to load a single month of chat history for a single user on a Mid-2012 Macbook Pro with a 2.6GHz Intel Core i7 and 16GB of RAM. I finally quit Skype after letting it max the CPU for longer than 15 minutes. Seriously? …. unfortunately the answer is yes, seriously.
OSX Activity Monitor Showing Skype Instant Message History Using 100% CPU:
A Single Skype IM Chat History Attempting To Load: T+15 Minutes
Needless to say attempting to search through Skype IM history using the native Skype client on OSX is pretty much worthless if you do any amount of chatting. Granted there are likely thousands of lines in the history to this single user that I am attempting to load there are not hundreds of thousands of lines of history. Even if there were hundreds of thousands of lines I have more than enough power to load that fairly quickly. After running into this a couple days in a row I finally gave up and decided to look for other solutions which included loading the SQLite database and querying the history by hand followed by spending $2 in the Apple App Store to purchase an application that easily allows you to search Skype IM History. If you don’t want to spend the $2 then you can always query the chat history using your terminal window as explained in more detail below however if you don’t mind dropping $2 and want a nice GUI to search Skype IM chat history then open the App Store and search for SkypeChatViewer. While there is some negative feedback the application has worked perfectly for me and doesn’t use any CPU at all.
Solution To Skype IM History Using 100% CPU: SkypeChatViewer
As you can see in the example image above there are 9,555 messages sent between myself and this specific user. All of these messages loaded immediately and allow me to scroll to the very beginning in real time without any delay. SkypeChatViewer will allow you to search group chats or single users without any delay at all on Mountain Lion.
View Skype History The Command Line Way:
So if you didn’t want to spend the $2 and needed to look up your chat history with a single user then you could also do it via a Terminal window on OSX. Look at the example output below to get an idea of how you might accomplish this.
Load Skype Instant Message SQLite Database:
- MacBook-Pro:~ USER$ sqlite3 /Users/YOUR-OSX-USERNAME/Library/Application\ Support/Skype/YOUR-SKYPE-USERNAME-HERE/main.db
- SQLite version 3.7.12 2012-04-03 19:43:07
- Enter ".help" for instructions
- Enter SQL statements terminated with a ";"
- sqlite>
Display Message History For A Single Skype User On A Single Date:
- sqlite> SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'OTHER-SKYPE-USERNAME-HERE' AND datetime(timestamp, 'unixepoch') LIKE '2012-11-12%' ORDER BY timestamp;
- your-skype-username|Your Skype Display Name|2012-11-12 15:59:51|just got this!
- other-skype-username|Other Skype Display Name|2012-11-12 16:00:08|np!
- your-skype-username|Your Skype Display Name|2012-11-12 16:33:01|that is cool!
- other-skype-username|Other Skype Display Name|2012-11-12 16:36:08|yeah, super cool!
- sqlite>
Display Message History For A Single Skype User For Entire IM History With That User:
- sqlite> SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'OTHER-SKYPE-USERNAME-HERE' ORDER BY timestamp;
Display Message History For A Single Skype User Between Two Dates:
- sqlite> SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'OTHER-SKYPE-USERNAME-HERE' AND datetime(timestamp, 'unixepoch') > '2012-11-10' AND datetime(timestamp, 'unixepoch') < '2012-11-12' ORDER BY timestamp;
Anyhow you get the idea. You can modify the SQLite commands above to display different amounts of messages, etc. If you do need to search Skype chat history on a regular basis you should definitely consider spending the two dollars on SkypeChatViewer.