AIに原稿や画像を作ってもらったあと、投稿もお願いしたい。
ぼくは2026年10月6日、Substackで画像3枚の記事を1本出しました。途中で、ブラウザの道具が見つからず、AIに「どこかわからん」と聞いた場面もあります。
今回は、その画面と作業の記録です。
🙋 こんな人に向けた記事です

Substackは、記事をWebに載せたり、読者へメールで届けたりできるサービスです。
この記事は、Claude CodeやCodexに原稿作りだけでなく、投稿の準備まで相談したい人に向けて書いています。
ただし、今回は専用に作ったプログラムを使いました。この記事に完成プログラムの配布はありません。
画面の場所や確認の順番は追えますが、コマンドをコピーするだけで同じ投稿ができる記事ではありません。
🎯 この記事を読むと、できるようになること

今回の作業は、ログイン情報の保存、本人確認、試運転、1本の公開、公開後の見え方の確認、という流れでした。
家のカギを誰かへ渡すときも、「どの家のカギか」を先に確かめますよね。プログラムへの投稿依頼でも、その確認を飛ばしませんでした。
※用語の補足①「クッキー」=ブラウザに保存される情報です。今回は、ログイン中であることを示す `substack.sid` を使いました。お菓子の名前と同じですが、ここでは大切な合言葉です。
今回の作業で追加の支払いはありませんでした。ただし、開発の手間や、AIの契約などまで無料という意味ではありません。
✅ 完成したときの状態

ログインしていないブラウザでも、題名、副題、画像3枚、本文が見える状態になりました。
今回はWebへの公開だけです。購読者へのメールは送っていません。
公開ページの右上には「Sign in」が表示され、ログインしていない人からも記事が見えることを確認しました。出版名・投稿者名・記事を特定できる題名は、画像では不透明に隠しています。実際の公開先URLは掲載しません。

🧰 始める前に用意するもの

自分が管理者であるSubstackの出版。 ここでいう出版は、自分のニュースレターのことです。実際の出版名は掲載しません。
管理者としてログインしたMacのChrome。 別の人のアカウントや、読むだけのアカウントでは進めません。
投稿する画像と本文。 今回は1080×1350pxのJPEG画像を3枚と、約800字の本文を用意しました。
専用の投稿プログラム。 このあと出る `substack_token.py`、`sedo.py`、`.venv`、作品ごとの許可ファイルは、ぼくの環境に用意したものです。Substackの標準機能ではありません。
⚠️ 今回は公式の公開APIではなく、Web画面の内部通信を使った実験です。 公開前に公式の利用規約を読み、自動処理などに制限があることを確認しました。ただし、この実装が許可されるかは確かめられていません。
そのため、公式に認められた自動投稿の手順としてはすすめません。自分で利用する場合は、実行前に規約と運営の案内を確認してください。未確認のまま進める場合は、標準の編集画面で投稿する方法を選んでください。
🪜 手順

以下は、専用プログラムを用意した環境で実際に行った操作です。プログラムがない方は、カギをコピーする前に、まず準備の相談から始めてください。
手順1:自分のSubstackの管理画面を開く
出版の持ち主のアカウントでログインし、管理画面を開きました。
左上で、作業する出版の名前を確かめます。画像では出版名とアイコンを不透明に隠しています。

手順2:ページを調べる道具から「Application」へ
Macで ⌥(option)+⌘(command)+I を押しました。
※用語の補足②「デベロッパーツール」=ブラウザでページの中身を調べる道具です。今回は設定を書き換えるためではなく、保存場所を見るために開きました。
上のタブに「Application」が見えなければ、「»」を押します。隠れたタブの一覧から「Application」を選びました。

手順3:「Cookies」から合言葉の場所を見る
「Application」タブが開いていることを確かめます。
左の「Cookies」の下から、自分のSubstackのアドレスを選びます。
「Filter」欄に `substack.sid` と入力します。対象の行の「Value」をダブルクリックし、⌘C でコピーしました。そのあとescを1回押し、値の編集を終えました。
画像では、アカウントのアドレスと値の欄を不透明に隠しています。操作を示す赤枠は残しました。値をチャットやメモへ貼らないでください。

