はじめに
表題のようにTwitterのアーカイブデータを元に呟きを雑にMastodonへとインポートできるようにしてみた記事です。
なお、この記事で紹介する実装は負荷などは考慮されておらず、ただ呟きをインポートできるようにしてみただけになっています。
そのためこの記事を参考に運営しているMastodonサーバーへ導入する場合は、自己責任でお願いします。
きっかけ
タイムライン上で「Twitterの投稿データをMastodonに移行出来たらなぁ」という話題が流れてきたので、興味本位で実装してみた感じです。
実装
とりあえず以下のPRにまとめてあります。
逐次で処理してるので負荷とかかかりそうなので、実際に使えるものにするのであれば
- バルクインサートに対応
- 公開範囲などの考慮
- Retweetsの場合のインポートはどうするか
などを詰める必要はありそうです。
ただ思ったより実装自体はシンプルにできたので、うまいことやれば実用的なものにできる可能性はありそうです。
使い方
まず以下の記事を参考にTwitterからダウンロードしてきたアーカイブの中にあるtweet.jsをスプレッドシートなどでインポートできるJSONファイルに変換します。
次に加工したJSONファイルをスプレッドシートなどにインポートします。
僕は以下の記事参考にスプレッドシート上に呟きをインポートし、必要な情報(呟きの内容と添付メディア)をインポートしました。
具体的にはJSONファイルの中の「tweet.full_text」と「tweet.entities.media」内にある配列の中の「media_url_https」をインポートしています。
あとはインポートしたスプレッドシートの一行目(CSVのヘッダー部分)をインポート機能に合わせて書き換えます。
例えば「呟きの内容」であれば「text」、呟きに添付していた画像であれば「image_0」から「image_3」のように書き換えます。
これでインポート用のCSVは生成できたので、あとは以下の画面からデータをインポートするだけです。
あとはサーバー側で諸々インポートの処理が実行され、完了するとTwitterで呟いたものがMastodon上にインポートされているはずです。
おわりに
興味本位でやってみてサクッと動けるものはできたので良かったですね。
ただ、実際に自分が運営しているサーバーに導入するかどうかでいくと厳しいかなぁと
というのも
- そもそも既存のユーザーからはメリットがない
- 既に移住しているユーザーからすると今更Twitterで投げた呟きをインポートする意味はない
- 投稿データをインポートする仕様なのでサーバーへの負荷がかかる
- 特に件数が多い場合は辛い
- また連合先にも負荷が行く可能性がある
- Retweetsやリプライなどがインポートされても、どういった経緯だったかなどはよくわからない
- ただ履歴としてデータが存在するだけなので意味はない
- notestockというサービスですでにTwitterのアーカイブデータをインポートできるようになっている
- そのためそっちにインポートするのが良さそう
といった理由から導入するうまみはないかなと個人的に考えています。
ただ、新規ユーザーで以前までTwitterで使っていたデータをいい感じに移行したいという人はいると思います。
そういう人向けにはあってもいいのかもしれないですね。