2018/01/19 00:00

Collectionsのリリースにあたって

「とにかく音楽を聴いてほしいと思っている。嫌いなのじゃなければ何だっていいんだ。」

この考えは僕の心のなかにずっと以前、90年代中旬から芽生えていたけど曖昧なままだった。2005年にタワーレコード社の経営に関わるようになったあたりからはっきりとした言葉になったと思う。音楽はとかく不思議なモノで、触れれば触れるほど聴きたくなるし知りたくなる。詳細が掴めてくるし、理解できる気になってきて手近に置きたくなる。ついでに言えば買いたくなるのもその流れでは自然なことだ。記録された音楽を聴く時はアーティストとのコミュニケーションをしているのに近い状態なのではないか。しかも音楽は気に入れば繰り返し聴くから、あまり繰り返すことのないTV番組や映画、繰り返しの期間が長い漫画や本など、他の媒体とくらべてその効果が強化されがちになる。1曲ならせいぜい5分、いちアルバムなら1時間ほどの個々人の体験は反復しやすく、繰り返されることで心の中の確固たる何かになっていく。話は飛ぶが、タワレコ当時僕がNapster Japanを始動させた時にその ”何か” は太古の昔から我々の頭にインストールされた音楽OSなのだと定義し、サービスを通してそのOSを起動することを非公式に社是とした。これは今のOTOTOYでの活動に確かにつながっている。

そんなわけで、Collectionsと名付けた機能を2018年1月にOTOTOYに追加した。細々とした説明をすると長くなるのでそれはマニュアルに任せるが、端的に表現するならOTOTOYを「読んで買う」場から「読んで買って聴く」場にしたということになる。すっかりストリーミングサービスが主流になり音楽の未来はそこにあるという風潮の現在、しかも上述のNapsterはストリーミングサービスの先駆けだった事に比べると、買ったものを聴けるという機能は当たり前で物足りないと思われるかもしれない。しかし今までその当たり前が出来てなかったことに着目しまず一歩進めたというふうに見てもらえると ”中の人” の気持ちに近く、OTOTOYのことがわかり易くなるかもしれない。

一方でアーティスト視点でストリーミングサービスを見てみると、ざっくり言えばサービスから得られる収入はまだまだ少ないという現状がある。精根尽き果てるような思いで新曲をリリースしても何千万曲もあるユーザー個人の思い出と既に結びついている ”名曲” の数々と常に戦わなければならない。数回流して聴かれて忘れられたら収入はおそらく数十円、負けなのだ。ひたすらユーザー数を拡大していかなければならないのがストリーミングサービスの宿命で、ユーザー数拡大のために価格競争が起こりやすい。またあまり知られていないが各プラットフォームはトップオフで手数料を取る。その是非はともかく、経済モデル上ストリーミングサービスプラットフォームは大規模になってしまえばリスクがほとんど無いのだ。割を食うのはアーティストである。このように初期収入も確保できず値下げ圧力が常時かかる仕組みではアーティストが生きていけない。ただし、音楽を聴くための仕組みとしてストリーミングは良い形態なのは間違いないと考えている。海外ではアーティストとの間で様々な訴訟が起こっているが、そのどれもが ”フェア” な着地点を見つけるための争いで過渡的な状況だ。2018年1月現在、誰もが納得するような方法やルールは存在しない。OTOTOYは2004年の創業以来、常にアーティストとユーザーの間で両者のメリット(と自社のメリット)を追求する使命を負ってきた。タイミングや規模の課題はあるものの、着実に実行できることを順番にやって行こうと思う。

Collections機能開発の元々のきっかけは、2014年4月以来OTOTOYの最大の欠点とよく言われる購買後の待ち時間の短縮だった。マスター音源を指定形式にエンコードしメタデータを付加するとそれはお客様に届ける音源ファイルそのものとなるが、ブラウザで一度に届けるにはその後zipファイルに纏めなければならない。このzip化に時間がかかり不定時間お待たせすることになっていた。この時間をどうにかして短くすることはできないかと悩んだ末にたどり着いたのがzipファイルを偽装する方式だった。しかしこのアイディアは完成したところでイチ部品である。 ”お待たせしない” という具体的なメリットを伴って、ユーザーに届けるにはWeb上にインターフェイスを作る必要がある。ototoy.jp上でカートの中身を買ったあとトラックを全確認し即時ダウンロードできるページを作らなければならない。ある程度形になった時にふと気づくと、自分がユーザーの立場だったらどう考えてもそのページ上で買った曲をすぐ聴きたいし、技術的にも簡単で権利的にも聴けるはず…とすれば、聴けない理由はない。という順番で機能が発展した。