もし同じ名前の行が複数あって、どれが自分の出版に対応するか分からなければ、そこで止めます。「上の行だから正しい」とは判断できません。
手順4:チャットに貼らず、専用プログラムで保存
コピー後、用意していた専用プログラムを動かしました。
.venv/bin/python -B substack_token.py saveこのコマンドには、合言葉の値を書いていません。プログラムがコピーした内容を読み、本人だけが読める設定のローカルファイルに保存しました。
保存後、クリップボードも空にしました。ただし、コピー履歴アプリの履歴まで消えるわけではありません。 そのアプリに残った1件は、別に消す必要があります。
手順5:自分の出版の管理者かを確認
次は、投稿せず、読むだけの確認をしました。
.venv/bin/python -B substack_token.py verify返ってきた出版は自分のものと一致し、役割は `admin`(管理者)でした。
ここが違ったり、確認できなかったりしたら、投稿へ進まない作りにしています。
確認記録の日付は2026年11月5日でした。これは確かめた日から30日後に、もう一度確認するための日付です。クッキー本来の有効期限ではありません。本当の失効日は、この確認では分かりませんでした。
手順6:接続を確認して、試運転
.venv/bin/python -B sedo.py check-connection --media Substack自分の出版だと確認できてから、作品ごとの許可ファイルを使い、試運転へ進みました。
.venv/bin/python -B sedo.py publish --media Substack --approval approvals/(この作品の許可ファイル).json --dry-runカッコ内は説明用です。実際には、用意した作品の許可ファイル名を指定します。
※用語の補足③「dry-run(ドライラン)」=本番前の試運転です。今回の専用プログラムでは、画像を送らず、投稿せずに確認しました。すべての道具が同じ動きをするわけではありません。
作品と画像が許可した版に一致すること、公開の許可、鍵の保存状態、二重送信の記録を確認しました。
手順7:許可した1本だけを公開
ぼくが「だして」と伝えてから、本番を実行しました。
.venv/bin/python -B sedo.py publish --media Substack --approval approvals/(この作品の許可ファイル).jsonプログラムは、画像3枚の送信、下書き作成、Web公開、結果の読み返しの順に進みました。
公開先が作成され、返ってきた結果には `email_sent: false` と記録されました。メールを送っていないことを示す、この実装の結果です。実際の公開先を特定できる文字列は掲載しません。
手順8:ログインしていないブラウザで確認
最後に公開ページを開き、画像3枚、番号リスト、リンク2つ、太字、副題を確認しました。

「送信できた」という返事だけでは、読者からどう見えるかは分かりません。店の看板をかけたあと、お客さん側から読めるかを見るのと同じです。
🧗 今回、実際につまずいたところ

つまずき1:どこを押すか分からなかった
道具を開いた直後は「Elements」が出ていて、「Application」が見つかりませんでした。
ぼくが「どこかわからん」と聞くと、AIが「»」の中にあると案内しました。場所が分かってから「こぴーした」と伝えています。
つまずき2:返事の形が予想と違った
最初の本人確認では、出版の一覧が、プログラムの予想した場所に入っていませんでした。
実際には `publicationUsers` の中にありました。AIが作ったプログラムは「形が分からない」と止まり、その時点では投稿していません。
返事を読み、両方の形を読めるように直しました。知らない形の返事を、成功したことにしなかった点が大切です。
つまずき3:本文の記号が、そのまま出る作りだった
最初は、リンクや太字を表す記号が、そのまま本文へ入る作りでした。
公開前に気づき、押せるリンク、太字、番号リストへ変えて送るように直しました。本文先頭の見出しは副題として入れています。
⚠️ 気をつけること

`substack.sid` は、パスワードと同じくらい大切に扱います。他の人のものは使いません。
ログアウトや時間経過で使えなくなる条件は、今回確認できていません。使えなくなったら連続で試さず、本人確認と保存状態から調べ直します。
今回は、1本出したあとに公開スイッチをオフへ戻しました。次の作品までまとめて許可したわけではありません。
メール配信の許可も、Web公開とは別にしました。お店の掲示板へ貼ることと、お客さん全員へ封筒を送ることは違うからです。
この記事の画面と実作業は2026年10月6日のものです。内部の仕組みは変更されることがあり、同じ操作で今後も動くとは保証しません。
📝 まとめ

自分のAIへ相談するときは、「何を投稿したいか」に加えて、何を確認してから止まるかも伝えてみてください。
そのまま使える相談文です。
SubstackにAIで記事を投稿したいです。専用プログラムはまだありません。
カギの値は聞かず、規約の確認と必要な準備だけを説明してください。
今回は何も公開せず、ログイン情報の取得や設定変更もしないでください。この記事のコマンドをいきなり動かすより、今の自分の環境に合った入口になります。








