オープンソース・ソフト Drupal を使った Web サイトの構築・サポート・研修

Drupal 8 におけるメディア マネージメントの計画

現在、Drupal 8.2 をインストールした状態では、メディアを扱う機能はごく基本的なものだけだ。たとえば、画像をアップロードして、WYSIWYG エディターでその画像を記事に挿入することはできる。でも、記事同士の間で画像を再利用することはできないし、標準で搭載されているメディア マネージャーもない。YouTube の動画やツイートなどの「リモート メディア」にも対応していない。こうしたメディア機能は拡張(貢献)モジュールを使えばすべて追加できるのにだ。これは理想的とはいえない。

このことは、2,900 人が参加してくれた僕の「Drupal の現状 2016 アンケート」でも実証された。すなわち、コンテンツ作成者(ペルソナ)がリクエストするトップ 2 の機能は、よりリッチな画像・メディアの統合と、デジタル アセット マネージメントなのだ(僕の DrupalCon New Orleans プレゼンのスライド 44 を参照)。

これがきっかけとなって、僕は DrupalCon New Orleans で Drupal 8 用に「メディア イニシアチブ(作業部会の創設)」を提案した。そのときから専任のグループが Drupal 8 メディア イニシアチブの計画策定にあたった。そして今、そのイニシアチブの調整ができたという知らせをシェアできることをうれしく思う。僕たちはメディアを扱うための拡張可能な基本機能をコアに装備したい。それはメディア資産の再利用、メディア ブラウジング、リモート メディアをサポートするものであり、さまざまな追加機能および各種統合を行うために拡張モジュールによってスッキリと拡充できるものだ。あれもこれもと言っているように聞こえるかもしれないので、このブログ記事では、僕たちが解決しようとしている問題と、僕たちが Drupal 8 においてそれにどう取り組みたいのかを論じようと思う。

問題提起

Drupal コアには基本的なメディア機能が備わっているが、拡張モジュールは、ほとんどの Web サイトのメディア管理条件に合うように使用されなくてはならない。この拡張モジュール群はパワフルなものだ ―― Drupal がメディアおよびエンターテインメント市場に広く普及しているのを見ればわかる ―― しかし、それらにとって障壁がないというわけではない。

まず、エンドユーザーにとっては、どのモジュールを組み合わせて使えばいいのかを突き止めるのが難しい。そして、正しいモジュールを選べたとしても、そこからモジュールをいろいろとインストールしてそれぞれを設定するとなると、やる気がすっかり失せてしまうかもしれない。幸い、さまざまな拡張モジュールを選んで設定した Drupal ディストリビューションがいくつもあり、メディアの扱いに関してデフォルト状態でよりよい UX(ユーザー体験)を提供してくれている。(たとえば)Acquia はメディア ベスト プラクティスまで含めた構成要素を一般用途向けにまとめたものとして「Lightning ディストリビューション」の(開発)保守をしている(ここでは「メディア ベスト プラクティス」とは、各メディアに最適なモジュール・設定・組み合わせを指していると解釈できる。本来の意味はウィキペディアを参照)。(ドイツのメディア大手)Hubert Burda Media は「Thunder ディストリビューション」を作り、出版社に強力なメディア管理機能を提供している。また、MD Systems の作ったニュース配信社向け「NP8 ディストリビューション」には、パワフルなメディア機能も付属している。僕は Drupal ディストリビューションの熱心な信奉者だが、大多数の Drupal サイトは、これらのディストリビューションのどれかで構築されているわけではない。これらのメディア ベスト プラクティスのいくつかをコアに組み入れれば、すべてのエンドユーザーがそれを利用できるようになるだろう。

それから、モジュール開発者にとっても、現在の状況は理想的ではない。メディア データの保存方法、利用可能なメディア アセット ライブラリーの表示方法には、互いに競合するソリューションおよびアーキテクチャーが存在している。標準化されていないということは、メディア関連のモジュールを作成・保守する開発者は、それら競合するアプローチのうちのどれを採り入れるのかを決めなくてはならない。あるいは、それらすべてを採り入れるための時間と労力を費やさなくてはならない。

