ユニバーサルシンジケーションテンプレート言語

ユニバーサルシンジケーションテンプレート言語 (USTL) を使用すると、お客様のニーズに一致する形式にてアセットテンプレートを作成することができます。たとえば、XML、JSON、CSV、その他テキスト形式にてアセットとメタデータの一覧を作成することができます。

説明

USTLはLiquidに基づいています。言語の設計詳細はオンラインでご利用いただけます。

Note: フィードを作成するには、高度なシンジケーションを作成する必要があります。シンジケーションの作成後、テンプレートがボディに挿入されたリクエストをシンジケーションに対してPUTを実行することでテンプレートをアップロードします。詳しくは以下をご覧ください。 シンジケーション
Note: もしお使いのアカウントでユニバーサルシンジケーションが有効でない場合、営業、カスタマーサクセスマネージャー、もしくはテクニカルサポートまでお問い合わせください。

アセットの属性

次の表は、表示することのできるアセットの属性の一覧です。

ルート属性 説明
asset.name アセットの名前
asset.description アセットの説明
asset.metadata["キー"] アセットのメタデータ。キーを指定した場合、指定したキーのメタデータのみが返ってきます。
asset.duration アセットの期間
asset.external_id Ooyalaの外部にあるシステムで使用するアセットの識別子
asset.flight_start_time コンテンツ視聴期間の開始時間
asset.flight_end_time コンテンツ視聴期間の終了時間
asset.created_at アセットの作成日
asset.updated_at 一番最近のアセット更新日
asset.embed_code アセットのembedコードまたはコンテンツID
asset.asset_type アセットのタイプ
asset.hosted_at ビデオを埋め込むパーマネントURL
asset.uploaded_by_user ビデオをアップロードしたユーザー
asset.aspect_ratio 画像フォーマットのアスペクト比
asset.original_file_name オリジナルファイル名
asset.closed_captions_url 字幕ファイルのURL
asset.status アセットのステータス
asset.streams アセットに関連付けられたFlashストリーム。リモートアセットには適用されません。
asset.abr_stream_urls アセットに関連付けられたABRストリーム。リモートアセットには適用されません。
asset.abr_stream_urls.iphone アセットに関連付けられたiPhone互換のABRストリーム。リモートアセットには適用 されません。
asset.abr_stream_urls.ipad アセットに関連付けられたiPad互換のABRストリーム。リモートアセットには適用 されません。
asset.stream_urls アセットに関連付けられたストリームのURL。リモートアセットには適用されません。
asset.stream.audio_codec アセットに関連付けられたオーディオコーデック。リモートアセットには適用されません。
asset.stream.container アセットに関連付けられたコンテナ (MP4、3GPなど)。リモートアセットには適用されません。
asset.stream.file_size ストリームのサイズ (バイト)リモートアセットには適用されません。
asset.stream.url ストリームのURL。この属性にフィルターをかけることはできません。リモートアセットには適用されません。
asset.stream.video_bitrate ストリームのビットレート、Kbps (キロビット/秒)。リモートアセットには適用されません。
asset.stream.video_codec アセットに関連付けられたビデオコーデック。リモートアセットには適用されません。
asset.stream.video_height ストリームの高さ (ピクセル)。リモートアセットには適用されません。
asset.stream.video_width ストリームの横幅 (ピクセル)。リモートアセットには適用されません。
asset.stream_urls.flash リモートアセットのみ。FlashストリームのURL。
asset.stream_urls.iphone リモートアセットのみ。iPhoneストリームのURL。
asset.stream_urls.ipad リモートアセットのみ。iPadストリームのURL。
asset.stream_urls.itunes リモートアセットのみ。iTunesストリームのURL。
asset.stream_urls.source_file リモートアセットのみ。ソースストリームのURL。デバイスが定義されたその他ストリームを 一切再生できない場合にフォールバックとしてソースを使用します。
asset.preview_image.url プレビュー画像のURL
asset.preview_image.width プレビュー画像の横幅 (ピクセル)
asset.preview_image.height プレビュー画像の高さ (ピクセル)
label.id ラベルの識別子
label.name ラベルの名前
label.full_name ラベルのフルネーム
asset.primary_entry_point ライブストリームのみ。ストリームのURL。
asset.backup_entry_point ライブストリームのみ。
asset.is_flash ライブストリームのみ。Flashプレイヤーのストリーム。
asset.is_ios ライブストリームのみ。iOSデバイスのストリーム。
asset.encodings ライブストリームのみ。ストリームエンコーディング。

