スクリプトアクションの実行

スクリプト言語は、タスクの実行を(コンパイルするのではなく)解釈し自動化することのできる、特殊なランタイム環境向けに書かれたスクリプトやプログラムをサポートするプログラミング言語です。スクリプトで自動化が可能な環境としては、ソフトウェアアプリケーション、Webブラウザ内のWebページ、オペレーティングシステム(OS)のシェル、埋め込みシステムなどが挙げられます。

Ooyala Flex最大の強みのひとつが、スクリプトのサポートです。スクリプトを利用すると、開発者は簡易で広く使われているJavascriptに似たシンタクスを使用してOoyala Flexの動作をよりダイナミックに、拡張可能にすることができます。

• ほんの数分で新規のアクションや時間指定アクション、イベントハンドラーを作成。

• 構成値の評価をランタイムまで延期。

• コンパイル済みのコードをデプロイすることなく、Ooyala FlexのAPIおよび作成済みの高性能な新機能にアクセス。

• リアルタイムデータに適応する非常に動的なワークフローを作成。

• 動的なトランスコードおよび検証プロファイルを作成。

Ooyala Flexは、3つのシナリオをサポートするため、3種類のスクリプト言語をサポートしています。はじめの2つは特定の使用例のサポートに特化したものです。3つめ(Groovy)は、非常に優秀な汎用言語です。

  • 式言語(EL):式言語は、スーパーユーザーがより高度な構成をする際に使用します。構成フィールドで使用することができ、Ooyala Flexオブジェクトのアクセスおよび一般的な言語の演算子をサポートします。
  • Velocityテンプレート言語(VTL):Velocityテンプレート言語は、ある形式から別の形式へドキュメントを変換する際に使用するテンプレート言語です。このスクリプトは下位レベルのトランスコードプロファイル作成に使用します。
  • 高度なスクリプト(Groovyスクリプト):高度なスクリプトは、特殊なスクリプトプラグイン(アクション、イベントハンドラー、時間指定アクション)でサポートされます。スクリプトプラグインを使用すると、Ooyala Flexの機能に高度なスクリプトベースの拡張を実装することができます。Ooyala Flexはこの目的でGroovyスクリプトを使用します。これはJavaベースの言語であり、高度なオブジェクト指向のプログラミングパラダイムと、Java SDKへのフルアクセスを実現します。また、Ooyala FlexのAPIへの完全アクセスも提供します。

スクリプト処理

スクリプトガイドでは、同じコードで異なるスクリプト言語を使用できるよう、スクリプトをレイヤーにすることができることが説明されています。たとえば、Groovyスクリプトの中に式言語を埋め込むことができるのです。この場合、まず式言語が処理され、その出力コードがGroovyスクリプトエンジンに渡され、処理されます。スクリプトが処理される順序は、次のようになります。

1) プロパティ式

2) メタデータ式

3) 式言語

4) Groovyスクリプト

この例を以下に示します。ここではGroovyスクリプトに式言語が埋め込まれています。

def execute(){

//Reference asset Object in the context asset name

to the description.

asset.setName("${asset.description}")

}

スクリプトアクションの理解

静的テキストの式の値を計算し、出力に挿入します。

値の設定方法は3つあります。

1) 単一式構造の場合: $ {expr}.式を評価し、結果を期待される出力タイプにします。

2) テキストで分割されるか、テキストで挟まれた1つ以上の式: some$ {expr}${expr}text$ {expr}.式は左から右に評価されます。各式を文字列にし、間にテキストがあればそれで連結します。こうしてできた文字列を、期待される出力タイプにします。

3) テキストのみ: sometext

この場合、文字列の値は期待される出力タイプに強制します。

構成値の設定に使用される式は、期待されるタイプのコンテキストで評価されます。式評価の結果が期待されるタイプと一致しない場合、型変換が実行されます。

高度なスクリプト作成の理解

標準の式言語のほかに、Ooyala Flexではより高度な評価作成のための高度な機能も提供しています。

• メタデータ式

• XPath式

• システムプロパティ

メタデータ式

Ooyala Flexは、アセット階層内のメタデータフィールド値を探すうえで役立つ演算子をサポートします。

Table 1.
説明
@@fieldname@@ 式は@@で始まり、@@で終わります。この式を使用すると、メタデータ変数値にアクセスできます。例: @@film_id@@ - film_id変数の値を、現在のアセットに関連付けられているメタデータから戻します。
%%assetContext%% メタデータ式は、アセット階層式の埋め込みもサポートします。式は%%で始まり、%%で終わります。親メタデータまたは子メタデータから値を取得したい場合、アセット階層式を指定することもできます。例: @@%%./..%%artist[0]:first_name[0]@@ - メタデータ式「artist[0]:first_name[0]」を親のメタデータと照らし合わせて評価します。

XPath式

Ooyala Flexは、スクリプトのコンテキスト内に存在する生XMLドキュメント(以下「ドキュメント」)からXMLフィールド値を探すうえで役立つ演算子をサポートします。

Table 2.
説明
@!{xpath} この式を使用すると、xpathをxmlと照らし合わせて評価できます。例:@!{/work-order/transcode-profile/name} - xpath「/work-order/transcode-profile/name」をxmlドキュメントと照らし合わせて評価します。Xpath式は、「ドキュメント」キーのあるコンテキストにおいて変数として利用可能なドキュメントオブジェクトと照らし合わせて評価されます。コンテキストにおいてxmlドキュメントが利用可能な場合、決定されたxpath式がこのxmlと照らし合わせて解決されるよう、自動的に変数として追加されます。

システムプロパティ

Table 3.
説明
@[propertyName] システムプロパティは、Ooyala Flexシステムで使用できる変数です。スーパーユーザーは、スクリプトを通じてアクセス可能な独自のシステムプロパティを作成することができます。システムプロパティは範囲指定をサポートします。

この記事はお役にたちましたか?