Экспорт истории сообщений из Skype

 

Скачанные сообщения и файлы содержатся в файле с расширением TAR. Для открытия файла экспорта и извлечения сообщений и файлов может потребоваться отдельное приложение.

Для распаковки файла TAR в Windows 10 выполните следующие действия.

  1. Нажмите клавиши Windows + R, чтобы открыть окно “Выполнить”.
  2. В поле “Открыть:” введите cmd и нажмите кнопку OK.
  3. С помощью команды CD (смена каталога) перейдите к нужному файлу:
    • Если файлы сохранены в папке “Загрузки”: Введите CD Загрузки и нажмите клавишу ВВОД.
    • Если файлы сохранены в другой папке: Введите CD КАТАЛОГ, где КАТАЛОГ — имя папки, в которой был сохранен файл экспорта. (IE: CD “Рабочий стол”), а затем нажмите Ввод.
  4. Введите tar -xvfИМЯ_ФАЙЛА_export.tar, где ИМЯ_ФАЙЛА — имя файла экспорта, которое обычно имеет вид 8_skypename_export.tar или 8_live_skypename_export.tar, и нажмите клавишу Ввод.
  5. Когда команда будет выполнена, в каталоге появится извлеченный файл сообщений messages.json. Рекомендуем загрузить средство просмотра для удобства чтения журнала бесед.
  6. После скачивания средства просмотра откройте его, выбрав файл index.html в папке skype-parser.
  7. Перейдите к файлу messages.json и нажмите кнопку Load (Загрузить).

Для распаковки файла TAR на компьютере Mac выполните следующие действия. Перейдите к загруженному файлу TAR и откройте его. На компьютере Mac имеется встроенная поддержка TAR. Для распаковки файла TAR в более ранних операционных системах Windows выполните следующие действия. Для открытия файла TAR может понадобиться стороннее приложение. Примечание. Данная ссылка предоставлена для вашего удобства и исключительно в информационных целях. Убедитесь, что любое выбранное вами программное обеспечение происходит из надежного источника.  

skype-soshel-s-uma-300x300.jpgКак Skype сошёл с ума (в хорошем смысле).

Нашёл в настройках опцию сохранения истории переписки в файл. Причём историю можно экспортировать в CSV файл. Всю-всю историю, что хранится в его базе. И на выходе получается честный текстовый документ, где обычными Ctrl+F можно запустить, и найти всё, что душе угодно, импортировать в Excel или просто просмотреть историю сообщений глазами. В моём случае из Скайпа вылез 71 мегабайт текста с начала времён.

Это настолько удивительно и непривычно, что я даже не знаю что подумать. Неужто Телеграм так на пятки наступает?

В мире пользовательских услуг всё движется в сторону сиюминутности и поверхностности. Тот же список диалогов обрывается трёхмесячной давностью – попробуйте полистать его вниз? Если 15 недель назад вы общались в какой-то группе, то там её больше не будет, хотя вся переписка сохранена в базе, «докликаться мышкой» до неё нельзя. Забыли как называется группа? Всё, извините. Вы её больше никогда не найдёте. Может она вам и не нужна вовсе, если вы не писали туда 15 недель?

Пользователя стараются не обременять ничем: на одном экране должно быть не больше пяти элементов, иначе будет стресс. То, что было неделю назад – уже не актуально, потому что за неделю появилось что-то новое, что вам надо продать. А тут такая опция, да и ещё этот пугающий формат CSV (к CSV я отношусь с особой теплотой)! Как бы не распугать пользователей!

Ну и картинка, как это найти в настройках:skype-sohranit-istoriyu.jpg

Понравилась статья? Поделитесь с друзьями:

Многие пользователи Skype в Linux замечали насколько неудобно там сделана работа с историей сообщений чата. Нет нормального поиска, сообщения за длительный период времени грузятся очень долго. Нет возможности экспорта в другие форматы/клиенты. Skype для Linux хранит историю сообщений в недокументированном бинарном формате. Несмотря на то что энтузиасты расковыряли его довольно давно, еще многое остается неизвестным. Поверхностный поиск готового решения для экспорта истории сообщений не привел к успеху. Поэтому я, собрав всю доступную информацию, написал своё.

Skype API

Первой мыслью было использовать Skype API через D-Bus интерфейс. Казалось бы, есть команда «SEARCH CHATS», но почему-то у меня не получилось её заставить выдавать все чаты. Подозреваю, что она для этого и не предназначена. Skype API достаточен чтобы оперировать текущими событиями, но для доступа к истории надо искать другое решение. Поддержка так и пишет, что возможность экспорта через API в планах не стоит https://jira.skype.com/browse/SPA-596.

DBB файлы

