ObsidianとWordPressの自動投稿フローを整備した話|仕組みを知ることで広がる可能性
ObsidianとWordPressの自動投稿フローを整備した話|仕組みを知ることで広がる可能性
概要
Obsidianの特定フォルダにMarkdownファイルを置くだけで、WordPressに自動で予約投稿される仕組みを整備した。その過程で発覚した問題の解決と、「仕組みを知ることで可能性が広がる」という気づきの記録。
フロー全体像
Obsidian(13_投稿する記事)にファイルを置く
↓
obsidian_to_wp.py が検知(LaunchAgentで常時起動)
↓
WordPressのAPIに予約投稿
↓
_posted フォルダに移動
↓
WordPress管理画面がブラウザで自動表示
発覚した問題:全フォルダが監視対象だった
当初の設定ではObsidianのルートフォルダ全体を監視していた。学習ノートや個人メモも含めたあらゆる .md ファイルがWordPressに自動投稿される状態だった。
# 修正前
WATCH_FOLDER = ".../Documents"
# 修正後
WATCH_FOLDER = ".../Documents/13_投稿する記事"
_postedフォルダが繰り返し出現した原因
新しいファイルを保存するたびに _posted フォルダが作られる謎の現象が続いた。
調査の流れ:
- Obsidianのコミュニティプラグインを確認 → なし
- iPhoneのObsidianも動画で確認 → プラグインなし
- ファイル作成から 3秒で移動 されることを計測 → ローカルが原因
- macOSのLaunchAgentを確認 →
com.casio.obsidian-to-wp.plistを発見 - スクリプトを読むと「投稿完了後に
_postedへ移動」する処理を確認
学習ノートを保存するたびにWordPressへ投稿され、_posted に移動されていた。
削除スクリプトの整備
投稿確認後に一括処理できる wp-delete.sh を作成。
# WordPressの最新予約投稿を削除
curl -X DELETE "https://.../wp/v2/posts/${ID}?force=true"
# _postedフォルダも削除
rm -rf ".../13_投稿する記事/_posted"
# ブラウザをリロード(osascript)
osascript -e 'tell application "Google Chrome" to reload active tab of front window'
osascriptとは?
osascript はmacOSに標準搭載のAppleScript実行コマンド。ローカルのChromeアプリに直接「リロードして」と命令できる。
ネットワーク越しにサーバーを操作するのではなく、Mac上のChromeアプリそのものに話しかけているイメージ。SafariやFinderなど他のアプリも同様に操作できる。
仕組みを知ることで広がる可能性
今回の作業を通じて実感したこと。
osascriptの仕組みを知ると「ブラウザを自動操作できる」という可能性が見えてくる。LaunchAgentを知ると「常時起動の自動化」が見えてくる。仕組みを理解するほど「できること・できないこと・やりたいこと」が具体的にイメージできるようになる。
これを知っているかどうかが、AIと協働する上での大きな差になる。 仕組みへの理解を育て続けることが、AI時代における人間側の重要な素養ではないかと感じた。
対処内容まとめ
- 監視フォルダを
13_投稿する記事のみに変更 - 古いプロセスをkillして再起動
- 意図せず投稿された記事を 69件削除
- 投稿後にWordPress管理画面を自動表示する機能を追加
- 削除・リロード・
_posted削除を一括処理するスクリプトを整備
関連記事
TAG
