「note投稿、全部自動化できないの?」
自分のブログ運用を見直していたとき、ふとそう思った。記事のHTML変換は自動化済み。ブラウザでの貼り付けも自動化できている。あとは公開ボタンを押すだけの数秒すら、AIに任せられないものか。
結論から言うと、任せなかった。その理由と、代わりにどこまで自動化したかを書く。
公式APIが無いサービスを自動化する、2つの手段
noteには記事投稿の公式APIが無い。これは調べる前から知っていた。自動化の手段は、実質2つしか残っていない。
1つは、ブラウザのセッションcookieを使って、note内部のAPIを直接叩く方法。もう1つは、ブラウザ操作そのものを自動化する方法だ。
すでに1つ目の方法で、PV・フォロワー数の読み取りだけは自動化していた。セッションcookieを~/.config/配下に保存し、毎朝7時半にKPIを収集するバッチが読みにいく仕組みだ。この経験があったから、「同じ方式を投稿にも広げればいい」と最初は考えた。
「読み取り」で踏んだ地雷が、「投稿」への警戒を作った
ただし、この読み取り専用の自動化でも、すでに一度壁にぶつかっていた。テンプレ商品の売上数を取得しようとしたとき、noteの売上APIはuser_verification_needed、つまりパスワードの再確認を要求してきた。cookieだけでは通過できない。仕方なく、売上数はGmailの購入通知メールを週次で人力カウントする方式に切り替えた。
この経験が、投稿の自動化を検討するときの判断材料になった。売上という機微な操作に追加認証がかかるなら、記事の公開という同じくらい重い操作にも、同種の壁がある可能性は高い。
しかもnoteのエディタは、プレーンテキストの貼り付けだとMarkdownの記法をそのまま表示してしまう。過去にも、貼り付け方を誤って見出しの##や太字の**がそのまま本文に残る事故を踏んでいる。内部APIが受け取るデータ構造が、エディタの見た目通りに反映される保証もない。
選択肢は3つ。数秒の時短に、凍結リスクは釣り合わなかった
検討した選択肢は3つだった。
案A: 既存のブラウザ自動化を、下書き保存ボタンのクリックまで拡張する。公開ボタンだけ人間に残す。
案B: cookie方式で内部APIを直接叩き、完全無人化する。
案C: ブラウザを常駐させ、UI操作そのものを無人で最後まで実行する。
案Bと案Cは、時短効果は大きい。だがどちらも、公開という取り消しにくい操作を無人で実行することになる。このnoteアカウントは、副業ブランドの販売ページへの入り口であり、凍結したときの損失が大きい。しかも案Bは内部APIの仕様変更で予告なく壊れる可能性があり、案Cはヘッドレス実行特有の挙動が不正な操作として検知されるリスクを抱える。
一方で案Aが短縮できるのは、公開ボタンを押す数秒だけだ。数秒を短縮するために、アカウント凍結という後戻りしにくいリスクを負う必要があるのか。並べてみると、答えは自明だった。
「公開ボタンを押すだけの作業」を残すことに、意味はあるのか
そうは言っても、数秒のために人間の手を残すのは非効率ではないか、という反論はあり得る。だがこれは、X(旧Twitter)の運用で既に答えを出していた問いでもある。投稿の承認は週に1回まとめて人間が行い、実際の配信はAPIが自動で実行する。最終ゲートだけ人間に残す設計は、すでに実績のある型だった。
公開ボタンを押す数秒は、コストではない。取り消せない操作の直前に人間の目を1回通す、という設計そのものが価値だ。
下書き保存までは任せる。クリックの前後に確認を挟む
ブラウザ自動化の手順書に、下書き保存ボタンをクリックする工程を追加した。ただし機械的にクリックするだけでは事故が起きる。クリック前にボタンのラベルを確認し、「公開」や「次へ」など別の導線と誤認していないか確かめる。
クリック後は、URLとスクリーンショットで「まだ下書き状態であること」を確認する。価格設定やタグ設定を求める追加のモーダルが出たら、そこで止めて人間に引き継ぐ。
これで、貼り付けからタイトル入力、下書き保存までが一続きの自動化になった。残る手動作業は、アイキャッチとタグの設定、そして公開ボタンを押す最後の一手だけだ。
まだ実地検証はしていない
この拡張は、まだ実際の投稿では試していない。次回の投稿運用で、人が立ち会った状態で初回を回す予定だ。ドキュメント上の手順が正しくても、実際のUIで思った通りに動くとは限らない。
自動化の範囲を決める作業は、「どこまで速くできるか」を探す作業ではなかった。「取り消せない操作はどこか」を先に決め、そこにだけ人間を残す作業だった。次に何かを自動化するときも、まず取り消せない操作を1つ見つけることから始める。
私は現役EMとして、1on1やチーム運営の仕組み化について書いています。1on1管理のNotionテンプレート(無料Lite版)を公開中です → 試してみる。X: @anikuma_tech

コメント