ブログを運営していると、「手元のMarkdownやHTMLファイルをWebエディタを開かずにそのままアップロードしたい」「他のプログラムと連携して自動投稿したい」と思うことはありませんか?
今回は、Google Blogger API v3を利用して、ターミナルから簡単にBloggerへ記事を投稿できるPythonツール「Blogger_post」を作成する方法を解説します。

【ソースコードの公開について】
本ツールのソースコードは、GitHubでオープンソースとして公開しています。手元で動かしてみたい方はぜひクローンしてご利用ください。
👉 https://github.com/tai1mo/blogger-cli-mcp
はじめに:Bloggerへの投稿を自動化するメリット
Blogger標準のWebエディタは、見出しの設定やHTMLコードの挿入など、少し煩わしい操作が必要です。コマンドラインから直接投稿できるようになれば、お気に入りのエディタで書いた原稿をスクリプト一発でアップロードでき、日々の執筆における摩擦を大幅に削減できると考えています。
ツールの主な機能と特徴
今回作成する「Blogger_post」は、単なる使い捨てのスクリプトではなく、拡張性を考慮して設計しています。
- CLIとモジュールの両対応:ターミナルから直接実行できるだけでなく、他のPythonスクリプトから
post_article関数としてインポート可能です。 - 柔軟な本文指定:短い文章は引数として直接渡し、長い記事はHTMLファイルを読み込ませることができます。
- ステータスとラベル管理:下書き(draft)か即時公開(live)かを選べ、カンマ区切りで複数のラベルを付与できます。
- 堅牢なエラーハンドリング:OAuth認証のタイムアウト、ネットワーク切断、権限エラーなどを細かく検知し、日本語で分かりやすい対処法を提示します。
セットアップ手順(Blogger API v3とOAuth認証)
ツールを使用するには、Google CloudでAPIを有効化し、認証情報を取得する必要があります。
- APIの有効化:Google Cloud Consoleでプロジェクトを作成し、「Blogger API v3」を検索して有効化します。
- 認証情報の取得:APIとサービスの「認証情報」から、「OAuth 2.0 クライアント ID(デスクトップアプリ用)」を作成し、ダウンロードしたJSONファイルをスクリプトと同じディレクトリに
client_secret.jsonとして保存します。 - 環境変数の設定:同ディレクトリに
.envファイルを作成し、BLOG_ID=あなたのブログIDを記述します。(ブログIDはBlogger管理画面のURLに含まれる数字列です)
*(注意: client_secret.json や .env は機密情報です。絶対にGitなどで公開しないでください)*
使い方(コマンドライン編)
準備ができたら、ターミナルからコマンドを実行します。初回実行時はブラウザが立ち上がり、Googleアカウントでのアクセス承認が求められます。承認後は token.json が生成され、次回以降は自動で認証がパスされます。
▼ 基本的な投稿(下書き保存)
python blogger_post.py \
--title "テスト投稿のタイトル" \
--content "<h1>テスト</h1><p>これはテスト投稿です。</p>"
▼ HTMLファイルから読み込んで即時公開
python blogger_post.py \
--title "ファイルから読み込んだ記事" \
--file "path/to/article.html" \
--status live
使い方(モジュール編)
このツールの強みは、他の自動化スクリプトに簡単に組み込める点です。別のPythonファイルから以下のように呼び出すことができます。
from blogger_post import post_article
url = post_article(
title="APIからの自動投稿",
content="<p>スクリプトから投稿しています。</p>",
labels=["Python", "自動化"],
status="draft"
)
print(f"投稿完了: {url}")
まとめ
「Blogger_post」を使うことで、日々のブログ投稿の手間を大幅に削減できます。そして、この「モジュールとして呼び出せる関数」を用意したことで、後続の自動化への大きな布石となります。コマンドラインからのBlogger自動投稿環境をぜひ試してみてください。
0 件のコメント:
コメントを投稿