For short, " I. M. G. D. "
Established : 1997/12/07

Light up your room, and browse away from the monitor, please! :-)

2023/12/14

Mac/iOS/iPad OS版Safariで開いたWeb版X(旧Twitter)からMastodonとBlueskyへ直接クロスポストするtwitter-to-bskyを使ってみる

event_note
ここしばらくテストしていた環境が安定したので、急ぎメモ書きを公開。

X(旧Twitter)がこの先どうなるか分からんので他のSNSへ脱出を考えている方は多いと思う。いまいち決め手に欠けるとは言え、分散型をうたい既に一定の評価を得ているMastodonや、将来性を見据えてBluesky等へ移動する方が多いようだが、ノイズを含む情報量はいまだにX(旧Twitter)にアドバンテージがある。

この状況では完全移籍ではなく並行して使い続けるのが妥当だが、かと言って各SNSを使い分けるのもいまいちめんどくさいという場合、同一内容を複数のSNSへ投稿するクロスポストという手がある。

X(旧Twitter)とMastodonのクロスポストはBufferというサービスとそのクライアントアプリを使えば以前から可能でワタシも使っていたが、先日、これにBlueskyも含めたクロスポストが可能なユーザースクリプトを見つけたので、さっそく使ってみた。設定がうまくいけば、X(旧Twitter)のWebアプリから気軽にクロスポストできるようになる。個人的には快適だけど、自分がたまたまうまくいっただけかもしれないので当然ながら無保証無サポート、試す場合は自己責任でお願いします。


ユーザースクリプトを最初から説明するのはめんどくさいので省略。必要なものは以下。
  • 機能拡張が追加できるWebブラウザ。PCだけで使うならデファクトスタンダードのChromeがいちばん安定しているが、Firefoxでも何とかなりそう(未確認)。ワタシの場合、今回はMac / iPhone / iPadで使いたかったので、Safariを使用。念のためアップデートして最新にしておくこと。
  • Tampermonkey(または互換性のある機能拡張)。ユーザースクリプトを上記のWebブラウザで実行させるためのものだが、かなり前に大ブームになったあとWebブラウザの高機能化に反比例してすっかり下火になってしまったので、それっぽいものをいろいろ試して動くか確認する必要がある。Safariの場合は、Stayという機能拡張がMac / iPhone / iPadで使えて後述のスクリプトが動作したので今回はこちらで。
  • twitter-to-bsky。今回の肝となるユーザースクリプト。中身はjavascriptで書かれていて単独では実行できないので、先のTampermonkey(または互換性のある機能拡張)に読み込ませて動かす必要がある。
■Mac版Safariの場合
  1. Mac App Storeから最新のStayをダウンロードする。
  2. Safariの設定で機能拡張のStayが有効になっているのを確認する。
  3. アプリケーションのStayを起動してtwitter-to-bskyを読み込ませる。問題なく読み込ませたら、スクリプトの設定をAutoまたはContentsにすること。なおStayの設定でバッジ表示を有効にしておくと何かと便利。
  4. Safariを再起動またはX(旧Twitter)を再読み込みして、Stayに読み込ませたtwitter-to-bskyにバッジが表示されず問題なく動いていることを確認する。
  5. twitter-to-bskyの説明書き通りにMastodonとBlueskyの各アカウントに関する情報を記入し保存。
  6. X(旧Twitter)に表示されるMastodonとBlueskyの☑️にチェックを入れてポストし、指定のMastodonとBlueskyの各アカウントに同じ内容が投稿されるかテスト。なお最初に起動したときアクセス制限を求められるけど(セキュリティ的にはあまりおすすめできないが)「すべてのサイトで許可」を選ぶこと。また、ポスト後の処理にやや時間がかかるので、落ち着くまで少し待った方がいい。
  7. テストの結果が問題なければ完了。おめでとう!必要に応じてMastodonとBlueskyの☑️をつけ外しして使い分けよう。
■iPad版Safariの場合

基本的にはMac版と同じ方法でいけるはずだけど、うまくいかない場合は下記のiPhone版Safariの場合を試してみること。

■iPhone版Safariの場合(荒技で乗り切る必要があるので非推奨、試すなら自己責任で)
さて問題はこちら。iPhone版SafariではPC用X(旧Twitter)を表示できないので、普通の方法ではMac版Safariの場合の5. で説明した設定がそもそもできない。仕方ないのでtwitter-to-bskyのソースを書き換えることで強引に対処する。変更するのは以下の4点。
  • 133行目の後半
    '' で囲まれた部分のMastodonのサーバURLを変更(デフォルトで 'https://mastodon.social' となっているのを 'https://mstdn.jp' など自分の使うサーバのURLに変える)。
  • 134行目の後半
    'mastodon_api_key', '' の後半の '' (シングルクオーテーション2つ)で囲われている中に、Mastodonサーバへアクセスするために生成したAPIキーを貼り付ける。
    'mastodon_api_key', '' → ''mastodon_api_key', 'XXXXXXXXXX' みたいにする。
  • 140行目の後半
    'bsky_handle', '' の後半の '' の中へ、上記と同様にBlueskyの bsky_handle 値を貼り付ける。
    'bsky_handle', '' →  bsky_handle', 'YYYY.YYYY.YYYY' みたいにする。
  • 141行目の後半
    'bsky_app_password', '' の後半の '' (シングルクオーテーション2つ)で囲われている中へ、Blueskyサーバへアクセスするために生成したアプリパスワードを貼り付ける。
    'bsky_app_password', ''  → 'bsky_app_password', 'ZZZZ-ZZZZ-ZZZZ' みたいにする。
上記を保存したらStayやSafariを一旦終了して起動し直し、Mac版やiPad版のときと同じようにテストする。問題なく動いたら儲けもの。うまく行かない場合は機能拡張を無効化してtweet-to-bskyを削除して、できればStayも一旦削除して、最初からやり直してください。

今朝Mac向けのStayがアップデートされたためか、ようやく安定したようなので備忘録を兼ねて急ぎメモ書きしてみた。あとでスクリーンショット等を追加するなど手直しするつもりだけど、注意点としては画像など添付したポストはだいたいエラーになるので避けるのと、X(旧Twitter)のツリー化ポストは他のSNSでは無視されて独立した投稿になるのと、そもそもクロスポスト自体があまり好まれない場合があるらしいので、そのあたり事前に確認しておくのが無難だと思います。
Pocket このエントリーをはてなブックマークに追加