unofficial tool / zeta chat log exporter

スクロールした分だけ、
会話が手元に残る。

Zetaの会話ログをローカルのHTMLファイルとして保存するブックマークレットです。 自動スクロールはブロックされる仕様だったので、読み進めるのはあなたの指、集めるのはツールという分担にしました。

キャラクターあ、また来たんだ。今日はどうしたの?
あなたちょっと、この前の話の続き聞きたくて
キャラクター……いいよ、座って。長くなるけど
収集中 128件
Why

なぜ「手動スクロール」なのか

🖱️

自動操作は弾かれる

スクロール位置を直接書き換えても、Zeta側が正規のユーザー操作と認識せず無視します。

🧩

表示された分だけがDOMにある

長い会話ほど「今画面にある部分」しか裏側に存在しません。だから読む=集めるが直結します。

📦

読み終えたら書き出すだけ

裏で0.5秒ごとに自動収集。読み終わったタイミングでボタン一つ、HTMLとして保存されます。

Install — PC

ブックマークバーに登録する

↓ このボタンをブックマークバーへドラッグ

📥  Zetaログ収集ツール
クリックではなく、ドラッグ&ドロップで登録します

ブックマークバーが表示されていない場合は Ctrl(⌘)+Shift+B で表示できます

保存したい一番過去のログまで手動で遡る

Zetaで会話を開き、保存したい範囲の中で一番古い(過去の)ところまで先にスクロールして遡っておきます。ブックマークレットはまだクリックしません。

一番過去まで遡ったらブックマークをクリック

画面右下に「Zetaログ収集中」というパネルが出てきます。これが出れば起動成功です。

そのまま下方向へスクロールしていく

マウスホイールで会話を上から下へ読み進めてください。画面に表示された発言が自動で集計され、件数がリアルタイムに増えていきます。

「完了して書き出す」を押す

読みたいところまで読み終えたら、パネルのボタンを押してください。会話がHTMLファイルとしてダウンロードされます。

Install — Mobile (Android Chrome)

スマホでも使えます

⚠ 登録は少し手間、実行方法にも注意が必要です

Android版Chromeはブックマークのドラッグ登録に対応していないため、URLを直接コードで置き換える必要があります。さらに、実行する時の呼び出し方にも決まりがあります(後述)。

  1. このページを一度ブックマークに追加する
  2. ブックマーク一覧を開き、追加したこのページの項目を「編集」する
  3. 名前をわかりやすいもの(例:「Zetaログ収集」)に変え、URL欄を下のコードで全て置き換えて保存する

🔑 実行するときは「ブックマーク一覧」からタップしない

これが一番のポイントです。 Android版Chromeでは、メニューの「ブックマーク」一覧からタップしても反応しません(今開いているページの情報を持たずに開かれてしまうためです)。代わりに、アドレスバーから呼び出してください。

  1. Zetaのチャット画面を開いておく
  2. 画面上部のアドレスバー(URL欄)をタップ
  3. 登録したブックマークの名前を数文字入力する(例:「Zeta」)
  4. 入力候補として、そのブックマークが下に表示される
  5. 候補として出てきたブックマークをタップする(Enterで検索しない)

この手順なら、今開いているZetaのページに対してツールが実行されます。右下にパネルが出れば成功です。

Install — Mobile (iOS Safari / Chrome / Brave)

iPhone・iPadの方へ

⚠ ブックマークレット自体が使えません

iOSでは、SafariだけでなくChromeやBraveなどどのブラウザも内部的に同じ制限を共有しているため、ブックマークレット(javascript:形式)はどれを使っても実行できません。「スクリプトを実行できません」というメッセージはこの制限によるものです。

代わりに、無料のSafari拡張機能アプリ「Userscripts」を使う方法で動作を確認しています。準備に少し手間がかかりますが、確実に動きます。

「Userscripts」アプリをインストールする

App Storeで「Userscripts」(開発者: quoid、オープンソース・無料)を検索してインストールします。ユーザーの追跡は行わないアプリです。

Safariの機能拡張として有効化する

