Eksportuj iMessages w postaci czytelnej dla człowieka w celu archiwizacji

33

Mam długą (kilkumiesięczną) rozmowę iMessage z kontaktem. Zgubił te wiadomości podczas ponownej instalacji systemu operacyjnego, ale nadal mam archiwum. Jest tam kilka ważnych informacji, które chcielibyśmy zachować.

Czy istnieje prosty sposób na wyeksportowanie tej rozmowy w celu archiwizacji w postaci czytelnej dla człowieka, a także zachowanie jakichkolwiek zdjęć?

Mogę wybrać fragment konwersacji, skopiować go do schowka i wkleić do dokumentu z tekstem sformatowanym, ale spowoduje to odrzucenie wszystkich obrazów. Szukam sposobu, aby zachować obrazy.

Uwaga: używam iMessage tylko na OS X, nie na iOS.

(Idealnie chciałbym również wyeksportować wszystkie załączniki nie będące obrazami, ale nie oczekuję, że będzie to możliwe.)

Szabolcs
źródło
1
Czy chcesz je zapisać na urządzeniu iDevice lub komputerze Mac?
Matthieu Riegler
@MatthieuRiegler A Mac. Nie używam iMessage na iOS, więc nie pomyślałem o tej możliwości. Zaktualizuję pytanie.
Szabolcs
1
Czy apple.stackexchange.com/questions/88023/... pomaga, czy szukasz czegoś innego?
nohillside
@patrix Szukam sposobu na usunięcie wiadomości z iMessage, aby móc je wyświetlić, nawet jeśli przestanę używać OS X. Zdaję sobie sprawę, że błędem było odpowiedzieć na iMessage, aby zachować ważne informacje, więc chcę się przenieść z dala od tego i miejmy nadzieję, że uratujesz blog na przyszłość.
Szabolcs

Odpowiedzi:

20

Jeśli znasz konto iMessage twojego kontaktu, to mój skrypt bash do pobierania tekstu i obrazów.

#Parameter is a iMessage account (email or phone number i.e. +33616.... )
if [ $# -lt 1 ]; then
    echo "Enter a iMessage account (email of phone number i.e +33616.....) "
fi
login=$1

#Retrieve the text messages 

sqlite3 ~/Library/Messages/chat.db "
select is_from_me,text from message where handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)" | sed 's/1\|/me: /g;s/0\|/budy: /g' > MessageBackup.txt


#Retrieve the attached stored in the local cache

sqlite3 ~/Library/Messages/chat.db "
select filename from attachment where rowid in (
select attachment_id from message_attachment_join where message_id in (
select rowid from message where cache_has_attachments=1 and handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)))" | cut -c 2- | awk -v home=$HOME '{print home $0}' | tr '\n' '\0' | xargs -0 -t -I fname cp fname .
Matthieu Riegler
źródło
Dzięki, to się przydaje. Nie da mi to jednak obrazów ...
Szabolcs
Wykopię jeszcze trochę, by je znaleźć;)
Matthieu Riegler
Dzięki! Właśnie znalazłem rozwiązanie, które jest na razie wystarczająco dobre, więc nie marnuj więcej czasu na to.
Szabolcs
cześć, jak uruchomić ten skrypt
Atmiya_Dharmesh
12

Pozwoliłem sobie na udzielenie odpowiedzi na powyższą odpowiedź przez Matthieu. Napisałem skrypt, który zautomatyzuje ten proces, tworząc kopię zapasową wszystkich wiadomości użytkownika, w tym obrazów, plików audio i filmów - przechowując każdą rozmowę w pliku tekstowym według numeru telefonu.

https://github.com/PeterKaminski09/baskup

Edycja: Opracowałem skrypt w aplikację OS X z kilkoma fajnymi funkcjami, takimi jak rozpoznawanie kontaktów. https://peterkaminski09.github.io/baskup