Значит единственный выход это извлечь сообщения из файлов профиля. Не знаю по какой причине, но для хранения данных инженеры Skype придумали довольно странный велосипед. С 4ой версии клиента они одумались и перешли на SQLite, но для Linux пока есть только 2ая со старым форматом. Данные хранятся в папке профиля в файлах nameXXX.dbb. Каждый файл содержит записи фиксированного размера «степень двойки»+8. Размер записи округляется вверх до ближайшей степени двойки (не меньше 256) и запись пишется в соответствующий файл. Таким образом, файл chatmsg512.dbb состоит из блоков по 512+8=520 байт в которых содержатся записи длиной между 256 и 512 байт. Я с трудом представляю для какой задачи такой формат будет эффективным. Из-за округления получаются неиспользуемые дырки, что приводит к неоправданному увеличению размера. Для примера, в моей базе из 21500 сообщений 23.5% места потеряно на округлении, в среднем 73 байта на сообщение. При таком вольном обращении со свободным местом, несколько странно выглядит семибитная кодировка чисел (см ниже). Наконец, так как сообщения пишутся в разные файлы, перед каким-то осмысленным использованием их надо объединять и сортировать, что тоже не прибавляет скорости.

Формат записи

Запись состоит из заголовка и тела. Заголовок имеет длину 17 байт (семнадцать). 4 байта магическое значение «l33l» 4 байта размер записи 32-bit int 4 байта идентификатор 32-bit int 5 байт неизвестно Далее следуют поля трёх типов 0x00 — число в семибитной кодировке, 0x03 — строка, 0x04 — блок двоичных данных. Каждое поле помимо типа данных содержит тип поля также в семибитной кодировке.

Типы полей

0x00 — тип данных (число) 7bit number — тип поля 7bit number — значение поля 0x03 — тип данных (строка) 7bit number — тип поля null-terminated string — значение поля 0x04 — тип данных (blob) 7bit number — тип поля 7bit blob size — длина поля binary blob — значение поля

Семибитная кодировка переменной длины

В каждом байте старший бит указывает является ли этот байт последним (1 — нет, 0 — да). Остальные 7 бит значащие. Чтобы получить число надо склеить 7 битные блоки в порядке big-endian.

Скрипт skypelog.py

Питон скрипт/модуль, который читает DBB файлы можно взять с GitHub https://github.com/Vayu/skypelog. В модуле собрана известная на данный момент информация об именах полей записей различных типов: SkypeMsg, SkypeAcc, SkypeContact. Прямой запуск скрипта позволяет экспортировать содержимое файлов chatmsgXXX.dbb в JSON или простой HTML:

  • JSON предназначен для последующей обработки внешними программами и сохраняет всю историю аккаунта в один файл. Есть два варианта: «full» экспортирует все известные поля и «compact» экспортирует минимальный набор «дата, имя, сообщение».
  • HTML создаёт файлы с историей сообщений для каждой пары аккаунт-контакт. Например vasya-petya.html и vasya-masha.html. К сожалению, структура записей для групповых чатов пока до конца не ясна.

Пример использования skypelog.py в качестве модуля:

#!/usr/bin/env python

from

 skypelog 

import

 

*

data = SkypeDBB

(

“/home/user/.Skype/account/call256.dbb”

)

    

for

 r 

in

 data.

records

(

)

:         

print

 r

Более длинный пример apiuse.py на GitHub.

Заключение

Как видно из примера выше, skypelog.py существенно упрощает исследование формата DBB. Имена полей пока известны (угаданы), только для нескольких типов записей:chatmsgXXX.dbb — сообщения чата, класс SkypeMsgprofileXXX.dbb — учетные записи, класс SkypeAccuserXXX.dbb — контакты, класс SkypeContact Желающие приглашаются к угадыванию пока неизвестных значений полей в следующих файлах:alertXXX.dbb — системные сообщенияchatXXX.dbb — список чатовchatmemberXXX.dbb — список участников чата (?)transferXXX.dbb — список переданных файловcallXXX.dbb — лог звонковcallmemberXXX.dbb — список участников звонка (?)voicemailXXX.dbb — голосовая почта Более подробное обсуждение формата (англ)Neal Krawetz blog — Skype LogsNeal Krawetz blog — Skype Logs discussionPS1: Судя по отзывам в комментариях «SEARCH CHATS» раньше работала, возможно зависит от версии Skype. Желающие могут попробовать следующий код: (нужен dbus модуль для Python)

#!/usr/bin/env python

import

 dbus

import

 

sys

try

:     skype = dbus.

SystemBus

(

)

.

get_object

(

‘com.Skype.API’

‘/com/Skype’

)

except

:     

try

:         skype = dbus.

SessionBus

(

)

.

get_object

(

‘com.Skype.API’

‘/com/Skype’

)

    

except

:         

print

 

“Can’t find Skype API”

        

sys

.

exit

(

)

 

print

 skype.

Invoke

(

“NAME python”

)

print

 skype.

Invoke

(

“PROTOCOL 9999”

)

print

 skype.

Invoke

(

“SEARCH CHATS”

)

