Mastodonメモ

本記事は Fediverse Advent Calendar 2022 (第二会場) の16日目の記事です。

はじめに


  • Mastodonに関する個人的メモです。多くの人にとって目新しい内容は無いと思いますが、整理しておきたかったので書きました。

  • 内容が古かったり間違っているかもしれませんがご了承ください。

リスト


  • Twitterはフォローしていないアカウントもリストに追加できます(鍵を除く)。 非公開リストの場合は追加された側に「リストに追加された通知」は来ません。もしかしたらあなたは誰かに日々監視されている…かもしれません。

  • Mastodonにもリスト機能はありますがフォローしていないとリストに追加できません。

  • Fedibirdにはアカウントの購読機能がありフォローしなくても他のアカウントのTootを読むことができます。そのアカウントがFedibirdのいずれかのアカウントにフォローされていないと情報が取得できない制限があるようです。

  • 仕様かバグかわかりませんが購読・正式フォローによらず他サーバーのアカウントに対してTootの取得漏れがわりと発生します(https://xxxxx/@xxxのアドレスで読めるToot内容より明らかに表示が少ない)。Tootしたのに相手の反応が「なんか話が噛み合わないな?」「想定される空リプが無いな?」と思ったら直接Tootを見てみましょう。単なる取得漏れかもしれません(し、そうではないかもしれません)。

削除(Toot)


  • サーバーの設定によると思いますが30分以内に削除できるToot数に制限があります。いくつか調べていませんが数十くらい(20とか30?)。この記事を書くにあたり試してみようかと思ったのですが思いのほか面倒なのでやめました。なお削除だけでなくToot以外のAPIを含む数だと思います。

  • Tootの痕跡を残したくない系の人が「Tootしてすぐに削除、を繰り返す」ムーブをしていて「消せなくなったw」という光景をよく目にしました。

  • 0分および30分になると再び消せるようになります。

削除(アカウント)


  • 上記仕様のため「Tootを一気に消したい、今すぐ消したい。そうだアカウントごと消して作り直そう!」って思ってアカウントを消し、同じIDを取ろうと思ってももう二度と誰もそのIDを取得できません。

  • アカウントを削除する時は「本当に削除しますか?」等の念押しはありません。

  • 「色々あってもうやめる」と思ってアカウントを削除しても、しばらくしてアカウントを作り直すこともあるでしょう。アカウントを削除する前にフォロー情報等をエクスポート(後述)しておきましょう。

DM(ダイレクト)


  • 絵文字やAAを駆使してネタTootを投稿したのに文字の位置がずれたりしたことはありませんか? :xxx: 系の記述で半角スペースの入れ忘れ等もやりがちですよね。

  • 意図した見た目を確実に実現するために、まず投稿先をLTLではなくDM(ダイレクト)にして投稿しましょう。宛先指定は不要です。すると自分へのDMになるので失敗しても誰にも気づかれません。

  • 「削除して下書きに戻す」によりToot前の状態に戻るので正常な表示になるまで「修正+自分へのDM」を繰り返し、正しい表示が得られたら投稿先をLTL等に変更して投稿しましょう。

Toot


  • Tootは公開、未収載、フォロワー限定、ダイレクトが選べます(Fedibird等はさらに区分あり)。ところでTwitter、公開アカウントが鍵アカウントにリプしたツイートを誰もが見られる仕様はなんとかなりませんかね?

  • 公開はLTL(ローカル)、HTL(ホーム)、FTL(連合)に流れます。

  • 未収載はHTLに流れます。フォロワーは見ることができますしフォローしていない人でもアカウントを直接見れば見ることができます。後述しますがタグは実質使えません。

  • ダイレクトはTwitterのDMと同様、TLではなくダイレクトメッセージに届きます(以降、ダイレクト系をDMと書きます)。

  • フォロワー限定は下図のように「フォロワーのみ閲覧可」と書かれています。HTLに流れますがフォロワーしか見ることができません。

  • ではFF外のアカウントに対してフォロワー限定で宛先指定してTootするとどうなるでしょうか?答えは普通に相手に届きます。DMと同様ですね(DMは設定で「フォローしていないユーザーからのダイレクトメッセージをブロック」にチェックを入れていると届きません)。

  • そのTootのやりとりはフォロワーのみ閲覧可「も」適用されるのであなたのフォロワーはそれらを見ることができます。二人っきりの会話ではないのでご注意ください。

添付画像


  • DMで画像を投稿した場合、もちろんあなたと相手はその画像を見ることができますがあなた達以外の人でもその画像を見ることができる仕様なのでご注意ください。画像のURLさえわかってしまえばログイン認証どころかアカウントすら不要で誰でも閲覧することができます。

  • 画像を自分自身宛にDMし、その画像のURLをコピーしてMastodonにログインしていない他のブラウザに貼り付け、画像が表示されることを確認してみてください。Discordにファイルを添付した状態と同様です。

  • 「DMなので誰も見ることができないよね!二人だけの秘密だねっ!」と浮かれ、DMに投稿したムフフな写真のURLをLTLに貼って「ボクたちのムフフな写真のURLです!まぁDM内の画像なのであなた達は見ることができませんけどねっ!」って挑発Tootすると全員が見ることができます。

  • 自分の個人情報が載った画像をうっかり投稿してしまうミスにご注意ください。住所が載っているAmazonのキャプチャ、消してあるものの容易に復元可能なバーコード、透けて裏面が解読可能な書類等。復元や解読を試みる者はそこかしこにいます。

  • Pawooは画像投稿時にAIによって顔が中心付近に来るようにサムネイルが作成されます。この応用で「投稿画像に個人情報が含まれているっぽいよ?」と警告してくれるAIがあったら良いかもしれませんね(諸刃の剣でしょうが)。

  • Twitterは縦横いずれか901ドット以上の画像を投稿するとJPEGに変換されてしまうので大きな透過PNG画像を投稿することができません。MastodonならPNGが維持されるので「透過PNGをいろんな人に渡したい」という場合に有用です。

  • ただしMastodonでは大きな画像は縮小されるので4K画像等は投稿できません(多くの場合4Kは2Kに縮小される)。サーバーによって縮小される画像サイズも違います(Pawooは他サーバーより小さく縮小される)。こういう用途であれば画像以外も貼れるDiscordの方がよいでしょう。

  • 最近はどうかわかりませんが以前はSSL証明書の期限切れ(更新漏れ)により「Tootは見られるけどToot内の画像が見られない!」ということがちょいちょいありました。この時にムフフな画像をLTLに貼って復旧するまでに削除するスリルを味わう人もいましたが画像URLのhttpsをhttpに打ち直すと閲覧できますのでご注意ください。

  • というかそもそもToot(画像)を削除しても画像ファイルはサーバー内にしばらく残るので上記状態でもURLをメモられるとSSL復旧後に閲覧できてしまいます。基本的なことですが「人に見られたらなにかと困る画像」をうpするのはやめておきましょう。

CSV


  • [設定]からフォロー、ミュート、ブロックなどの一覧をCSVファイルでエクスポートできます。例えばブロックしているアカウントはデフォルトでblocked_accounts.csvというファイル名でエクスポートされます。

  • CSVファイルの文字コードはShift_JISやCP932ではなくUTF-8です。

  • もちろんインポートもできます。できますが…どの項目をインポートするかをリストボックスで選択しておいてからインポートする仕様で、初期状態ではフォローになっています。何が言いたいかと言うと「フォローを選択した状態でうっかりブロック一覧のCSVを読み込ませてしまう」ことが起こりえるいや起きました(白目)。「お前の不注意だろ」と言われればそれまでですがアップロードした際に「フォローしようとしているけどファイル名はブロックですよ。本当に続行するの?」というチェック機能が欲しかった。

  • インポートする際には追加または上書きが選べます。上書きの場合は「1000アカウントをブロックしていたけど800アカウントは許してやるか」って時にいちいち手動でブロックを解除するのではなく1000行のCSVファイルをエクスポートしてテキストエディタ等で不要な800行を削除してブロック一覧にインポートすれば200アカウントのみブロックした状態に更新されます(既に存在しない・凍結されているアカウント等は消せないので残ります)。

  • この上書き処理、サーバーによっては正常に動作しないことがありますので実行後に確認しましょう。

アイコン


  • Twitterと同じくMastodonでもアイコン画像用に大きな画像をセットしても最大400x400ドットに縮小されます。

  • Twitterは401ドット以上の画像をアイコンにセットすると超絶劣化JPEG化されます。「画像が大きいほど高画質アイコンになるだろう!」ではありませんので最大でも400ドット画像にしましょう。Mastodonでは画質を保ったまま縮小されるようなのでTwitterのような問題はありません。

  • iPhone用のMastodonクライアントアプリTootleでアイコンをセットすると120x120ドットに縮小されます。高画質アイコンにしたい場合はブラウザ等でセットしましょう。

  • アイコンを更新しても他サーバーのアカウントから見た場合の表示が更新されないことがあります。そのままでも数時間〜数日待てば更新される場合もあれば数ヶ月経っても更新されない場合もありました。

  • アイコンに特にこだわりが無いなら問題ありませんが、例えば「その時のノリで実写アイコンに変更したけどやっぱり恥ずかしいし特定されるのもイヤなのでいつものアイコンに戻した→しかし他サーバーから見たらずっと実写アイコンのまま」ということもあります。確実に変更したい場合は再度アイコンをアップロードしましょう。間隔をおいて何度かアップロードすると更新されると思います。

  • 更新されたかどうかを確認するには他のサーバーであなたをフォローしているアカウントのフォローページを見てあなたのアイコンが更新されているかを確認するとよいでしょう。ヘッダー画像や名前も同様です。

  • 「アイコンを差し替えた場合に古い画像はサーバーに残ったままだったと思うので、時報とか株価連動とかでアイコンを毎日何十回も頻繁に変更するのはできれば避けてほしい」という話もありました。あまり極端なことはしない方が良いでしょう。

アカウント作成


  • 私のいるサーバーは稼働開始の2019年に比べ頻繁に重くなったりサーバーが落ちる率が格段に上昇していますが管理者側の人的リソースや資金面の問題から改善は難しそうです。

  • というのもMastodonのサーバーは個人や少人数で運営していることが多く、コストが増えるのでぶっちゃけアカウントが増えることを望んでいません。増えたなーと思ったりスパムが湧き始めると管理者が規制をかけてアカウントを新規作成できなくすることがあります。

  • 気になるサーバーがあれば今のうちにアカウントを作っておくとよいかもしれません。寄附を募っているサーバーも多いので円滑な運営維持のために支援についてもぜひご検討ください。

  • 制限状態でも運良く知り合いがそのサーバーにアカウントを持っていれば「アカウント作成の招待用リンク」を送ってもらうことができます。招待リンクを送ってくれた人にその後迷惑をかけないこともお忘れなく。

  • Gmailのエイリアス機能はご存知ですか?aaaaa@gmail.comというアドレスの場合何もしなくてもaaaaa+bbb@gmail.comのように「+○○○」をつけた形でも使える機能です(なおaaaaa@gmail.comはaa.a..a.a@gmail.comのように途中にドットを何個つけても同じアドレスです)。

  • 同一サーバー上に複数のアカウントを作りたい場合は別のメールアドレスを用意する必要がありますが、Gmailのエイリアス機能を使えば1個ですみます。ただし登録済みGmailのエイリアスアドレスでは登録できない仕様のサーバーもあります。Outlook.com(というMicrosoftの)メールのエイリアス機能なら完全に別のアドレスを用意できるのでそちらが良いでしょう。

タグ


  • MastodonでもTwitter同様にタグが使えます。

  • 未収載Tootでもタグは使えますが投稿してもタグは無効になります(タグをクリックしても何も出てきません)。未収載Tootにタグを含めようとすると以下のように表示されます(投稿自体はできる)。

このトゥートは公開設定ではないのでハッシュタグの一覧に表示されません。
公開トゥートだけがハッシュタグで検索できます。

Mastodon.py


  • PythonプログラムでTootを取得したりTootするのを簡単に実装できるライブラリMastodon.pyはとても便利なのですが、すでにメンテナンスされていないのかバグがいくつか残ったままです。

  • Fedibird管理者ののえるさんがbookmarks()を修正したコードが以下にありますのでありがたくお借りしましょう。

  • 他にもdomain_blocks()とかにも不具合があるのでbookmarks()を参考にして気合いで修正しましょう。

FTL(連合タイムライン)


  • 自分の属するサーバーのLTLやHTLにあまり活気がない場合、もうちょっといろんなTootを次々に見たいと思うこともあるかもしれません。連合タイムライン(FTL)を見れば様々なサーバーのTootを見ることができます。

  • しかし超高速で流れることが多い+不快画像も多いFTLをそのまま見続けるのは苦痛でしょう。そんな時はドメインブロックで片っ端から不快なサーバーをブロックしてみてはどうでしょう。数ヶ月前に試したところ1500くらいのサーバー(主に海外)をブロックすればそこそこ見られるFTLになりました。

  • 自分がフォローしている人が含まれるドメインをうっかりブロックしないようにしてください。もしブロックした場合、当然ながらフォローは切れますしブロック解除しても元には戻りません。

  • 以上のように、千を超えるサーバーをミスなくブロックするのを手作業で行うのは困難です。上記のMastodon.pyを使ってプログラミングしてみてはどうでしょうか。「プログラミングを始めたいけど目的(やりたいこと)が無いんだよなー」という場合の動機付けにいかがでしょう。

  • 注意点ですが、こういった場合は新たにアカウントを作ってそちらで試すようにしてください。もしプログラムをミスってサーバーに過負荷(間隔を空けずに大量アクセス等)をかけてしまえばBANされる危険性があるからです。新アカウントを使ってブロックしたいドメイン一覧のCSVを作成し、メインアカウント側でインポートするのが良いでしょう。

  • さらに注意点として、一部のドメイン(アラビア文字系?)はドメインブロックしていてもひょこっとFTLに現れることがあります。その後すぐ消えますしシステム上はブロック済み扱いなので再ブロックはできません。しかし自作プログラムでFTLを取得するとこのブロック済みドメインのTootも拾ってしまうことがあります。「ブロック済みだから当然取得Tootには含まれない」という前提で処理せず個別に判定しましょう。

あなたの知らない世界


  • メインアカウントとは別に、LTLに一切浮上させないアカウントをもう一個作ってただLTLをこっそり眺めているといつか面白い光景が見られるかもしれません。そう、あなたのサーバーにもきっと...

#mastodon #マストドン