Penukar eksport perbualan kepada teks — WhatsApp, ChatGPT, Slack

Tukar eksport dari WhatsApp, ChatGPT, Claude, Slack atau Discord kepada transkrip yang mudah dibaca. Format dikesan sendiri dan tiada apa-apa meninggalkan pelayar anda.

Eksport perbualan: lima platform, lima idea yang tidak serasi tentang benda yang sama

Setiap platform pemesejan membenarkan anda mengeksport data anda, dan setiap satunya membuat keputusan sendiri tentang bagaimana sesebuah perbualan patut diwakili pada cakera. Kandungan asasnya serupa — siapa cakap apa, bila — tetapi bentuknya langsung tiada persamaan. Satu daripadanya log teks yang format cap masanya bergantung pada tetapan wilayah telefon anda. Satu lagi pokok nod berkunci pengecam, yang perbualannya hanyalah satu laluan melalui graf itu. Satu lagi folder fail yang disusun mengikut saluran dan tarikh, sedangkan nama orangnya disimpan di tempat yang lain sama sekali.

Halaman ini membaca kesemuanya dan menghasilkan transkrip yang boleh dibaca. Platformnya dikenal pasti daripada struktur fail itu sendiri dan bukan daripada namanya, jadi anda boleh lepaskan sahaja eksport itu tanpa perlu memberitahu apa yang anda ada. Semuanya berjalan dalam tab pelayar ini.

Bagaimana pengesanan berfungsi

Nama fail tidak berguna untuk kerja ini. Separuh daripada platform ini menamakan eksport mereka conversations.json, dan fail memang selalu ditukar nama semasa melalui e-mel dan storan awan. Jadi pengesanan membaca struktur: tatasusunan chat_messages bersebelahan medan sender, objek mapping berpasangan dengan create_time, medan ts yang menyimpan cap masa Unix sebagai rentetan. Setiap satunya cap jari yang hanya satu platform hasilkan.

Ada satu kehalusan susunan yang benar-benar penting. Eksport WhatsApp daripada iPhone bermula dengan [12/03/2024, 14:23:01] — kurungan siku, iaitu juga cara tatasusunan JSON bermula. Menguji JSON dahulu bermakna setiap log chat iPhone diserahkan kepada penghurai JSON lalu gagal di situ. Oleh itu corak baris WhatsApp diperiksa sebelum ujian kurungan, bukan selepasnya.

Lima bentuk

  • WhatsApp menulis log teks biasa, satu mesej satu baris, dengan format cap masa yang berbeza mengikut platform dan wilayah. Mesej berbilang baris disambung pada baris kosong tanpa penanda, jadi penghurai terpaksa menganggap mana-mana baris tanpa cap masa sebagai sambungan baris di atasnya.
  • ChatGPT menyimpan setiap perbualan sebagai peta nod. Setiap respons yang dijana semula dan setiap gesaan yang disunting dikekalkan sebagai cabang, jadi membina semula apa yang anda benar-benar lihat bermakna berjalan dari akar sambil mengikut anak terakhir pada setiap langkah.
  • Claude menggunakan tatasusunan rata, yang paling senang antara kelima-limanya. Satu-satunya kerenah ialah eksport yang lebih baharu meletakkan teks mesej dalam senarai blok kandungan bertaip manakala yang lama menggunakan medan rentetan biasa, jadi kedua-duanya dibaca.
  • Slack ialah struktur direktori: satu folder bagi setiap saluran, satu fail JSON bagi setiap hari, tambah fail users.json berasingan yang memegang peta identiti. Mesej merujuk orang sebagai U0123ABCD, jadi tanpa fail itu setiap mesej dikaitkan dengan satu kod sahaja.
  • Discord, dalam bentuk yang dihasilkan oleh perkakas komuniti yang lazim, ialah satu objek tunggal dengan metadata saluran dan tatasusunan mesej yang rata. Terus terang, dan paling hampir dengan apa yang anda sendiri akan reka jika bermula dari kosong.

Apa yang dibuang

Eksport mentah mengandungi banyak perkara yang tiada siapa mahu baca. Tetapan lalai membuangnya, dan suis membawanya kembali:

Notis sistem. Notis penyulitan di kepala setiap eksport WhatsApp, orang masuk dan keluar kumpulan, tukar tajuk, “mesej ini telah dipadam”, subjenis channel_join Slack. Dalam kumpulan yang ahlinya sentiasa berubah, ini boleh melebihi jumlah mesej sebenar.

Penanda tempat lampiran. <Media omitted> muncul di setiap tempat pernah ada imej atau nota suara, dan dalam chat yang penuh gambar ia mengisi hampir keseluruhan fail. Ia memberitahu anda sesuatu telah berlaku dan tiada apa-apa tentang apa yang berlaku.

Paip tersembunyi. Eksport ChatGPT mengandungi gesaan sistem dan sebarang trafik alat, ditanda sebagai tersembunyi daripada perbualan. Ini tidak pernah dipaparkan kepada anda dan digugurkan.

Arkib pun boleh dikendalikan

Slack dan ChatGPT menghantar fail .zip, bukan JSON yang berasingan, jadi arkib itu boleh dilepaskan terus. Pembaca mencari conversations.json dahulu, kerana apabila ia ada, ia memang keseluruhan eksport itu. Jika tiada, arkib itu dianggap ruang kerja Slack: users.json dimuatkan sebelum apa-apa lagi supaya identiti dapat dileraikan, kemudian fail harian dilalui dan dikumpul semula menjadi satu transkrip bagi setiap saluran mengikut tarikh. Fail yang tidak dikenali dilangkau dan bukan menggagalkan keseluruhan arkib.

Kenapa ini berjalan dalam pelayar anda

Inilah input di laman ini yang paling memerlukannya. Eksport perbualan bukan dokumen yang anda tulis untuk khalayak — ia bertahun-tahun perbualan peribadi, dan ia mengandungi apa sahaja yang pernah dikatakan di dalamnya. Alamat. Kesihatan. Wang. Perkara tentang orang lain yang tidak pernah bersetuju dengan semua ini.

Memuat naik benda itu ke perkhidmatan penukaran bermakna mempercayai dasar penyimpanan orang asing, kawalan capaian mereka, sandaran mereka, dan masa depan mereka. Penghuraian di sini ialah JavaScript yang berjalan dalam tab ini. Fail anda dibaca oleh pelayar, ditukar dalam memori, dan dipaparkan kepada anda. Tiada langkah muat naik, jadi tiada apa untuk disimpan dan tiada apa untuk dipadam. Membinanya begini juga bermakna ia percuma untuk dijalankan dan berfungsi luar talian sebaik halaman ini dimuatkan.

Halaman khusus mengikut platform

Jika anda sudah tahu apa yang anda ada, halaman khusus membawa arahan eksport bagi platform berkenaan: WhatsApp, ChatGPT, Claude dan Slack. Kesemuanya menjalankan penghurai yang sama, jadi hasilnya tidak berbeza.