ここから若干の技術的余談になるので技術に興味のない方はこのパラグラフを読み飛ばしてもらって構わない。zip偽装というのは、サーバからの出力をブラウザがzipファイルだと見なすようにすることだ。プログラムで音源ファイルを一列に並べつつ適切なヘッダーもつける。zipファイルはサーバ上に存在することはない。実装はなかなか大変だったが、ダウンロードそのものがzip生成過程となることで時間とストレージ容量を大きく節約することに成功した。さらにzipファイル内では再度圧縮しないことにしたのでCPU負担も大きく減らすことができた。また、UIをつけるにあたってはかなり大きな機能をまるごと書き下ろすことになり、どのようなアーキテクチャでコードを書くか悩んだ。2018年初頭のWebはこの2〜3年続いてきた、ブラウザやスマホをフロントサイドとしてAPIと分離し、APIとフロント間はjsonでやりとりするという方式が定着しつつあるが、ReactやVue.jsなどのフレームワークの開発と競争が続いている状況である。Collectionsはこのパラダイムには乗っかっていない。迂闊に新しいフレームワークを採用し、そのフレームワークが消えてしまったら学習コストやサポートコストの無駄が凄いことになる。いずれ勝者がはっきりすれば書き直すつもり。またHTML5に於ける<audio>タグサポートもまだ発展途上で、現在はストリーミングコーデックとしてaacを採用しているがより良いコーデックが広くサポートされれば切り替えていくつもりだ。

スマホ全盛の時代と逆行するようだが、現状Collectionsはスマホでの使用に耐えない。動作はするものの1トラック再生が終わるとスマホがスリープ状態になるはずだ。またいわゆるオフライン再生には対応していない。いずれも今のスマホブラウザ仕様の限界である。しかしPCに向かう時間はそれなりにあるはずだし、固定配線しやすくむしろ初動でスマホより気軽だという人も相当な割合で居るだろうと考えている。実際自分がそうだ。それに移動時間やアウトドアではOTOTOYアプリを使えるし、ダウンロードしたファイルを好きな他社のアプリで楽しむのも全然アリだし。

Collectionsが機能が一通り書けた後にはどうして今までコレがなかったのかと疑問が生じるくらい既存のOTOTOYに馴染んで、もはや不可欠なものと感じている。リリースできて本当に良かったし今まで聴けなくてすみませんでしたという気持ちで一杯である。皆さまの内なる音楽OSの起動用に日常的に使っていただければこれ以上嬉しいことはない。また、普段Collectionsを使っていると開発者視点でもユーザー視点でも自然とこの発展系もしくは発展形が見えてきている。公開後にOTOTOYユーザーの皆さんとこの点についてディスカッションできるとこれまた幸いである。

2018年1月 竹中 直純(nt)

Changelog of Collections

初期バージョンからお客さまに関連があると思われる機能追加やバグ除去など、変更箇所をリストにしています。最新の変更はステージング環境から本番化されていない場合がありますがご了承ください(そのうち本番化されます)。

  • 202001 キャッシュ生成待ち後の自動再生修正
  • 201912 トラックデータ先読み機能
  • 201912 DSDIFFへのID3v2.3タグデータの埋込
  • 201912 DSF, DSDIFFのダウンロード速度の向上
  • 20190326 アーティストリンクをCollections内検索リンクへ変更
  • 20181219 トラックごとのダウンロード機能、複数枚組アルバムの場合ディスクごとのダウンロード機能
  • 20181219 再生停止が頻繁に起こる場合があったのを改善
  • 20181219 現在表示中のタブを強調するように
  • 20181210 Backwardボタンの動作を普通(トラック冒頭2秒以内なら前トラック、2秒以後なら現トラック頭にジャンプ)に
  • 20180711 3枚組以上のアルバムを正常に表示できないことがあった不具合を修正
  • 20180618 音量スライダーの追加
  • 20180227 DSDやPDFなどの同梱ファイルフォルダが解凍時に階層を間違う場合があるのを修正
  • 20180220 ダウンロード時のプログレスバーをより正確に
  • 20180214 アルバムが予約期間後に販売された場合、ダウンロードができなくなる不具合修正
  • 20180206 アルバムに5段階の星を付けられるように
  • 20180206 フリー曲表示をOFFにしている時に月表示が重なる不具合修正
  • 20180203 ダウンロード開始前に確認パネルを出す
  • 20180202 ページ下部の再生中トラックタイトルとアーティストをクリックするとそのアルバムが表示できるところまでスクロールする
  • 20180201 ジャケット画像をクリックしたときの挙動修正
  • 20180201 アルバム内で販売可能トラックの番号が飛び飛びの場合、正常に表示できない不具合を修正
  • 20180129 キーボードショートカットを使うかどうかをユーザーごとに切り替えられるように(ページ下部のキーボードアイコン)
  • 20180128 ページ右上の各種アイコンのtooltipを日本語化
  • 20180128 再生日時でのソートの不具合を修正
  • 20180127 Firefox48でのダウンロード不具合の修正
  • 20180125 複数枚アルバムの表示不具合修正
  • 20180125 予約販売アルバムの取扱
  • 20180125 不可視アルバムが一瞬表示される不具合修正
  • 20180124 キーボードショートカットの実装 (スペースバーでplay/pause、左右矢印キーでbackward & forward)
  • 20180122 Libraryへ表示されるFreeアルバムのバッヂの国際化
この記事の筆者
竹中 直純 (nt)

写真はヨーロッパ軒の(有名な)カツ丼ではなくミックス丼です。OTOTOYとBCCKSをやっています。最近良い半ズボンがなくて困っています。twitterでは@uhyoppoというスクリーンネームで主にしょうもないことを書いています。

みなさまに感謝を込めてOTOTOY10周年キャンペーン実施中!

みなさまに感謝を込めてOTOTOY10周年キャンペーン実施中!

Collectionsのリリースにあたって

Collectionsのリリースにあたって

TOP