出力マークアップ

出力マークアップを使用すると、アセットの属性を表示することができます。例:

"{{asset.name}}" was a great movie.
As your closest friend, I recommend that you see it right away.
{{asset.description}}
It is only {{asset.duration}} minutes long.
   

また、出力に変換を適用することができます。例:

WATCH "{{asset.name | upcase}}" RIGHT NOW!!! 
   

次の表は出力マークアップの一覧で、入出力の例を提供します。

マークアップ 説明 入力例 出力例
capitalize 入力センテンスの単語の先頭文字を大文字にします {{'hello' | capitalize }} Hello
downcase 文字列を小文字にします {{'Hello' | downcase }} hello
upcase 文字列を大文字にします {{'hello' | upcase }} HELLO
size 文字列のサイズを返します {{'hello' | size }} 5
strip_html 文字列からHTMLを取り除きます {{'<p>hello</p>' | strip_html }} hello
strip_newlines 文字列から改行 (\n) を取り除きます {{'hello \n hello \n hello' | strip_newlines }} hello hello hello
newline_to_br 改行をHTML改行コード (<br/>) に置き換えます {{'hello \n hello \n hello' | newline_to_br }} hello <br/> hello <br/> hello
replace 文字列内の単語をすべて置き換えます。 {{'hello' | replace:'goodbye' }} goodbye
replace_first 文字列内で初回出現したものを置き換えます。 {{'goodbye goodbye' | replace_first:'hello','goodbye' }} hello goodbye
remove 文字列内の指定単語をすべて削除します。 {{'hello goodbye' | remove:'goodbye' }} hello
remove_first 文字列内で初回出現した指定単語を削除します。 {{'hello hello hello' | remove_first:'hello ' }} hello hello
truncate 文字列を切り詰めます。 {{'goodbye' | truncate:4 }} good
truncatewords 文字列を指定した文字数に切り詰めます。 {{ 'My name is Matt and I would like to talk with you about the miracle of multi-level marketing' | truncatewords:4 }} My name is Matt
prepend 指定テキストを文字列の先頭に追加します。 {{ 'goodbye' | prepend:'hello ' }} hello goodbye
append 指定テキストを文字列の最後に追加します。 {{ 'hello' | append:' goodbye' }} hello goodbye

タグマークアップ

タグマークアップを使用すると、テンプレートにロジックを適用できるようになります。タグマークアップには以下が含まれます。

  • for
  • if
  • case/when
  • unless
  • comment

次の表はタグマークアップの一覧で、入出力の例を提供します。

ロジック 説明 出力例
for コレクションを繰り返します。
{% for asset in assets %}
  {{ asset.name }}: {{ asset.duration }} minutes
{% endfor assets %}  
    

ロード・オブ・ザ・リング 3部作:560分 ロード・オブ・ザ・リング 特別編集版:718分

if/else if条件に一致した場合、情報を表示します。
{% for asset in assets %}
   {% if asset.name == "Blade Runner" and asset.duration = 117 %}
     {{ asset.name }} is a great movie!
   {% elsif asset.name == "Blade Runner" and asset.duration = 116 %}  
     You really should watch the 25th Anniversary Edition of {{ asset.name }}.
   {% else %}
     {{ asset.name }} is an okay movie.
  {% endif %}
{% endfor assets %}     
    

ブレードランナーは素晴らしい映画だ!

when 条件付きでコンテンツを表示します
{% for asset in assets %}
Name: {{ asset.name }}
{% case template %}
{% when "description" %}
Description: {{ asset.description }}
{% endcase %}
{% endfor assets %}   
     

