Claude Code APIとPythonでWordPressとGoogleサービスを自動操作する仕組み

この記事でわかること

  • Claude Code APIとは何か
  • 全体の構成図
  • WordPressへの投稿をPythonで行う
  • Claude APIで記事を整形・強化する
  • Googleサービスとの連携
  • YouTube自動アップロード

Claude Code APIとPythonでWordPressとGoogleサービスを自動操作する仕組み

Claude CodeのAPIをPythonから呼び出し、WordPressへの投稿やGoogleサービスの操作を自動化する方法を解説します。「コマンド一発で複数のサービスを連携させる」という構成の全体像と、実装のポイントをまとめました。


Claude Code APIとは何か

Claude CodeはAnthropicが提供するCLIツールですが、裏側にはAnthropicのAPIが動いています。このAPIをPythonから直接叩くことで、Claude(AIアシスタント)をあなたのスクリプトの「頭脳」として組み込むことができます。

import anthropic

client = anthropic.Anthropic(api_key="YOUR_API_KEY")

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    messages=[
        {"role": "user", "content": "この記事のタイトルを5案提案して"}
    ]
)
print(message.content[0].text)

Claudeに「文章を整える」「タイトルを考える」「SEOキーワードを抽出する」といった指示を出し、その結果を次の処理へ渡すのが基本的な流れです。


全体の構成図

[Obsidian メモ / テキスト素材]
        ↓ Python スクリプト起動
[Claude API] ← 記事整形・タイトル生成・SEO最適化
        ↓
[WordPress REST API] → 予約投稿・カテゴリ・タグ自動設定
        ↓
[Google サービス] → YouTube アップロード / Gmail 通知 / Google Drive 保存

各ステップをPythonで繋ぐことで、素材を用意するだけで公開まで自動化できます。


WordPressへの投稿をPythonで行う

WordPress には REST API が標準搭載されており、アプリケーションパスワードを使って外部から投稿できます。

import requests

WP_BASE = "https://yoursite.com/wp-json/wp/v2"
AUTH = ("username", "アプリケーションパスワード")

def post_to_wp(title, content, schedule_date):
    payload = {
        "title": title,
        "content": content,
        "status": "future",       # 予約投稿
        "date": schedule_date,    # "2026-04-21T09:00:00"
        "categories": [162],      # カテゴリID
    }
    resp = requests.post(f"{WP_BASE}/posts", auth=AUTH, json=payload)
    return resp.json()

ポイント
status: "future" で予約投稿になる
categories / tags はIDで指定
– アプリケーションパスワードは WordPress 管理画面 → ユーザー → プロフィールで発行


Claude APIで記事を整形・強化する

素材テキストをそのまま投稿するのではなく、ClaudeにSEO最適化や見出し整理を依頼します。

def enhance_article(raw_text):
    client = anthropic.Anthropic()
    prompt = f"""
以下のテキストをWordPress記事として整えてください。
- H2/H3見出しを適切に設置
- 箇条書きを活用して読みやすく
- SEOを意識したリード文を追加

テキスト:
{raw_text}
"""
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=4096,
        messages=[{"role": "user", "content": prompt}]
    )
    return response.content[0].text

これにより、メモ書きレベルの素材でも公開できるクオリティに自動で引き上げられます。


Googleサービスとの連携

YouTube自動アップロード

Google Cloud Console でOAuth2認証を設定し、YouTube Data API v3 を使います。

from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
from google.oauth2.credentials import Credentials

def upload_to_youtube(video_path, title, description):
    creds = Credentials.from_authorized_user_file("token.json")
    youtube = build("youtube", "v3", credentials=creds)

    body = {
        "snippet": {
            "title": title,
            "description": description,
            "categoryId": "28"  # Science & Technology
        },
        "status": {"privacyStatus": "private"}  # まず非公開で確認
    }
    media = MediaFileUpload(video_path, chunksize=-1, resumable=True)
    request = youtube.videos().insert(part="snippet,status", body=body, media_body=media)
    response = request.execute()
    return response["id"]

Gmail通知

投稿完了後にGmailで自身に通知を送ることも可能です。

import smtplib
from email.mime.text import MIMEText

def send_gmail_notify(subject, body):
    msg = MIMEText(body)
    msg["Subject"] = subject
    msg["From"] = "info@example.com"
    msg["To"]   = "info@example.com"

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
        server.login("info@example.com", "Gmailアプリパスワード")
        server.send_message(msg)

Obsidianと連携したワークフロー

watchdog ライブラリを使うと、Obsidianの特定フォルダにMarkdownファイルを保存した瞬間にスクリプトが自動起動します。

from watchdog.observers.polling import PollingObserver as Observer
from watchdog.events import FileSystemEventHandler

WATCH_FOLDER = "/path/to/obsidian/投稿する記事"

class MarkdownHandler(FileSystemEventHandler):
    def on_created(self, event):
        if event.src_path.endswith(".md"):
            raw = open(event.src_path).read()
            enhanced = enhance_article(raw)    # Claude API
            post_to_wp("タイトル", enhanced, next_slot())  # WordPress

observer = Observer()
observer.schedule(MarkdownHandler(), WATCH_FOLDER, recursive=True)
observer.start()

実際のワークフロー
1. Obsidianにメモを書く
2. 所定フォルダに保存
3. → Claude APIが記事を整形
4. → WordPressに予約投稿
5. → Gmail通知


認証まわりの注意点

サービス 認証方式 取得場所
Anthropic API APIキー console.anthropic.com
WordPress アプリケーションパスワード WP管理画面 → ユーザー
Google OAuth2(token.json) Google Cloud Console
Gmail送信 Gmailアプリパスワード Googleアカウント → セキュリティ

Google系は初回のみブラウザで認証が必要で、token.json が生成されると以降は自動更新されます。


まとめ

  • Claude API → テキスト整形・SEO強化の頭脳
  • WordPress REST API → 予約投稿・カテゴリ・タグの自動設定
  • Google API → YouTube非公開アップロード・Gmail通知
  • watchdog → Obsidianと連携してファイル保存をトリガーに

Pythonで各APIを繋ぎ、Claudeを中心に置くことで「書く→公開」の作業を限りなく自動化できます。一度仕組みを作れば、素材を用意するだけで複数サービスへの展開が完結します。

ブログ

BLOG

PAGE TOP