現在の計画

ある意味、現在の Drupal のメディア管理は Drupal 7 における多言語機能の状態にたとえることができる。すなわち、Drupal 7 をすっかり多言語対応させるには 22 個、あるいはそれ以上の拡張モジュールが必要だった。また、そのなかには、ぶつかり合うソリューションがあった。Drupal 7 の多言語化はエンドユーザーにとっても開発者にとっても難題だった。Drupal 8 では、拡張モジュールの方はまだまだ、もっと込み入った話になるものの、その難題は、コアにサービスのベース レイヤーを加えることで解決された。まさにこれが、将来のバージョンの Drupal 8 におけるメディアについて僕たちがやりたいと思っていることだ。

Drupal 8 メディア イニシアチブの計画は、メディアを扱うための拡張可能な基本機能をコアに装備するというものだ。それはメディア資産の再利用、メディア ブラウジング、リモート メディアをサポートし、さまざまな追加機能および各種の統合を行えるよう、拡張モジュールによってスッキリと拡充できるものを目指す。

このため、僕たちは、さまざまなメディア タイプ用のプラグインに対応するメディア エンティティー タイプを導入しているところだ。現在はコアが画像と YouTube 動画に対応することを目指している。それと並行するかたちで、拡張モジュール群は、オーディオ、Facebook、twitter など、それ以上のものを提供し続けることになるだろう。メディアの再利用を容易にするため、WYSWYG の画像埋め込み機能はメディア エンティティーを使って作り直される予定だ。また、メディア ライブラリーが組み込まれ、既存のメディア(ファイル群)から選択することが可能になるだろう。

僕たちはこれを Drupal 8 コアにおけるメディアにとって必要最小限の機能と考えている。目標は、ベーシックな使用事例では、Drupal 8 がデフォルト状態でも使いやすくなるよう、シンプルなメディア ソリューションを提供することだ。そうすれば、サイトの規模にかかわらず、ユーザーのためになるだろう。

メディア ライブラリーのプロトタイプ(試作モデル)
提案されたメディア ライブラリーのプロトタイプ(制作中)

想定されているタイムラインと応援募集

僕たちは、比較的短い期間にこれを達成できるのではないかと考えている ―― 試験的モジュールとして Drupal 8.3 または 8.4 に含めるつもりだ。これを実現するため、専用のコード スプリント 2 回の資金を提供してくれる組織(企業)を募集している。現在いる貢献者(開発者)たちはすばらしい仕事をしてくれているが、実際に計画を形にするには、直接、集まって行う専用のスプリントだと大きな進捗が得られるのだ。このプロジェクトに資金を提供する用意がある人は是非、教えてほしい。また、実装作業自体を手伝いたい場合、メディア チームは毎週水曜の UTC 午後 2 時(日本時間午前 5 時)にミーティングを開いている。あと、最新情報を得るため @drupalmedia をフォローするよう、お薦めする。

メディア イニシアチブへの取り組みに感謝すべく(関係した)個人および団体すべての一覧を作ろうとしたのだが(多すぎて)できなかった。メディア関連モジュールには、たくさんの人々、数多くの組織が何年にもわたって懸命に取り組み、ノウハウを習得してきた。そこから拝借している部分が、Drupal 8 イニシアチブには、かなりあるからだ。Drupal 8 メディア イニシアチブのさまざまな面にどんどん取り組んでいる人が大勢いることもある。現在および過去において貢献したすべての人々に特別な感謝の意を表したい。また、このブログ記事に貢献してくれたガボア ホイチ(Gabor Hojtsy)、アレックス ブロンステイン(Alex Bronstein)、ヤネス ウレヴチュ(Janez Urevc)の各氏に礼を述べたい。