ChatGPT・Claude・Geminiの記事をブログへ迂回投稿 — 1行のcurlでLLMの無料枠を活用する

活用法 / ブログ運営 / Python・API
約2,400文字

ブログ記事をLLMで執筆する際、最も一般的なパターンは、ChatGPTやClaudeのチャット画面に「このテーマでガイド記事を書いて」と入力し、出力されたHTMLを手動でコピーしてBloggerの管理画面UIに貼り付けることです。これには5分ほどかかり、ラベル、メタディスクリプション、カテゴリは毎回設定し直さなければなりません。そこで私たちは、LLMチャットの出力を1行のcurlコマンドでBloggerのDRAFT(下書き)まで送信する迂回エンドポイントを作成しました。

作成した理由

LLMのAPIを直接呼び出す方法(例:Anthropic / Google)はトークン費用が累積し、記事1本あたり$0.10〜0.50かかります。100本なら$10〜50。当サイトのような個人運営のブログにとっては負担になります。

一方、ChatGPT Plus、Claude Pro、Gemini Advancedのサブスクリプションは月額$20の定額制です。月に100本の記事を書いても追加費用はゼロ。ただし、チャット画面からBloggerへのコピペ作業のワークフローが非常に面倒なため、結局はAPI呼び出しに戻ってしまいがちです。

解決策:LLMチャットから取得したHTMLを、Webアプリケーションの投稿エンドポイントへ1行で送信するだけで、ラベル、メタ情報、グラフの自動挿入、SEOメタ検証のフックチェーンをすべて通過し、BloggerのDRAFT(下書き)に保存されます。人間が行う作業は、チャットで回答を受け取った後にcurlを1回実行するだけです。

月額$20の定額料金で、100本の記事をWebアプリケーションの投稿フックチェーン(サニタイズ / クオリティゲート / インデックス5チャンネル)にすべて通しながら投稿できます。

動作原理

Webアプリケーション内に、専用のエンドポイント POST /api/writer/external-publish を用意しています。

Request shape


{
 "title": "記事のタイトル",
 "content_html": "<p>本文HTML...</p><h2>セクション</h2>...",
 "label": "活用法",
 "post_type": "guide",
 "primary_keyword": "キーワード",
 "meta_description": "100-160文字のメタ説明"
}

LLMチャットから受け取ったHTMLを content_html にそのまま入れ、残りの5つのフィールドを埋めるだけで完了です。

サーバー側の処理

  1. 認証 — localhost限定(127.0.0.1)。外部への露出なし。
  2. ラベルの正規化(Label normalize)["活用法", "使い方", "tips"] のような表記揺れのある入力を、サイトの正規(canonical)ラベル6つのうちの1つに自動マッピング。定義されていないラベルの場合は {"error":"unknown_label","allowed":["..."]} を返却。
  3. HTMLチェック