「設定」アプリ→「Safari」→「機能拡張」→「Userscripts」を開き、オンにします。「すべてのWebサイトで許可」にしておくと以後の設定確認が省けます。

スクリプトをコピーする

下のボタンで、Userscripts用に調整したコードをコピーしてください。

テキスト編集アプリを用意する

Userscriptsアプリ自体には新規スクリプトを作る画面がないため、無料の編集アプリ(例:「EasyEditText」)を別途インストールしておきます。

Files(ファイル)アプリからサンプルを編集する

「ファイル」アプリで「Userscripts」フォルダを開き、最初から入っているDemo_user_script.user.jsを長押し→「共有」→インストールした編集アプリを選んで開きます。中身を全部選択して削除し、コピーしたコードに置き換えてファイル名・拡張子はそのまま上書き保存してください。

Safariを完全に再起動する

ここが一番のポイントです。保存しただけでは拡張機能側に変更が反映されないことがあります。Safariをアプリスイッチャーから上にスワイプして完全に終了し、もう一度開き直してください。

Zetaを開く

SafariでZetaのチャット画面を開くと、画面右下に📥ボタンが表示されます。これが出れば拡張機能が正しく動いている証拠です。

ボタンを押して収集開始

📥ボタンをタップするとパネルが起動します。あとはPC版と同じ手順で、保存したい一番過去のログまで遡ってから、上から下へスクロールしてください。

代わりに「ショートカット」アプリでも試せます(人によっては動きません)

iOS標準の「ショートカット」アプリでも同じことができる場合があります。ただし、環境によってはRun JavaScript on Web Pageアクションが正しく反応しないケースが確認されており、Safariを完全に再起動しても解決しないことがあります。うまくいけば準備は少なく済むので、試してみる価値はあります。

スクリプトをコピーする

「ショートカット」アプリで新規ショートカットを作る

標準アプリの「ショートカット」を開き、右上の+で新規作成。アクション検索で「Webページで JavaScript を実行」(英語表記では"Run JavaScript on Web Page")を検索して追加し、コピーしたコードを貼り付けます。

共有シートに表示する設定にする

ショートカットの詳細(ⓘ)を開き、「共有シートに表示」をオン。受け付ける種類を「Safari の Webページ」のみに絞ります。詳細設定で「スクリプトの実行を許可」もオンにしておいてください。

Zetaで実行する

Zetaの会話画面をSafariで開き、共有ボタン→保存したショートカットを選択。動かない場合はSafariを完全に再起動してからもう一度お試しください。それでも動かなければ、上のUserscripts方式をお使いください。

FAQ

よくある質問

途中で止めても大丈夫?

大丈夫です。読み終わった分だけ書き出されます。ただしブックマークを押すたびに、毎回ゼロから新しく読み込み直す仕様です。前回の続きからではなく、そのつど一番過去のログまで遡ってからブックマークを押し、必要な範囲を最後まで一気にスクロールしてください。

別のキャラクターとの会話でも使える?

使えます。v17以降はブックマークを押すたびに毎回ゼロから読み込み直す仕様のため、会話を切り替える際のページ更新(リロード)は不要です。別の会話を開いてそのままブックマークを押してください。

「収集ツールが起動しています」と出て動かない

すでにパネルが起動した状態でもう一度押すと出るメッセージです。エラーではないので、そのままスクロールを続けてください。

会話が全然増えない

Zetaのアップデートで画面の内部構造が変わった可能性があります。動かない場合はご一報ください。

スクロールしても件数が増えない・止まる

ブックマークレットは、保存したい一番過去のログまで先に手動で遡ってからクリックしてください。遡り切る前にクリックしたり、起動後にいきなり大きくスクロールしたりすると不安定になることがあります。

スマホ(Android Chrome)でブックマークをタップしても何も起きない

ブックマーク一覧のメニューからタップした場合、Androidの仕様上ページの情報が渡らず動作しません。アドレスバーにブックマーク名を入力し、出てきた候補をタップして呼び出してください。詳しくは上の「Install — Mobile」を確認してください。

iPhone(iOS)で「スクリプトを実行できません」と出る

iOSはSafari・Chrome・Braveなど、どのブラウザでもブックマークレット自体が使えない仕様です。無料アプリ「Userscripts」を使う方法で動作を確認しています。詳しくは上の「Install — Mobile (iOS)」を確認してください。

iOSで設定したのに📥ボタンが出てこない/ショートカットを実行しても何も起きない

設定を保存しただけでは反映されないことがあります。Safariをアプリスイッチャーから完全に終了し、開き直してください。これで直るケースがほとんどでした。それでもショートカット方式が動かない場合は、Userscripts方式をお試しください。

前のバージョンで保存したら、発言の順番が入れ替わっていた

環境(端末やブラウザ)によって、ブロック(発言のまとまり)単位の前後関係だけが丸ごと逆になってしまうことがあると報告されています。原因は調査中です。ブロック内の発言順自体は崩れていない場合が多いため、そのようなときは「ブロック順反転ツール」でブロックの並びだけをまとめて反転できます。1件ずつ細かく直したい場合は、従来の「並べ替えツール」もあわせてお使いください。

Fix — Broken Order

順番がぐちゃぐちゃになってしまった人へ

環境によっては、書き出したログの順番が前後してしまうことがあります。 ブロック(発言のまとまり)単位で丸ごと前後が逆になっている場合は「ブロック順反転ツール」で、 1件ずつ細かくずれている場合は「並べ替えツール」で直せます。

🔁  ブロック順反転ツールを開く 🔀  並べ替えツールを開く
Convert — Other Formats

小説形式・シンプルなテキストログに変換したい人へ

書き出したHTMLファイルを読み込むと、小説のような読み物形式(「名前「セリフ」」)や、 「@名前: セリフ *動作*」形式のシンプルなテキストログ(.txt)に変換して保存できます。

📖  形式変換ツールを開く
Changelog

アップデート履歴

公開後、実際に使ってもらいながら見つかった不具合を直してきた記録です。

v26

「形式変換ツール」を追加、小説形式・シンプルtxt形式への変換に対応新機能

書き出したHTMLファイルを読み込んで、小説のような読み物形式(「名前「セリフ」」)や、「@名前: セリフ *動作*」形式のシンプルなテキストログ(.txt)に変換して保存できる新しいツールを追加しました。

v25

1つの発言に動作(ト書き)が複数含まれる場合、2つ目以降がセリフとして書き出されてしまう不具合を修正修正

「〇〇して。△△しながら。」のように、動作の説明が短く区切られて連続する発言では、最初の動作だけが正しく括られ、2つ目以降が地の文(セリフ)として書き出されてしまうことがありました。発言中に含まれる動作の数に関わらず、すべて正しく括って書き出すよう修正しました。

v24

「ブロック順反転ツール」を追加、書き出しHTMLにブロック情報を付与新機能

環境によって、ブロック(発言のまとまり)単位の前後関係だけが丸ごと逆になってしまう不具合が報告されています(原因は調査中)。この対処として、書き出すHTMLの各メッセージに内部的なブロック情報を持たせるようにし、そのブロック単位の並びだけをワンクリックで反転できる新しいツールをサイトに追加しました。1件ずつ細かく直したい場合は、従来の並べ替えツールも引き続き使えます。

v23

再生成候補を切り替えられるメッセージで内容が重複する不具合を修正修正

キャラの発言を再生成して複数バージョンから選べる(左右スワイプで切り替える)メッセージで、表示されていないはずの過去バージョンの内容まで一緒に収集されてしまい、書き出したログに同じ箇所の別バージョンが混ざって出力される不具合がありました。画面に実際に表示されている版だけを収集するように修正しました。

v22

Androidの文字数制限を根本解決:外部読み込み方式に変更修正