Вся история Skype содержится на серверах компании Майкрософт, которая является ее нынешним разработчиком. Это значит, что пользователь не может полностью удалить свое сообщение. Можно отключить его отображение, но собеседнику все равно будет видна информация, что раньше было сообщение. Еще доступно его редактирование, тоже с пометкой. Но при этом все сообщения можно экспортировать в отдельный файл.

Необходимость в сохранении данных появляется при переносе программы на другой компьютер, также данная функция будет полезной при использовании нескольких аккаунтов или для каталогизации данных.

Доступ к пользовательским данным в Скайпе

Доступ к данным Skype на собственном компьютере или ноутбуке получить можно с помощью экспорта сообщений в CSV-файл. Но есть отдельный документ main.db, в нем тоже записываются сообщения. Он пригодится при переустановке системы или программы.

Вариант 1: Отдельный файл программы

Существует специальный файл, где Скайп хранит историю пользовательских переписок. Он расположен в скрытой категории, недоступной для просмотра, если не были выполнены специальные настройки.

Читайте также:   Viber или Skype что лучше

Но добраться до нее можно с помощью быстрого вызова. Нажмите , а потом в текстовое поле вставьте %AppData%, после чего подтвердите. Раскройте каталог Roaming или Local, а затем Skype и переходим в папку с Именем пользователя. Там расположен документ main.db.

Просмотреть его получится в программе SkypeLogViewили в аналогичном ПО. Если вы планируете переустановить программу, то перенесите файл в удобную папку, а потом верните его на место.

Вариант 2: Экспорт с помощью Скайпа

Все полученные и отправленные сообщения, историю Skype, на учетной записи можно объединить в один файл и сохранить на пользовательском компьютере. Сделать это получится из самого Skype. Запустите программу и перейдите в меню настроек из вкладки «Инструменты».Раскройте раздел «Чаты и SMS», а затем «Настройки чата». Кликните по пункту дополнительных настроек.

Активируйте опцию «Экспортировать историю чатов». Затем нужно указать будущее местоположение и название для файла. Он сохраняется в формате CSV. Открыть его для просмотра можно с помощью специальной программы или веб-ресурса. Проще всего зайти на сайт convertcsv.com, загрузить туда файл и просмотреть его содержимое.

Внимание: не все данные будут отображаться корректно, возможно появление различных символов и непонятных кодов. Некоторые сообщения отобразить не получится из-за ссылок или смайликов.

Наше бюро перенесло рабочую переписку из Skype в Telegram. Рассказываем, как экспортировать историю чатов в удобный для просмотра и поиска формат.

Скачайте программу SkypeExport — она доступна и для Mac, и для Windows. Дальнейшие действия описаны на примере Windows. Инструкции для платформы Mac — на странице SkypeExport.

Разархивируйте папку и поместите файл SkypeExport.exe, скажем, на диске С. Зайдите в эту папку в проводнике, ничего не выделяйте. Зажмите Shift на клавиатуре, щелкните правой кнопкой мыши и выберите в контекстном меню «Открыть окно команд».

Скопируйте и вставьте (клавиша Insert/Ins на клавиатуре) эту команду:

SkypeExport.exe –db “%AppData%SkypeВАШ-ЛОГИНmain.db” –timefmt 24h

Не забудьте заменить ВАШ-ЛОГИН на свой логин Skype. Он указан в заголовке окна скайпа и на странице профиля.

Если нужно сохранить историю переписки с отдельными собеседниками, добавьте к команде параметр –contacts и логины собеседников через пробел:

SkypeExport.exe –db “%AppData%SkypeВАШ-ЛОГИНmain.db” –timefmt 24h –contacts ЛОГИН-КОНТАКТА-1 ЛОГИН-КОНТАКТА-2.

Дождитесь сообщения Export Finished — и готово: html-файлы с историей чатов появились в папке ExportedHistory. Открываются любым браузером:

Историю групповых чатов ищите в конце истории личного чата с любым участником группы.

Проверим ваш текст

Проверить грамотность вашего текста? Закажите оценку стоимости корректуры или редактуры.

Это заметка из блога редакторского бюро «По правилам». Разбираем интересные примеры, частые ошибки и сложные случаи из практики. Чтобы следить за новыми публикациями, подпишитесь: Telegram, Facebook, «ВКонтакте».

Используемые источники:

  • https://support.skype.com/ru/faq/fa34894/kak-eksportirovat-fayly-i-istoriyu-chatov-skaypa
  • https://dvascheta.ru/internet/kak-sohranit-vsyu-istoriyu-skype-v-tekstovyj-fajl.html
  • https://habr.com/ru/post/129044/
  • https://xn--80asbwg.xn--d1ababe6aj1ada0j.xn--p1acf/gde-xranitsya-istoriya-skype.html
  • https://popravilam.com/blog/066-kak-sohranit-istoriyu-chatov-skajpa-v-udobnom-formate.html

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий