Ekspor iMessages dalam bentuk yang dapat dibaca manusia untuk arsip

33

Saya memiliki percakapan panjang (bernilai beberapa bulan) iMessage dengan seorang kontak. Dia kehilangan pesan-pesan ini ketika dia menginstal ulang OS-nya, tetapi saya masih memiliki arsip. Ada beberapa informasi penting di sana yang ingin kami simpan.

Apakah ada cara sederhana untuk mengekspor percakapan ini untuk arsip dalam bentuk yang dapat dibaca manusia, dan juga menyimpan gambar?

Saya dapat memilih bagian dari percakapan, menyalinnya ke clipboard dan menempelkannya ke dokumen teks yang kaya, tetapi ini membuang semua gambar. Saya mencari cara untuk menyimpan gambar.

Catatan: Saya hanya menggunakan iMessage di OS X, bukan iOS.

(Idealnya saya juga ingin mengekspor semua lampiran file non-gambar, tapi saya tidak berharap ini mungkin terjadi.)

Szabolcs
sumber
1
Apakah Anda ingin menyimpannya dari iDevice atau Mac?
Matthieu Riegler
@MatthieuRiegler A Mac. Saya tidak menggunakan iMessage di iOS, jadi saya tidak memikirkan kemungkinan itu. Saya akan memperbarui pertanyaan.
Szabolcs
1
Apakah apple.stackexchange.com/questions/88023/... membantu atau Anda mencari sesuatu yang lain?
nohillside
@patrix Saya mencari cara untuk mengeluarkan pesan dari iMessage, jadi saya dapat melihatnya meskipun saya berhenti menggunakan OS X. Saya menyadari bahwa adalah kesalahan untuk membalas di iMessage untuk menyimpan informasi penting, jadi saya ingin memindahkan jauh dari itu sepenuhnya, dan semoga menyelamatkan chatlog untuk masa depan.
Szabolcs

Jawaban:

20

Jika Anda tahu akun iMessage dari kontak Anda di sini adalah skrip bash milik saya untuk mengambil teks + gambar.

#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
sumber
Terima kasih, ini berguna. Ini tidak akan memberi saya gambar ...
Szabolcs
Saya akan menggali sedikit lebih banyak untuk menemukan mereka;)
Matthieu Riegler
Terima kasih! Saya baru saja menemukan solusi yang cukup baik untuk saat ini, jadi tolong jangan habiskan waktu Anda untuk ini lagi.
Szabolcs
hai, bagaimana menjalankan skrip ini
Atmiya_Dharmesh
12

Saya mengambil kebebasan untuk melanjutkan jawaban di atas oleh Matthieu. Saya menulis sebuah skrip yang akan mengotomatiskan proses dengan membuat cadangan semua pesan pengguna, termasuk gambar, file audio, dan film - menyimpan setiap percakapan ke dalam file teks dengan nomor telepon.

https://github.com/PeterKaminski09/baskup

Sunting: Saya mengembangkan skrip menjadi aplikasi OS X dengan beberapa fitur bagus seperti pengenalan kontak. https://peterkaminski09.github.io/baskup

Peter Kaminski
sumber
Bagaimana jika kontak itu tidak memiliki nomor telepon?
Szabolcs
2
Saya mengambil semua info kontak dari tabel obrolan di ./Library/Messages/chat.db. Ini tidak spesifik pada nomor telepon pengguna. Hanya id mereka yang dikaitkan dengan pesan mereka. Dalam kebanyakan kasus ini sebenarnya adalah nomor telepon.
Peter Kaminski
Saya menggunakannya. Itu berhasil. Itu satu-satunya solusi yang saya temukan yang tidak memerlukan biaya. Terima kasih!
Erik Allen
Saya menggunakannya. Itu berhasil. Sangat baik saya harus menambahkan. Beri +1 karena hanya itu yang bisa saya berikan untuk satu jawaban.
Seamus
11

Saya menemukan solusi yang bisa diterapkan:

  1. Gulir ke atas sampai semua pesan dimuat
  2. Cetak ke PDF
  3. (Jika Anda memiliki Acrobat,) pangkas margin dari halaman untuk meningkatkan keterbacaan pesan lintas halaman.

Hasilnya tidak terlihat bagus , tetapi memang berisi semua gambar dan teks dapat dicari. Jadi itu cukup bagus.

Szabolcs
sumber
4
Bagaimana jika Anda memiliki 25.000 pesan dalam percakapan dan menggulir ke atas tidak layak?
Pengguna
Butuh sedikit waktu, tetapi saya pikir solusi ini bagus untuk banyak kasus penggunaan.
citadelgrad
6

Pengarsipan

Orang ini tampaknya memiliki solusi yang lebih halus (tidak ada rasa tidak hormat yang ditujukan untuk scraper SQLite yang sangat berguna di atas):

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

Untuk meringkas blog:

  • pasang Adium
  • pilih opsi "import from iChat"
  • Transkrip adium dihasilkan dari log Anda dan disimpan di:

    ~ / Perpustakaan / Dukungan Aplikasi / Adium 2.0 / Pengguna / Default / Log /

File yang dikonversi dalam HTML, lebih mudah dibaca dan mudah-mudahan lebih ramah arsip, tetapi sqlitependekatan untuk tautan lampiran terlihat masuk akal.

Lampiran

Perhatikan bahwa lampiran iMessage cenderung tinggal di:

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

(Saya tidak tahu aturan untuk apa yang ada di sana dan apa yang tidak, jadi mungkin tidak lengkap - tapi ada cukup banyak di sana)

Tetapi sebenarnya Anda dapat melihat beberapa informasi tentang kontak dan percakapan di atribut yang diperluas file:

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

akan mencetak asal jika Pesan menempatkannya di sana untuk diunduh.

gra
sumber
1
Ya, @Szabolcs, saya memang melihat komentar "tolong jangan habiskan waktu Anda untuk hal ini lagi", tetapi harus melakukan sedikit penggalian dari saya sendiri jadi saya pikir saya harus berbagi jika itu berguna untuk orang lain.
gra
0

Mac Anda akan secara otomatis menyimpannya. Berikut adalah petunjuk tentang cara mengekstraknya:

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

Aiden
sumber
1
Selamat Datang di Tanya Berbeda! Tolong jangan berikan jawaban hanya tautan. Kami sedang mencari jawaban yang memberikan penjelasan mengapa itu menjawab pertanyaan. Tautan dapat berubah seiring waktu dan kemudian kita akan kehilangan konteks tanya jawab. Lihat Cara Menjawab untuk info tentang apa yang membuat jawaban yang bagus. - Dari Ulasan -
fsb
-1

Aplikasi Ekspor iMessages memungkinkan Anda untuk menyimpan, mencetak, mencadangkan dan memulihkan SMS / iMessages ke Mac / PC Anda.

iDeviceapps
sumber
1
Ini tidak benar-benar menjawab pertanyaan karena saya secara eksplisit mengatakan bahwa saya menggunakan iMessage hanya pada OS X, bukan pada iOS.
Szabolcs