Substackに画像3枚を投稿した実験

見出し画像

AIに原稿や画像を作ってもらったあと、投稿もお願いしたい。

ぼくは2026年10月6日、Substackで画像3枚の記事を1本出しました。途中で、ブラウザの道具が見つからず、AIに「どこかわからん」と聞いた場面もあります。

今回は、その画面と作業の記録です。

目次

🙋 こんな人に向けた記事です

自動投稿の前に確かめるサボテン先生

Substackは、記事をWebに載せたり、読者へメールで届けたりできるサービスです。

この記事は、Claude CodeやCodexに原稿作りだけでなく、投稿の準備まで相談したい人に向けて書いています。

ただし、今回は専用に作ったプログラムを使いました。この記事に完成プログラムの配布はありません。

画面の場所や確認の順番は追えますが、コマンドをコピーするだけで同じ投稿ができる記事ではありません。

🎯 この記事を読むと、できるようになること

ログインの合言葉はチャットには貼らない

今回の作業は、ログイン情報の保存、本人確認、試運転、1本の公開、公開後の見え方の確認、という流れでした。

家のカギを誰かへ渡すときも、「どの家のカギか」を先に確かめますよね。プログラムへの投稿依頼でも、その確認を飛ばしませんでした。

※用語の補足①「クッキー」=ブラウザに保存される情報です。今回は、ログイン中であることを示す `substack.sid` を使いました。お菓子の名前と同じですが、ここでは大切な合言葉です。

今回の作業で追加の支払いはありませんでした。ただし、開発の手間や、AIの契約などまで無料という意味ではありません。

✅ 完成したときの状態

Webだけで公開しメールは送らない説明

ログインしていないブラウザでも、題名、副題、画像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」を選びました。

Applicationが見えないときは右向きの二重記号から開きます

手順3:「Cookies」から合言葉の場所を見る

「Application」タブが開いていることを確かめます。

左の「Cookies」の下から、自分のSubstackのアドレスを選びます。

「Filter」欄に `substack.sid` と入力します。対象の行の「Value」をダブルクリックし、⌘C でコピーしました。そのあとescを1回押し、値の編集を終えました。

画像では、アカウントのアドレスと値の欄を不透明に隠しています。操作を示す赤枠は残しました。値をチャットやメモへ貼らないでください。

Cookiesから対象の行を探します。アドレスと値は非掲載です

もし同じ名前の行が複数あって、どれが自分の出版に対応するか分からなければ、そこで止めます。「上の行だから正しい」とは判断できません。

手順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で記事を投稿したいです。専用プログラムはまだありません。
カギの値は聞かず、規約の確認と必要な準備だけを説明してください。
今回は何も公開せず、ログイン情報の取得や設定変更もしないでください。

この記事のコマンドをいきなり動かすより、今の自分の環境に合った入口になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

🌵 AIで手が止まったら、次に試す1つが見つかる。
📝 コピペで使える、AIへの頼み方
🖥️ 画面を見ながら追える、操作の手順
💰 料金と使いどころがわかる、比較と実例