Zetaの会話ログをローカルのHTMLファイルとして保存するブックマークレットです。 自動スクロールはブロックされる仕様だったので、読み進めるのはあなたの指、集めるのはツールという分担にしました。
スクロール位置を直接書き換えても、Zeta側が正規のユーザー操作と認識せず無視します。
長い会話ほど「今画面にある部分」しか裏側に存在しません。だから読む=集めるが直結します。
裏で0.5秒ごとに自動収集。読み終わったタイミングでボタン一つ、HTMLとして保存されます。
↓ このボタンをブックマークバーへドラッグ
📥 Zetaログ収集ツールブックマークバーが表示されていない場合は Ctrl(⌘)+Shift+B で表示できます
Zetaで会話を開き、保存したい範囲の中で一番古い(過去の)ところまで先にスクロールして遡っておきます。ブックマークレットはまだクリックしません。
画面右下に「Zetaログ収集中」というパネルが出てきます。これが出れば起動成功です。
マウスホイールで会話を上から下へ読み進めてください。画面に表示された発言が自動で集計され、件数がリアルタイムに増えていきます。
読みたいところまで読み終えたら、パネルのボタンを押してください。会話がHTMLファイルとしてダウンロードされます。
Android版Chromeはブックマークのドラッグ登録に対応していないため、URLを直接コードで置き換える必要があります。さらに、実行する時の呼び出し方にも決まりがあります(後述)。
これが一番のポイントです。 Android版Chromeでは、メニューの「ブックマーク」一覧からタップしても反応しません(今開いているページの情報を持たずに開かれてしまうためです)。代わりに、アドレスバーから呼び出してください。
この手順なら、今開いているZetaのページに対してツールが実行されます。右下にパネルが出れば成功です。
iOSでは、SafariだけでなくChromeやBraveなどどのブラウザも内部的に同じ制限を共有しているため、ブックマークレット(javascript:形式)はどれを使っても実行できません。「スクリプトを実行できません」というメッセージはこの制限によるものです。
代わりに、無料のSafari拡張機能アプリ「Userscripts」を使う方法で動作を確認しています。準備に少し手間がかかりますが、確実に動きます。
App Storeで「Userscripts」(開発者: quoid、オープンソース・無料)を検索してインストールします。ユーザーの追跡は行わないアプリです。
「設定」アプリ→「Safari」→「機能拡張」→「Userscripts」を開き、オンにします。「すべてのWebサイトで許可」にしておくと以後の設定確認が省けます。
下のボタンで、Userscripts用に調整したコードをコピーしてください。
Userscriptsアプリ自体には新規スクリプトを作る画面がないため、無料の編集アプリ(例:「EasyEditText」)を別途インストールしておきます。
「ファイル」アプリで「Userscripts」フォルダを開き、最初から入っているDemo_user_script.user.jsを長押し→「共有」→インストールした編集アプリを選んで開きます。中身を全部選択して削除し、コピーしたコードに置き換えてファイル名・拡張子はそのまま上書き保存してください。
ここが一番のポイントです。保存しただけでは拡張機能側に変更が反映されないことがあります。Safariをアプリスイッチャーから上にスワイプして完全に終了し、もう一度開き直してください。
SafariでZetaのチャット画面を開くと、画面右下に📥ボタンが表示されます。これが出れば拡張機能が正しく動いている証拠です。
📥ボタンをタップするとパネルが起動します。あとはPC版と同じ手順で、保存したい一番過去のログまで遡ってから、上から下へスクロールしてください。
iOS標準の「ショートカット」アプリでも同じことができる場合があります。ただし、環境によってはRun JavaScript on Web Pageアクションが正しく反応しないケースが確認されており、Safariを完全に再起動しても解決しないことがあります。うまくいけば準備は少なく済むので、試してみる価値はあります。
標準アプリの「ショートカット」を開き、右上の+で新規作成。アクション検索で「Webページで JavaScript を実行」(英語表記では"Run JavaScript on Web Page")を検索して追加し、コピーしたコードを貼り付けます。
ショートカットの詳細(ⓘ)を開き、「共有シートに表示」をオン。受け付ける種類を「Safari の Webページ」のみに絞ります。詳細設定で「スクリプトの実行を許可」もオンにしておいてください。
Zetaの会話画面をSafariで開き、共有ボタン→保存したショートカットを選択。動かない場合はSafariを完全に再起動してからもう一度お試しください。それでも動かなければ、上のUserscripts方式をお使いください。
大丈夫です。読み終わった分だけ書き出されます。ただしブックマークを押すたびに、毎回ゼロから新しく読み込み直す仕様です。前回の続きからではなく、そのつど一番過去のログまで遡ってからブックマークを押し、必要な範囲を最後まで一気にスクロールしてください。
使えます。v17以降はブックマークを押すたびに毎回ゼロから読み込み直す仕様のため、会話を切り替える際のページ更新(リロード)は不要です。別の会話を開いてそのままブックマークを押してください。
すでにパネルが起動した状態でもう一度押すと出るメッセージです。エラーではないので、そのままスクロールを続けてください。
Zetaのアップデートで画面の内部構造が変わった可能性があります。動かない場合はご一報ください。
ブックマークレットは、保存したい一番過去のログまで先に手動で遡ってからクリックしてください。遡り切る前にクリックしたり、起動後にいきなり大きくスクロールしたりすると不安定になることがあります。
ブックマーク一覧のメニューからタップした場合、Androidの仕様上ページの情報が渡らず動作しません。アドレスバーにブックマーク名を入力し、出てきた候補をタップして呼び出してください。詳しくは上の「Install — Mobile」を確認してください。
iOSはSafari・Chrome・Braveなど、どのブラウザでもブックマークレット自体が使えない仕様です。無料アプリ「Userscripts」を使う方法で動作を確認しています。詳しくは上の「Install — Mobile (iOS)」を確認してください。
設定を保存しただけでは反映されないことがあります。Safariをアプリスイッチャーから完全に終了し、開き直してください。これで直るケースがほとんどでした。それでもショートカット方式が動かない場合は、Userscripts方式をお試しください。
環境(端末やブラウザ)によって、ブロック(発言のまとまり)単位の前後関係だけが丸ごと逆になってしまうことがあると報告されています。原因は調査中です。ブロック内の発言順自体は崩れていない場合が多いため、そのようなときは「ブロック順反転ツール」でブロックの並びだけをまとめて反転できます。1件ずつ細かく直したい場合は、従来の「並べ替えツール」もあわせてお使いください。
環境によっては、書き出したログの順番が前後してしまうことがあります。 ブロック(発言のまとまり)単位で丸ごと前後が逆になっている場合は「ブロック順反転ツール」で、 1件ずつ細かくずれている場合は「並べ替えツール」で直せます。
書き出したHTMLファイルを読み込むと、小説のような読み物形式(「名前「セリフ」」)や、 「@名前: セリフ *動作*」形式のシンプルなテキストログ(.txt)に変換して保存できます。
📖 形式変換ツールを開く公開後、実際に使ってもらいながら見つかった不具合を直してきた記録です。
書き出したHTMLファイルを読み込んで、小説のような読み物形式(「名前「セリフ」」)や、「@名前: セリフ *動作*」形式のシンプルなテキストログ(.txt)に変換して保存できる新しいツールを追加しました。
「〇〇して。△△しながら。」のように、動作の説明が短く区切られて連続する発言では、最初の動作だけが正しく括られ、2つ目以降が地の文(セリフ)として書き出されてしまうことがありました。発言中に含まれる動作の数に関わらず、すべて正しく括って書き出すよう修正しました。
環境によって、ブロック(発言のまとまり)単位の前後関係だけが丸ごと逆になってしまう不具合が報告されています(原因は調査中)。この対処として、書き出すHTMLの各メッセージに内部的なブロック情報を持たせるようにし、そのブロック単位の並びだけをワンクリックで反転できる新しいツールをサイトに追加しました。1件ずつ細かく直したい場合は、従来の並べ替えツールも引き続き使えます。
キャラの発言を再生成して複数バージョンから選べる(左右スワイプで切り替える)メッセージで、表示されていないはずの過去バージョンの内容まで一緒に収集されてしまい、書き出したログに同じ箇所の別バージョンが混ざって出力される不具合がありました。画面に実際に表示されている版だけを収集するように修正しました。
Android版Chromeのブックマーク編集画面には、URL欄に入力できる文字数に5,000文字という上限があることが分かりました(コード圧縮では収まりきりませんでした)。そこで、ブックマークレット本体を「外部のスクリプトファイルを読み込むだけの短いコード」(150文字程度)に変更し、実際の処理はサーバー上の別ファイルから読み込む方式にしました。これにより文字数の心配がなくなり、今後の機能追加や不具合修正も、サーバー側のファイルを更新するだけで反映されるようになりました。
Android端末で、ブックマークのURL欄にコードを貼り付けた際に一部が欠けてしまう報告がありました。コードを圧縮(変数名の短縮など)し、全体の文字数をおよそ23%削減しました。文字数の上限が原因の環境では改善が見込めますが、それでも解決しない場合は端末側の入力欄の仕様による可能性があります。
ある環境ではSafariの再起動で「ショートカット」アプリ方式が動いた一方、別の環境では再起動しても動かないケースがあることが分かりました。動作の安定性を優先し、Userscripts拡張機能の方法をメインの案内に戻しました。準備の手間は増えますが、これまでのところ確実に動作しています。「ショートカット」アプリの方法も、うまくいく環境向けに引き続き併記しています。
以前はRun JavaScript on Web Pageアクションが反応しないケースがあり、代替としてUserscripts拡張機能を案内していましたが、原因はSafari側のキャッシュ・反映漏れだったことが判明。設定後にSafariを完全に再起動することで、標準の「ショートカット」アプリでも問題なく動作することを確認しました。準備の手間が少ないため、再びショートカット方式をメインの案内に戻しています。Userscripts拡張機能を使う方法も代替手段として残しています。
iOSではブックマークレット(javascript:形式)が全ブラウザで実行できないことが判明。標準の「ショートカット」アプリ経由での実行も試しましたが、環境によってはRun JavaScript on Web Pageアクション自体が反応しないケースがあり、原因を特定できませんでした。代わりに、無料のSafari拡張機能アプリ「Userscripts」を使う方式で動作確認できました。Userscriptsアプリ自体には新規作成画面がないため、Filesアプリ経由でサンプルファイルを別の編集アプリで書き換える必要があり、さらに保存後はSafariを完全に再起動しないと変更が反映されないという注意点も判明しました。Zetaのページを開くと画面右下に起動ボタンが表示され、タップして収集を開始できます。
同じ会話で2回続けて実行すると、後から読み込んだ分が先頭に来てしまう不具合があったため、ブックマークを押すたびに前回の記録を破棄し、常に新規に収集し直す仕様にしました。別の会話に切り替える際のページ更新(リロード)も不要になりました。
現在生成中/確定直後の発言だけ、通常と異なる仕組み(Candidate)で表示されており、収集対象から漏れていました。これを収集対象に含め、常に会話の最後尾として扱うようにしました。
1つのメッセージのまとまり(ナレーションと複数キャラの発言が混在するブロック)の中で、ナレーションだけが最後にまとめて出力されてしまう不具合を修正。さらに、メッセージIDに含まれる数値は表示順と一致しないことが判明したため使用をやめ、実際にブラウザへ読み込まれた順序を正として採用するよう設計を変更しました。
スクロール中の一瞬の見逃しを減らすため、収集の確認間隔を短縮し、画面の変化を即座に検知する仕組み(MutationObserver)を追加しました。
Zeta側の仕様により、プログラムによる自動スクロールが機能しないことが判明したため、方針転換。手動でスクロールしている間、裏側で自動的にメッセージを集め続ける現在の方式にしました。