X/Bluesky埋め込みを修正するOSSが話題
朝の出汁版(通勤2分)
- ポイント1: DiscordやTelegramでX(旧Twitter)やBlueskyのリンクを貼ったとき、画像・動画・投票などが正しく表示されない問題を修正するOSSツール「FxEmbed」が5,000超のスターを集めている。
- ポイント2: 自前でサービスやコミュニティを運営していてSNSリンクの見栄えが崩れる問題に悩んでいる場合、このツールを経由したURL変換で対応できる仕組みになっている。
- ポイント3: GitHubのREADMEにセルフホスト手順が記載されているので、Cloudflare Workersなどに乗せて自分のプロジェクトに組み込むところから試してみるとよい。
出汁の素(深読みモード)
XのリンクがDiscordで崩れる、その原因は「OGP取得の仕様変更」
XやBlueskyのリンクをDiscordやTelegramに貼り付けたとき、画像が表示されなかったり、複数枚あるはずの写真が1枚しか出なかったり、動画がサムネイルだけになったりする——この現象に心当たりのある人は少なくないはずです。
原因はXがOGPメタデータの取得を外部サービスに対して制限したことで、DiscordやTelegramのクローラーが正常にコンテンツを取得できなくなっているためです。SNSの仕様変更のたびに「埋め込みが壊れる」という問題はしばらく続きそうです。
これはSNSを積極的に使って情報発信しているコミュニティや、Discordサーバーで活動するクリエイターにとってはじわじわ効く問題です。リンクを貼るたびに見栄えが崩れ、クリックを促せないというのは、情報を届けるうえで地味なロスになります。
FxEmbedがやっていること:URLを「翻訳」して埋め込みを復元する
「FxEmbed」はこの問題に対するOSSの回答で、GitHubで5,000超のスターを集めています。
仕組みはシンプルです。x.com/...やbsky.app/...のURLを、FxEmbedが管理するプロキシドメイン(fxtwitter.comやfxbsky.appなど)に書き換えて貼り付けると、FxEmbed側がXやBlueskyに代わってOGPメタデータを整形し、Discord・Telegramのクローラーに返します。結果として、複数画像・動画・投票なども正しく展開されます。
注目したいのは、これが単なる「古い対症療法」ではなく、現在も活発にメンテナンスされているTypeScriptプロジェクトだという点です。XのAPIやBlueskyのAT Protocolの変更に追従しながら更新されており、リポジトリのコミット履歴を見ると直近も継続的に動いていることが確認できます。
サポートされている機能はかなり広範です。複数画像・動画・投票の表示、言語翻訳(翻訳付き埋め込み)、リポストや返信ツリーの展開など、素のXリンクでは欠けがちな情報をDiscord上で補完できます。
セルフホストで自分のプロジェクトに組み込む:最初の一手
すぐに使い始めるなら、URLの書き換えだけなら設定ゼロで始められます。XのURLのx.comをfxtwitter.comに、bsky.appをfxbsky.appに置き換えてDiscordに貼るだけで、今日から埋め込みが改善します。
より踏み込んで使うなら、GitHubに記載されているセルフホスト手順を使い、Cloudflare Workersにデプロイするのが現実的な選択肢です。Cloudflare WorkersはFreeプランで1日10万リクエストまで無料なので、個人サイトや小規模コミュニティなら実質コストゼロで動かせます。手順はREADMEに記載されており、wrangler deploy一発でWorkers上に展開できる構成になっています。
自前でホストするメリットは、外部サービスへの依存度を下げられること、そしてURL変換のロジックを自分でカスタマイズできることです。たとえばDiscordのBotと組み合わせて、サーバー内に貼られたXリンクを自動で変換する仕組みを作ることも、コードが読める人なら現実的な範囲に収まります。
リポジトリはこちら:https://github.com/FxEmbed/FxEmbed
AIエージェント・Bot開発との接点:自動変換の組み込み先として
以前紹介したAIエージェントに「道具箱」を持たせる時代へでも触れたように、エージェントが外部ツールを呼び出す構成が一般化しつつあります。FxEmbedはそうした「道具箱」の一つとして組み込める候補です。
具体的な活用パターンとして考えられるのは、SNS投稿を収集・整理するワークフローのなかでDiscord通知を送るステップにFxEmbedのURL変換を噛ませること。また、XやBlueskyのリンクをSlackやNotionに自動投稿する仕組みを作っている場合も、メタデータを正しく渡すためのレイヤーとして機能します。
XのAPIは有料化・制限強化が続いており、外部サービスが埋め込みに使えるメタデータはさらに削られる可能性があります。「リンクを貼っても伝わらない」問題は今後も続くと考えておいたほうがよく、プロキシ型の変換ツールをいつでも使える状態にしておく意味は増しています。
参照ソース
- [GitHub]FxEmbed/FxEmbed→ github.com/FxEmbed/FxEmbed
- [GitHub]NVIDIA/Model-Optimizer→ github.com/NVIDIA/Model-Optimizer
- [RSS]A new, no-compromises database architecture for the agentic era→ cloud.google.com/blog/products/databases/alloydbs-a…
