こんにちは、よしざきです。
先日公開したMastodon・Blueskyの投稿・お気に入り・ブックマークをGitHubに送るやつ三つを一つのActionに統合しました(本記事の公開に合わせて、三つの記事・コードは非公開化済)。
「全てのSNSの投稿やお気に入りを、自動でObsidianの日記に記録できたら便利じゃない?」という発想から、Claudeに手伝ってもらって作成しました。
以下のreadmeもClaudeに作ってもらいました。コードは全部Claudeに書いてもらったので、デバッグが必要な場合はコメントで教えてください!
https://github.com/y0b1t2/Mastodon-and-Bluesky-to-Obsidiangithub.com🎯 このシステムでできること
BlueskyとMastodonの投稿・お気に入りを自動でObsidianに同期して、統合的なデジタル日記を作成できます。
BlueskyとMastodonのいずれか一方だけでも以下の手順で対応可能です。
Bluesky
- 📝 投稿・リポスト・リプライ を記録
- ⭐ お気に入り を元投稿の日付で記録
- 🏷️ ハッシュタグ・リンク を完全保持
Mastodon
- 📝 自分の投稿 を記録
- ⭐ お気に入り を投稿時刻で記録(過去24時間分)
- 🔖 ブックマーク も同様に記録
- 🏷️ ハッシュタグ を保持
共通機能
- 🕐 正確な日本時間 で投稿時刻を記録
- 🚀 毎朝3時に自動同期 でコンフリクトを予防
- 📝 Thinoプラグイン連携 で美しい表示
- 🔄 差分同期 で高速処理(2回目以降)
- 📁 既存ファイルに追記 で手動メモと共存
🚨 重要な注意点
Blueskyの制限事項
- リプライの表示制限
- リプライは返信先の内容が見えません
- 「Re」のプレフィックスのみで表示(返信先は見えません)
- 引用リポスト非対応
- 引用リポストは取得できません
- 通常のリポストのみ対応
Mastodonの制限事項
- お気に入り・ブックマークの取得制限
- 投稿時刻が24時間以内のもののみ取得
- 古い投稿のお気に入りは記録されません
- API制限
- 最大40件まで取得可能
🛠️ 必要なもの
必須ツール・アカウント
- ☐ Obsidian がインストール済み
- ☐ Thinoプラグイン がインストール済み
- ☐ Obsidian Git プラグイン がインストール済み
- ☐ GitHubアカウント を持っている
- ☐ Blueskyアカウント または Mastodonアカウント(両方でもOK)
事前知識不要
プログラミング経験は必要ありません。説明に従って設定すれば動作します。
📋 設定手順(全8ステップ)
ステップ1: GitHubリポジトリの準備
1-1. GitHubでプライベートリポジトリを作成
GitHub.comにログイン
「+」ボタン → 「New repository」をクリック
リポジトリ設定:
Repository name: obsidian-social-sync Description: Bluesky and Mastodon posts sync to Obsidian ✅ Private(重要!投稿内容を保護) ✅ Add a README file「Create repository」をクリック
1-2. Obsidian Git プラグインでリポジトリを連携
- Obsidianを開く
- Settings → Community plugins → Obsidian Git
- リポジトリクローン:
- リポジトリURL: https://github.com/[あなたのユーザー名]/obsidian-social-sync
- ローカルディレクトリを選択
- 認証設定: GitHubのユーザー名・パスワード(またはPersonal Access Token)を入力
ステップ2: Thinoでの保存先設定
2-1. 保存先ディレクトリの作成
Obsidianで新しいフォルダーを作成
推奨ディレクトリ名: Thino
📁 Vault Root/ └── 📁 Thino/ ← ここに投稿が保存される ├── 2025-01-15.md ├── 2025-01-16.md └── ...
ステップ3: GitHub Personal Access Token の作成
3-1. GitHubでPATを作成
- GitHub右上のプロフィール画像 → Settings
- 左下の「Developer settings」
- 「Personal access tokens」 → 「Tokens (classic)」
- 「Generate new token (classic)」
3-2. トークン設定
Note: Social Media Obsidian Sync
Expiration: 1 year(任意に設定可能)
必要な権限(スコープ):
✅ repo (Full control of private repositories)
✅ workflow (Update GitHub Action workflows)
3-3. トークンを保存
- 「Generate token」をクリック
- トークンをコピー(ghp_で始まる)
- 安全な場所にメモ保存(一度しか表示されません)
ステップ4: GitHub Secrets の設定
4-1. Secrets設定画面へ
- GitHubリポジトリページを開く
- 「Settings」タブをクリック
- 左サイドバー「Secrets and variables」 → 「Actions」
4-2. 必要なSecretsを追加
共通(必須)
Name: GITHUB_TOKEN
Secret: [ステップ3で取得したPersonal Access Token]
Bluesky用(Blueskyを使う場合)
Name: BLUESKY_HANDLE
Secret: [あなたのBlueskyハンドル(例:user.bsky.social)]
Name: BLUESKY_PASSWORD
Secret: [BlueskyのApp Password]
App Password作成方法:
- Bluesky → 設定 → プライバシーとセキュリティ
- App Passwords → 新しいApp Passwordを作成
Mastodon用(Mastodonを使う場合)
Name: MASTODON_INSTANCE_URL
Secret: [あなたのインスタンスURL(例:https://mastodon.social)]
Name: MASTODON_ACCESS_TOKEN
Secret: [Mastodonのアクセストークン]
アクセストークン作成方法:
- Mastodon → 設定 → 開発
- 新規アプリ → 名前「Obsidian Sync」で作成
- 必要な権限: read:accounts, read:statuses, read:favourites, read:bookmarks
ステップ5: GitHub Actions ワークフローファイルの作成
5-1. GitHub上で直接作成
- GitHubリポジトリページを開く
- 「Add file」ボタン → 「Create new file」をクリック
- ファイル名を入力: .github/workflows/unified-social-sync.yml
5-2. 重要:カスタマイズが必要な箇所
以下の箇所を、ステップ2で決めた保存先に変更してください:
yaml
# 74行目付近
- name: Create Thino directory
run: |
mkdir -p Thino # ← あなたの保存先フォルダ名に変更
# 728行目付近
- name: Commit and push changes
run: |
git add Thino/ # ← あなたの保存先フォルダ名に変更
例:日記フォルダーに保存する場合
yaml
mkdir -p Daily/Social
git add Daily/Social/
5-3. ファイルの保存
- カスタマイズが完了したら
- 「Commit new file」ボタンをクリック
- コミットメッセージ: Setup unified social sync workflow
- 「Commit new file」をクリックして確定
ステップ6: 初回実行とテスト
6-1. GitHub Actionsで手動実行
- GitHubリポジトリ → 「Actions」タブ
- 「Unified Social Media to Obsidian Sync」を選択
- 「Run workflow」ボタンをクリック
- Force full sync: falseのまま実行
6-2. 実行ログの確認
成功すると以下のようなログが表示されます:
🚀 統合ソーシャルメディア同期を開始します...
⏰ 実行開始時刻: 2025-01-15 12:00:00 JST
=== Mastodon同期 ===
✅ Mastodon投稿取得完了: 5件
✅ お気に入り取得完了: 3/10件が対象
✅ ブックマーク取得完了: 2/5件が対象
=== Bluesky同期 ===
✅ Blueskyログイン成功
✅ Blueskyアクティビティ取得完了: 8件
✅ Blueskyライク取得完了: 12件
🎉 統合同期完了!
ステップ7: Obsidianでの確認と運用開始
7-1. 最新データの取得
- Obsidian Git で最新データをプル
- Ctrl+P(Cmd+P) → “Git: Pull”
7-2. 生成ファイルの確認
markdown
# 2025年01月15日
- 18:00 今日は良い一日でした #日記 #via_bluesky
- 17:30 ⭐️alice 参考になる記事です #tech #via_bluesky_fav
- 15:30 Mastodonからの投稿テスト #test #via_mastodon
- 14:00 RP @bob.bsky.social 面白い視点ですね #via_bluesky
- 12:00 ⭐️charlie@mastodon.social 勉強になりました #via_mastodon_fav
- 10:00 🔖eve@mastodon.social 後で読む記事 #via_mastodon_bookmark
7-3. 自動同期の確認
- 毎朝3時: 自動実行される(日本時間)
- 差分取得: 2回目以降は新規分のみ(高速)
🔧 トラブルシューティング
Bluesky関連
「401 Unauthorized」エラー
- App Passwordを再生成してGitHub Secretsを更新
- ハンドル名に@を含めていないか確認
Mastodon関連
お気に入りが取得されない
- 24時間以内の投稿のみが対象です
- アクセストークンの権限を確認
共通
ファイルが作成されない
- ワークフローファイルの保存先ディレクトリ名を確認
- Thinoフォルダが正しく作成されているか確認
「403 Forbidden」エラー
- GitHub Personal Access Tokenの権限を確認
- repoとworkflow権限が必要
🎊 完了!
達成したこと
- ✅ BlueskyとMastodonの統合同期
- ✅ 投稿・お気に入り・ブックマークの自動記録
- ✅ 正確な日本時間での記録
- ✅ ハッシュタグの完全保持
- ✅ 効率的な差分同期
これからできること
- 統合ライフログ: 複数SNSの活動を一箇所で管理
- クロスプラットフォーム分析: どのSNSでどんな話題に興味を持ったか
- ハッシュタグ検索: SNS横断での話題追跡
- 知識の連携: SNS投稿からObsidianノートへのリンク
このシステムで、分散していたSNS活動が一つの価値あるデジタル日記に統合されます。複数のプラットフォームでの思考や発見が、Obsidianという一つの場所に集約され、新しい知識管理体験が始まります!