皆さんはiM@S KAKU-tail Partyをご存知でしょうか。

ニコニコ動画へアイマスに関する動画を作ってアップロードしている、いわゆるニコマスと総称されるコミュニティで2007年11月から2013年2月にかけて、7回にわたって行われた合作企画です。

現在は765AS(オールスターズ)と呼ばれている765プロのアイドルたち春香以下13人12組(当時はまだ亜美真美で1組だった)と、公募したお題、参加者をランダムに抽選し、割り当てられたアイドルとお題で2分以下の動画を作るというものでした。

2013年以降長らく開催されていなかったKAKU-tailでしたが、ひょんなことから対象のアイドルをミリオンスターズ39人も含めて765プロ総勢52人に拡大したKAKU-tail THE@TER for 765MILLIONSTARS!!が先日開催されました。

この記事はKAKU-tail THE@TERの運営スタッフとして「インフラ」を担当し、KAKU-tailのためだけにアップローダをRuby on Railsで書いて作ったのでgithubで公開する、という記事です。

KAKU-tail THE@TERのPrologueにて下記の通り「インフラ」としてクレジットされていたわけですが、要するに参加者の方々が動画を提出するアップローダの構築・運用を行いました。
それと本編の制作補助、直前ニコ生2日目の放送担当(ピンチヒッター)も。

DyehdB0V4AA21jN

より正確に表現すると、アップローダを構築しようとして、KAKU-tailの企画に使えるオープンソースのアップローダーが見当たらず、勢い余って1から作成してしまったという経緯です。
せっかくなのでオープンソースとして公開します。

機能そのものはREADMEに書いてある通り正直大したものではありません。
というよりrailsで1からWebサービスを作るのは実は初めてだった(マストドンの改造をする過程でrailsの構造を学んだ)ので、commitログの最初のほうを見ると打ったコマンドがそのままメモ代わりに書いてあったりして非常に恥ずかしいです。
が、commitを一つにまとめても初めて作った感がバレバレで実力の偽りにすらならないので恥ずかしいのを我慢してそのまま公開します。

先にマストドンの色々整備された開発を先に体験していたので、マストドンを電化された鉄道に例えると、今回1から作ったこれは馬車鉄道の軌道を敷設するところからかなというくらい難しかったです。
まあ、作っていく過程が全て追えるので初学者のひとつの学習記録として参考にはなるんじゃないでしょうか。

そのあたりの学習から始めて、Uppyshrine、ならびにtusを使ったs3へのダイレクトアップロード、ansistranoによるデプロイなど使ったことない要素技術を仕事のときよりも多めに詰め込んだ結果、稼働する状態まで行くのになんだかんだ1週間~2週間分くらいの工数がかかったような気がします。
(commitログを辿ればわかるだろうけど面倒くさくて数えてない)

話はちょっと変わりますが、いま現在のkaku_tail_uploaderの機能であればKAKU-tailに特化した部分はそこまで多くなく、ほかの合作にも使うことができると思います。
権限管理機能の意味がほとんど消失しますがcreatorをすっ飛ばして動画制作者をstaffロールにすれば全員のファイルが見れますし。

本当はkaku_tail_uploaderだけではなく、これとセットとなるansibleのplaybookとterraformまで合わせて公開しようと思っていたのですが、そちらはIPアドレスやDNS名のべた書きなどいくつか整理するべき部分があるのでまたの機会にします。

最後になりましたが、KAKU-tail THE@TER公開打ち上げ的なサムシングとして、ここが苦労したとかそういうちょっとした裏話を運営スタッフ陣が言える範囲で喋るニコ生を今晩22時からやりますので、興味がありましたらご覧ください。