ブレードランナー ブレードランナーであるデッカードは、宇宙船をハイジャックし、製造者を見つけ出すために地球に戻った4名のレプリカントを追跡し、抹殺しなければならない。

comment 情報をコメントとして記します。
There are some things that you know{% comment %} 
and others that you don't{% endcomment %}.

あなたには知っていることがある。

ストリームとプレビュー画像フィルター

ストリームとプレビュー画像用に返ってきた結果にフィルターを適用することができます。

フィルターには以下が使用できます。

  • =
  • >
  • <
  • >=
  • <=
  • max
  • min

次の例はフィルター条件に一致すると、プレビュー画像用のURLを返します。

asset.preview_image[height > 400].url
asset.preview_image[height <= 640].url
asset.preview_image[width >= 400].url
asset.preview_image[width = 320].url
asset.preview_image[max height].url
asset.preview_image[max width].url
asset.preview_image[min height].url
asset.preview_image[min width].url
   

次の例はプレビュー画像の横幅のもっとも大きいものを返します。

asset.preview_image[max width].width
   

参考例

この例では簡単なアセットフィードを作成します。

<feed header>List of My Assets</feed header>
{% for asset in assets %}
  <item>
    <title> {{asset.name}} </title>
    <video_info> {{asset.description}} </video_info>
  </item>
{% endfor assets %}

    

Backlot は以下のようなフィードを生成します。

<feed header>List of My Assets</feed header>
<item>
  <title>Presidential Speech #125784</title>
  <video_info>The president said something important today about something that happened.</video_info>
</item>
  <title>Presidential Speech #125785</title>
  <video_info>The president said something important today about something that should happen.</video_info>
</item>

    

スプレッドシートにインポート可能なアセットのリストを作成したいとします。 この例は、アセットのID (メタデータより)、名前、所有者 (メタデータより)、期間を指定するアセットのインベントリを作成します。

{% for asset in assets %}
Name, Duration, Content Owner
{{ asset.metadata ["my_id"] }}, {{ asset.name }}, {{ asset.metadata ["owner"] }}, { asset.duration }}
{% endfor assets %}       
    

Backlot は以下のようなフィードを生成します。

 asset_01245344, Lord of the Rings: The Fellowship of the Ring, New Line, 228
 asset_01245856, Blade Runner, Warner, 117
 asset_01232844, Pulp Fiction, Miramax, 154
    

このビデオ設定例はすべてのストリームのためのものです。

{% for stream in asset.streams %}
  width:{{stream.video_width}}
  height:{{stream.video_height}}
{% endfor %}	

    

Backlot は以下のようなフィードを生成します。

640
480
1024
768	
	
    

この例はiPhoneストリームを持つアセットを返します。

{% if asset.streams[iphone].exists %}
  <stream type="iphone">
    <url>{{ asset.streams[iphone].url }}</url>
  </stream>
{% endif %}
    

Backlot は以下のようなフィードを生成します。

  <stream type="iphone">
    <url>http://iphone_url1</url>
    <url>http://iphone_url2</url>
    <url>http://iphone_url3</url>
  </stream>
    

この例は存在する場合高解像度ストリームを返し、存在しない場合高解像度ストリームをアップロードする旨を返します。

   
{% if asset.streams[video_width >= 720].exists %}
<stream type="hd">
  <url>{{ asset.streams[iphone].url }}</url>
</stream>
{% else %}
   <placeholder>HD stream needed</placeholder>
{% endif %}
    

結果が複数ページになる場合、Backlotはそれぞれのページを生成します。次の例では、まだ結果ページが存在する場合、Backlotは次のページへのリンクを表示します。

{% for asset in assets %}
  <name>{{asset.name}}</name>
  <link>{{asset.stream_urls.source_file}}</link>
  {% if {{page_token}} %}
    <page_token>[[SDLENTITYREF[lt]]]![CDATA[{{page_token}}]][[SDLENTITYREF[gt]]]</page_token>
  {% endif %}
{% endfor %}    
    
Note: この例はURLを文字データとして指定することにより、アンパサンドなどがXMLとして問題にならないようにします。

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