Piotr Kamiński
źródło
Co jeśli kontakt nie ma numeru telefonu?
Szabolcs
2
Pobieram wszystkie dane kontaktowe z tabeli czatu w ./Library/Messages/chat.db. Nie dotyczy to numerów telefonów użytkowników. Tylko ich identyfikator powiązany z ich wiadomościami. W większości przypadków jest to w rzeczywistości numer telefonu.
Peter Kamiński
Użyłem tego. Zadziałało. To było jedyne znalezione przeze mnie rozwiązanie, które nie kosztowało pieniędzy. Dziękuję Ci!
Erik Allen,
Użyłem tego. Zadziałało. Bardzo ładnie powinienem dodać. +1, bo to wszystko, co mogę dać za jedną odpowiedź.
Seamus
11

Znalazłem wykonalne rozwiązanie:

  1. Przewiń w górę, aż wszystkie wiadomości zostaną załadowane
  2. Drukuj do pliku PDF
  3. (Jeśli masz program Acrobat), odetnij marginesy na stronach, aby poprawić czytelność wiadomości podzielonych na różne strony.

Wynik nie wygląda świetnie , ale zawiera wszystkie obrazy, a tekst można przeszukiwać. Więc to wystarczy.

Szabolcs
źródło
4
Co się stanie, jeśli masz 25 000 wiadomości w rozmowie, a przewijanie w górę nie jest wykonalne?
Użytkownik
To zajmuje trochę czasu, ale myślę, że to rozwiązanie jest dobre dla wielu przypadków użycia.
citadelgrad
6

Archiwizacja

Wydaje się, że ta osoba ma bardziej dopracowane rozwiązanie (brak szacunku dla bardzo przydatnego skrobaka SQLite powyżej):

http://www.chrisfinke.com/2013/11/05/convert-ichat-transcripts-to-useable-xml/

Podsumowując blog:

  • zainstaluj Adium
  • wybierz opcję „importuj z iChat”
  • Transkrypcje Adium są generowane z dzienników i przechowywane w:

    ~ / Biblioteka / Obsługa aplikacji / Adium 2.0 / Użytkownicy / Domyślnie / Logi /

Konwertowane pliki są w formacie HTML, łatwiejsze do odczytania i, mam nadzieję, bardziej przyjazne dla archiwów, ale sqlitepodejście do łączenia załączników wygląda rozsądnie.

Załączniki

Należy pamiętać, że załączniki iMessage zwykle zawierają:

~/Library/Containers/com.apple.iChat/Data/Library/Messages/Attachments/...

(Nie znam zasad dotyczących tego, co się tam dzieje, a co nie, więc może nie być kompletne - ale jest tam sporo)

Ale faktycznie jesteś może zobaczyć informacje o kontakcie i rozmowy w rozszerzonych atrybutów pliku za:

$ xattr -lp com.apple.metadata:kMDItemWhereFroms <attachment>

wydrukuje pochodzenie, jeśli Wiadomości wstawią je tam do pobrania.

gra
źródło
1
Tak, @Szabolcs, widziałem komentarz „nie marnuj więcej czasu na to”, ale musiałem trochę popracować nad własnym, więc pomyślałem, że powinienem się nim podzielić, na wypadek, gdyby był użyteczny dla kogoś innego.
gra
0

Twój Mac powinien automatycznie je zapisać. Oto instrukcje, jak je wyodrębnić:

http://www.imore.com/how-view-and-move-your-imessage-history-and-attachments

Aiden
źródło
1
Witamy, pytaj inaczej! Nie udzielaj odpowiedzi tylko za pomocą linku. Szukamy odpowiedzi, które wyjaśniają, dlaczego odpowiada na pytanie. Linki mogą się zmieniać w miarę upływu czasu, a wtedy stracimy kontekst pytań i odpowiedzi. Zobacz Jak odpowiedzieć, aby uzyskać informacje o tym, co stanowi dobrą odpowiedź. - Z recenzji -
fsb
-1

Aplikacja Export iMessages umożliwia zapisywanie, drukowanie, tworzenie kopii zapasowych i odzyskiwanie wiadomości SMS / iMessages na komputer Mac / PC.

iDeviceapps
źródło
1
To tak naprawdę nie odpowiada na pytanie, ponieważ wyraźnie powiedziałem, że używam iMessage tylko na OS X, a nie na iOS.
Szabolcs