Android版Chromeのブックマーク編集画面には、URL欄に入力できる文字数に5,000文字という上限があることが分かりました(コード圧縮では収まりきりませんでした)。そこで、ブックマークレット本体を「外部のスクリプトファイルを読み込むだけの短いコード」(150文字程度)に変更し、実際の処理はサーバー上の別ファイルから読み込む方式にしました。これにより文字数の心配がなくなり、今後の機能追加や不具合修正も、サーバー側のファイルを更新するだけで反映されるようになりました。

v21

コードを短縮し、Androidでの貼り付けエラーを軽減修正

Android端末で、ブックマークのURL欄にコードを貼り付けた際に一部が欠けてしまう報告がありました。コードを圧縮(変数名の短縮など)し、全体の文字数をおよそ23%削減しました。文字数の上限が原因の環境では改善が見込めますが、それでも解決しない場合は端末側の入力欄の仕様による可能性があります。

v20

iOS:Userscripts方式をメインに戻し、ショートカット方式は併記変更

ある環境ではSafariの再起動で「ショートカット」アプリ方式が動いた一方、別の環境では再起動しても動かないケースがあることが分かりました。動作の安定性を優先し、Userscripts拡張機能の方法をメインの案内に戻しました。準備の手間は増えますが、これまでのところ確実に動作しています。「ショートカット」アプリの方法も、うまくいく環境向けに引き続き併記しています。

v19

iOS対応:「ショートカット」アプリ方式が正式に動作確認修正

以前はRun JavaScript on Web Pageアクションが反応しないケースがあり、代替としてUserscripts拡張機能を案内していましたが、原因はSafari側のキャッシュ・反映漏れだったことが判明。設定後にSafariを完全に再起動することで、標準の「ショートカット」アプリでも問題なく動作することを確認しました。準備の手間が少ないため、再びショートカット方式をメインの案内に戻しています。Userscripts拡張機能を使う方法も代替手段として残しています。

v18

iOS対応:Userscripts拡張機能に対応新機能

iOSではブックマークレット(javascript:形式)が全ブラウザで実行できないことが判明。標準の「ショートカット」アプリ経由での実行も試しましたが、環境によってはRun JavaScript on Web Pageアクション自体が反応しないケースがあり、原因を特定できませんでした。代わりに、無料のSafari拡張機能アプリ「Userscripts」を使う方式で動作確認できました。Userscriptsアプリ自体には新規作成画面がないため、Filesアプリ経由でサンプルファイルを別の編集アプリで書き換える必要があり、さらに保存後はSafariを完全に再起動しないと変更が反映されないという注意点も判明しました。Zetaのページを開くと画面右下に起動ボタンが表示され、タップして収集を開始できます。

v17

毎回ゼロから読み込み直す仕様に変更変更

同じ会話で2回続けて実行すると、後から読み込んだ分が先頭に来てしまう不具合があったため、ブックマークを押すたびに前回の記録を破棄し、常に新規に収集し直す仕様にしました。別の会話に切り替える際のページ更新(リロード)も不要になりました。

v16

会話の一番最後だけ読み込まれない不具合を修正修正

現在生成中/確定直後の発言だけ、通常と異なる仕組み(Candidate)で表示されており、収集対象から漏れていました。これを収集対象に含め、常に会話の最後尾として扱うようにしました。

v13〜v15

発言のブロックごと前後関係が入れ替わる不具合を修正修正

1つのメッセージのまとまり(ナレーションと複数キャラの発言が混在するブロック)の中で、ナレーションだけが最後にまとめて出力されてしまう不具合を修正。さらに、メッセージIDに含まれる数値は表示順と一致しないことが判明したため使用をやめ、実際にブラウザへ読み込まれた順序を正として採用するよう設計を変更しました。

v11〜v12

収集の反応速度を改善改善

スクロール中の一瞬の見逃しを減らすため、収集の確認間隔を短縮し、画面の変化を即座に検知する仕組み(MutationObserver)を追加しました。

v9〜v10

手動スクロール中に自動収集する方式に変更変更

Zeta側の仕様により、プログラムによる自動スクロールが機能しないことが判明したため、方針転換。手動でスクロールしている間、裏側で自動的にメッセージを集め続ける現在の方式にしました。