[Obsidian]Local REST API 導入

TIPS
TIPS

Obsidianを「外部から操作」できるようにするLocal REST APIを使うことで、ターミナルやPython、あるいは自作のスクリプトからObsidian内のファイルを読み書きできるようになり、Obsidianが単なるメモ帳から「情報のハブ」へと進化します。

Obsidianの Local REST API は、外部アプリからObsidianのノートを検索・作成・更新・削除するためのインターフェースを提供します。これにより、シェルスクリプトやプログラムから直接ノートを操作することが可能になります。

Step 1: プラグインのインストール

  1. Obsidianの 「Settings(設定)」 を開きます。
  2. 「Community plugins(コミュニティプラグイン)」 を選択します。
  3. 「Browse(ブラウズ)」 ボタンを押し、「Local REST API」と検索してインストールし、「Enable(有効化)」 をクリックします。

Step 2: セキュリティとネットワークの設定

APIは非常に強力なため、初期設定でのセキュリティ確保が重要です。

  1. API Keyの生成:設定画面の「General」セクションにある 「API Key」 を確認します(あるいは再生成します)。これは外部からアクセスする際の「合鍵」になります。
  2. HTTPS (TLS) の設定:デフォルトで自己署名証明書によるHTTPSが有効になっています。セキュリティ上、そのままにしておくことを推奨します。
  3. Portの確認:標準では 27124 ポートが使用されます。
[Obsidian]Local REST API 導入
[Samba]Ubuntuで安全なファイルサーバー構築
UbuntuでSambaを用いた安全なファイルサーバーを構築する方法を解説。基本のインストールから、IPアドレス制限、古いSMBプロトコルの禁止、UFW設定など、セキュリティを劇的に向上させる設定手順を具体的に紹介します。

Step 3: 接続テスト(簡単な使い方)

まずは、ターミナル(zsh等)から正しく動作しているか確認しましょう。API Keyを環境変数にセットして curl を叩くのが最も確実です。

# API Keyをセット(設定画面の値をコピーしてください)
export OBSIDIAN_API_KEY=\'あなたのAPIキー\'

# 接続テスト:現在のVault(保管庫)の情報を取得
curl -X GET \"https://127.0.0.1:27124/\" \
     -H \"Authorization: Bearer $OBSIDIAN_API_KEY\" \
     -k

※ -k オプションは、自己署名証明書によるSSLエラーを無視するために必要です。

Step 4: 実戦的なAPI活用例

1. 新しいノートを作成する

その日のタスクやログをスクリプトから自動生成したい場合に便利です。

curl -X POST \"https://127.0.0.1:27124/vault/Automation-Log.md\" \
     -H \"Authorization: Bearer $OBSIDIAN_API_KEY\" \
     -H \"Content-Type: text/markdown\" \
     -d \"# Automation Log\"$\'\n\'\"Created at: $(date)\" \
     -k

2. ノートの内容を取得する

特定のプロジェクトノートの内容を読み込み、処理に利用できます。

curl -X GET \"https://127.0.0.1:27124/vault/Note-Name.md\" \
     -H \"Authorization: Bearer $OBSIDIAN_API_KEY\" \
     -H \"Accept: application/vnd.olrapi.note+json\" \
     -k

Step 5: 開発者向けのヒント

  • APIドキュメントの参照:プラグイン設定画面の 「Open API Document」 をクリックすると、ブラウザでSwaggerドキュメントが開きます。利用可能なエンドポイント(検索、添付ファイル操作、コマンド実行など)がすべて網羅されています。
  • ヘッドレス環境での注意:Local REST APIは Obsidianが起動している間だけ 動作します。サーバーサイドの完全なバックエンドとして使うのではなく、デスクトップ環境における「自動化の窓口」として活用するのがベストです。

パス指定の具体的なルール

例えば、保管庫の名前が MyWork で、その中に Project/Task.md というファイルがある場合、アクセス方法は以下のようになります。

項目具体例
保管庫名MyWork (APIでは無視されます)
Obsidian内のパスProject/Task.md
APIのURLパス
[Obsidian]Local REST API 導入
https://127.0.0.1:27124/vault/Project/Task.md
(https://127.0.0.1:27124/vault/Project/Task.md)

なぜ固定なのか?

Local REST API は「今現在、Obsidian アプリケーションでアクティブになっている保管庫」に対して命令を送る仕組みだからです。そのため、URLに保管庫名を含める必要がない設計になっています。

注意点:サブディレクトリがある場合

もし、保管庫の直下ではなくフォルダの中にあるファイルを指定する場合は、/vault/ の後ろに続けてパスを記述します。

  • ルート直下: /vault/Index.md
  • フォルダ内: /vault/Diary/2026-05-01.md

エンコードについて

ファイル名やフォルダ名に日本語(全角文字)やスペースが含まれる場合は、URLエンコード(パーセントエンコード)が必要です。

  • ファイル名: 日報.md
  • APIパス: /vault/%E6%97%A5%E5%A0%B1.md
[Obsidian]Local REST API 導入
[Ubuntu]Obsidianのインストール
Ubuntu 24.04環境へObsidianをインストールし、Self-hosted LiveSyncによる同期やVimモード、Local REST APIの設定、Zshとの統合を行う手順を解説。エンジニア向けに最適化された爆速メモ環境を構築できます。

まとめ

Local REST APIを導入することで、Obsidianは「手書きのメモ」から「APIで叩けるデータベース」へと変貌します。

たとえば、Pythonでデータを取得し、そのままObsidianのデイリーノートに追記したり、開発中のエラーログを特定のノートに飛ばしたりといった運用が簡単になります。

Q よくある質問 (FAQ)
Q. Local REST APIはObsidianが起動していない状態でも動作しますか?
A.
いいえ、動作しません。Local REST APIはObsidianアプリケーションが起動している間のみアクティブになるため、デスクトップ環境での自動化ツールとして活用するのが最適です。
Q. APIリクエスト時にSSLエラー(証明書エラー)が発生する場合はどうすればよいですか?
A.
デフォルトでは自己署名証明書によるHTTPSが有効になっているため、curlコマンド実行時には「-k」または「--insecure」オプションを付与してSSLエラーを無視するように設定してください。
Q. 複数の保管庫(Vault)がある場合、操作対象はどのように指定しますか?
A.
Local REST APIは「現在Obsidianでアクティブ(起動中)になっている保管庫」に対して命令を送る仕様のため、URLに保管庫名を含める必要はなく、共通して「/vault/パス」の形式で指定します。

コメント

タイトルとURLをコピーしました