2017/12/20
このページは Mastodon 2 Advent Calendar 2017 の12月20日のための記事です。また、12月8日に開催されたガジェオフ2(マストドンオフ会2)での発表内容を再構成したものです。
ボカロ丼 https://vocalodon.net は、ボーカロイドやUTAU、CeVIOなどの音声合成技術やそれを使った音楽、キャラクターなどに興味がある人が集まるインスタンスです。2017年4月16日のオープンから8ヶ月が過ぎました。いろんな人が集まっていますが、今のところ「ボカロP」と呼ばれる楽曲制作者やイラストを描いている「絵師」さんと呼ばれる方々が中心となっています。つまりクリエイターのコミュニティという性格が強いインスタンスです。
オープンからこれまでにマストドンの利用方法についてはボカロ丼でも様々議論されてきましたが、今のところ「マストドン本体を極力カスタマイズせず、必要な機能は外部に実装する」という基本方針を置いています。
その理由は、管理コストを下げるためです。ボカロ丼は僕(TOMOKI++)がサーバ管理とSNS運営を同時に行っており、またスポンサーや寄付なども募っていないため、最低限のコストで運用するのが課題となっています。マストドンのアップデートの度にマージに時間を費やすのは得策ではないため、ボカロ丼のソースコードはほぼバニラに近い状態となっています。( GitHub はこちら)
つまり、ボカロ丼は「マストドンという新しいSNSの楽しみ方を模索している」というよりは、「自分たちの楽しみにマストドンというツールを利用する」という側面が強いインスタンスです。言い換えるなら「マストドン本体のカスタマイズというクリエイティビティ」よりも「インスタンス内で出会った人たちと作品を作り上げるというクリエイティビティ」に注力している、と言えると思います。
しかし、実際問題、現状マストドンには改良の余地がたくさんあります。それらについては、マストドン本体の改造ではなく、外部のアプリやスクリプトなどによって拡張するという方針を取っています。たとえばボカロ丼で開発している代表的なものに、DAW(音楽制作用ソフトウェア)上でVSTプラグインとして動作するマストドンクライアント VocalodonVSTがあります。このクライアントには 「SuperLTL」という、ローカルタイムラインとホームタイムラインの両方をミックスしたタイムラインが実装されています。
今日紹介するのは、ボカロ丼の中で出てきたアイデアをインスタンス内のエンジニアで作り上げた「どんつい」という仕組みです。
どんついは、cronで実行されるPythonスクリプトです。主な機能は、「マストドン内のトゥートのうち、特定のハッシュタグのついたものをTwitterに転送する」というものです。マストドンのトゥートをTwitterに転送する、あるいはマストドンとTwitterに同時投稿する、というサービスはすでにいくつもあり、作られた方も多いでしょう。しかし、どんついは、それらと違い、
というものです。
このスクリプトの主な役割は、マストドンのインスタンスの中の様子をインスタンスに入っていない人でも見えるようにする、というものです。具体的には、ボカロ丼内で #どんつい というハッシュタグをつけて公開トゥートすると、Twitterのボカロどんつい(@vocalo_dontwi)アカウントでも同じ内容が投稿されます。その投稿にはボカロ丼内の誰がトゥートしたかなどの情報も入ります。また #don_tw というハッシュタグがつきます(Twitterでは #どんつい というタグはすでに他の用途で使ってる方がいたため)。
どんついは現在β版で、ボカロ丼内でも今後どのような使い方をしていくのか試行錯誤しているところです。いまのところ、インスタンスの紹介/宣伝の他、自分が発表した楽曲の宣伝、niconicoなどで見つけた新曲の紹介などを #どんつい タグ付きで投稿するような使い方が主になっています。
この どんつい はGitHubでソースコードを公開しており、ボカロ丼以外のインスタンスでも利用できるようになっています( GitHub : https://github.com/vocalodon/dontwi )ので、インスタンス管理者の方はよろしければお試しください。原理上はインスタンス管理者でなくても導入可能です。また、デフォルトでは前述のようにTwitter上に転送されたツイートには共通の #don_tw というハッシュタグが付きます。つまりもしいろんなインスタンスが #どんつい を利用した場合、Twitter上の #don_tw ハッシュタグをたどると、いろんなインスタンスのトゥートがたくさん転送されている、ということになり、Twitterのタイムライン上にマストドンの連合TLが形成される、ということになります。これって面白くないですか!?
なお、マストドンとTwitterでは最大文字数が違うため、長いトゥートは切れてしまいます。現状はこれが課題です。#どんつい タグがあるトゥートの場合、最大文字数のカウンタがTwitter計算になるようにマストドン側のソースを変更するなどの案が出ています。やはりいろんな拡張を考えていくと完全にバニラというわけにはいかなそうです。
上記 #どんつい の応用編で、マストドンインスタンス同士での転送を実現する #どんどん というスクリプトについても構想が進んでいます。こちらは #どんどん+インスタンスの略称 のようなハッシュタグが使われた場合、指定されたインスタンスの出張アカウントに転送される、というものです。連合TLやリモートでのメンションとの違いは、相手インスタンスのLTLに流れる、という点です。これはインスタンス同士の相互理解と協力関係がないと実現しませんが、お互いの告知情報をLTLに流せたとしたら、便利だと思いませんか?
このアイデアが出たのは、ボカロ丼内でMikuMikuDance(MMD)という技術を使った動画を作りたいという方がいて、それを「MMDのインスタンス (MikuMikuDance.Cloud) に相談してみよう」ということになったのが発端です。MikuMikuDance.Cloud で「だれか手伝ってくれる方はいませんか?」という告知をするには、MikuMikuDance.CloudにアカウントをつくってLTLで呼びかけるしかありません。しかしそのやり方ではせっかく連合の仕組みがあるマストドンの利用法としてはイマイチだと思いました。そこで、 #どんつい の仕組みを応用して #どんどん を作ったら良いのでは?という構想が生まれたのです。マストドンでは一度つながったユーザー同士であればリモートインスタンス間でもほぼ問題なくコミュニケーションできます。なので最初の全体告知のようなものだけでも他のインスタンスのLTLに流せれば、かなりコミュニケーションの幅が広がると思うのです。
最後に、ボカロ丼内でアイデアとしてでてきたものとして $タグ というものがあります。これは通常の #ハッシュタグ と違い、$タグを使うと同一$タグのトゥートはLTLから消え別の専用TLに表示される、専用TLに書き込んだら自動的に$タグが付く、しばらくそのタグが使われないとそれらのトゥートはLTLに再統合される、というものです。あくまでも見せ方の違いで、内部的な保存状態は変わりません。
ボカロ丼のようなLTLでのチャット形式でのコミュニケーションが主流のインスタンスの場合、一つのタイムラインに複数の話題が混在することが珍しくありません。たとえばディスカッションやブレストのようなことが行われている場合には、その話題だけを抜き出して一時的に別のタイムラインにできたら、便利だと思いませんか? #ハッシュタグだと毎回付けないといけないし、タグがついていても結局は他のトゥートと混在してしまいLTLが混雑してしまいます。
この$タグは仮に一つのインスタンスだけが実装したとしても、連合TLからは単なる変なタグがついて見えるだけなので互換性上は問題ありません(多分)。なので実装はそれほど難しくないとは思いますが、ボカロ丼の「極力マストドン本体はいじらない」の方針が崩れるため今のところアイデアだけの状態です。
ボカロ丼とは関係ないのですが、僕は現在「マストドンの被災地支援への利用の可能性についての研究会」を開催したいと考えています。基礎研究にとどまらず、できれば被災地支援に特化したマストドンのカスタマイズ版を公開し、災害時に簡単に立ち上げられるようなマニュアルや、インフラの事前準備、自治体や国、ボランティア団体と連携した導入支援事業の設立など幅広く活動できればと思っています。
もしこれにご興味がある方、すでに何か同様のプロジェクトを立ち上げたり準備されている方やそういう方をご存知の方、スポンサーになってくださる方、これに関係しそうな助成金や補助金などについて詳しい方、その他関連情報に詳しい方、何かわからないけど関わってみたいという方などがいらっしゃいましたら、マストドン:@tomoki@vocalodon.net または Twitter:@tmkw1 までご連絡ください。
それから、マストドンはフローなのでストックが苦手です。上記のような活動をやる上で役に立つ、マストドンアカウントでログインできる掲示板サービス(自分でインストールして立てられるOSSのやつが理想ですがそうでなくても)をご存知の方がいらっしゃいましたら、ぜひ教えてください!