すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:スナップショットテンプレート

最終更新日:Jun 04, 2026

スナップショットテンプレートは、ビデオスナップショットのサイズ、数、タイミングを定義します。このトピックでは、スナップショットテンプレートを作成および管理するための ApsaraVideo VOD SDK for Java のサンプルコードを紹介します。

注意事項

  • このトピックに記載されているすべての API 呼び出しのサンプルコードでは、AccessKey を使用してクライアントインスタンスを初期化しています。

  • これらの API オペレーションのリクエストパラメーターおよびレスポンスパラメーターの詳細については、「Alibaba Cloud OpenAPI Explorer」をご参照ください。API オペレーションページで右側の API Documentations タブを開いてください。

  • このトピックでは一部の API オペレーションについてサンプルコードを提供しています。その他の API オペレーションの SDK コード例を取得するには、「Alibaba Cloud OpenAPI Explorer」にアクセスしてください。Parameters タブで必要なパラメーターを指定し、呼び出しを実行します。その後、SDK Sample Code タブで SDK バージョンとターゲット言語を選択すると、サンプルコードを表示およびダウンロードできます。

  • このトピックのサンプルコードは SDK V1.0 を使用しています。V2.0 のサンプルコードを取得する場合は、Alibaba Cloud OpenAPI Explorer で正しい SDK バージョンを選択してください。image.png

クライアントの初期化

ApsaraVideo VOD SDK を使用する前に、「初期化」に従ってクライアントを初期化してください。

スナップショットテンプレートの作成

AddVodTemplate オペレーションを呼び出して、スナップショットテンプレートを作成します。

Alibaba Cloud OpenAPI Portal:AddVodTemplate

サンプルコード:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.AddVodTemplateRequest;
import com.aliyuncs.vod.model.v20170321.AddVodTemplateResponse;

/** 
 * AccessKey 情報を取得します。
 */
public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効になっているリージョンを指定します。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウント (root ユーザー) の AccessKey ペアは、すべての API オペレーションに対する権限を持ちます。API オペレーションの呼び出しや日常的な運用管理 (O&M) には RAM ユーザーを使用することを推奨します。 
    // AccessKey ペア (AccessKey ID および AccessKey Secret) をプロジェクトコード内に保存しないでください。そうしないと、AccessKey ペアが漏洩する可能性があり、結果としてご利用のアカウント内のすべてのリソースのセキュリティが侵害されます。 
    // この例では、環境変数から AccessKey ペアを読み取ることで API アクセスの認証を実装しています。サンプルコードを実行する前に、環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を設定してください。 
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

/**
 * スナップショットテンプレートのパラメーターを構築し、必要に応じて対応するパラメーター値を変更します。
 * 以下のサンプルコードは、イメージスプライトの完全な構成を示しています。
 * @return スナップショットテンプレートの構成。
 */
public static JSONObject buildSnapshotTemplateConfig() {
    JSONObject templateConfig = new JSONObject();
    JSONObject snapshotConfig = new JSONObject();
    snapshotConfig.put("Count", "50");
    snapshotConfig.put("Interval", "1");
    snapshotConfig.put("SpecifiedOffsetTime", "0");
    snapshotConfig.put("Width", "200");
    snapshotConfig.put("Height", "200");
    snapshotConfig.put("FrameType", "normal");
    // 通常スナップショットの構成。デフォルトでは、イメージスプライトにもこの構成が使用されます。
    templateConfig.put("SnapshotConfig", snapshotConfig);

    // イメージスプライトの構成。通常スナップショットの構成を含みます。
    JSONObject spriteSnapshotConfig = new JSONObject();
    spriteSnapshotConfig.put("CellWidth", "120");
    spriteSnapshotConfig.put("CellHeight", "68");
    spriteSnapshotConfig.put("Columns", "3");
    spriteSnapshotConfig.put("Lines", "10");
    spriteSnapshotConfig.put("Padding", "20");
    spriteSnapshotConfig.put("Margin", "50");
    spriteSnapshotConfig.put("KeepCellPic", "keep");
    spriteSnapshotConfig.put("Color", "tomato");
    snapshotConfig.put("SpriteSnapshotConfig", spriteSnapshotConfig);

    // スナップショットのタイプ。イメージスプライトの場合は SpriteSnapshot、通常スナップショットの場合は NormalSnapshot を設定します。
    templateConfig.put("SnapshotType", "SpriteSnapshot");
    return templateConfig;
}

/**
 * スナップショットテンプレートを追加する関数。
 */
public static AddVodTemplateResponse addSnapshotVodTemplate(DefaultAcsClient client) throws Exception {
    AddVodTemplateRequest request = new AddVodTemplateRequest();
    // テンプレートの名前。
    request.setName("Test to add a snapshot template");
    // テンプレートのタイプ。Snapshot を設定します。
    request.setTemplateType("Snapshot");
    // テンプレートの構成。
    JSONObject templateConfig = buildSnapshotTemplateConfig();
    request.setTemplateConfig(templateConfig.toJSONString());
    return client.getAcsResponse(request);
}

/**
 * サンプルコード
 * @param args
 * @throws ClientException
 */
public static void main(String[] args) {
    DefaultAcsClient client = initVodClient();
    AddVodTemplateResponse response = new AddVodTemplateResponse();
    try {
        // スナップショットテンプレートを作成します。
        response = addSnapshotVodTemplate(client);
        // スナップショットテンプレートの ID。
        System.out.println("SnapshotVodTemplateId = " + response.getVodTemplateId());
    } catch (Exception e) {
        System.out.println("ErrorMessage = " + e.getLocalizedMessage());
    }
    System.out.println("RequestId = " + response.getRequestId());
}

スナップショットテンプレートの変更

UpdateVodTemplate オペレーションを呼び出して、スナップショットテンプレートを変更します。

Alibaba Cloud OpenAPI Portal: UpdateVodTemplate

サンプルコード:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.UpdateVodTemplateRequest;
import com.aliyuncs.vod.model.v20170321.UpdateVodTemplateResponse;

/** 
 * AccessKey 情報を取得します。
 */
public static DefaultAcsClient initVodClient() throws ClientException {
    // ApsaraVideo VOD が有効になっているリージョンを指定します。
    String regionId = "cn-shanghai";  
    // Alibaba Cloud アカウント (root ユーザー) の AccessKey ペアは、すべての API オペレーションに対する権限を持ちます。API オペレーションの呼び出しや日常的な運用管理 (O&M) には RAM ユーザーを使用することを推奨します。 
    // AccessKey ペア (AccessKey ID および AccessKey Secret) をプロジェクトコード内に保存しないでください。そうしないと、AccessKey ペアが漏洩する可能性があり、結果としてご利用のアカウント内のすべてのリソースのセキュリティが侵害されます。 
    // この例では、環境変数から AccessKey ペアを読み取ることで API アクセスの認証を実装しています。サンプルコードを実行する前に、環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を設定してください。 
    DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    DefaultAcsClient client = new DefaultAcsClient(profile);
    return client;
    }

/**
 * スナップショットテンプレートのパラメーターを構築し、必要に応じて対応するパラメーター値を変更します。
 * 以下のサンプルコードは、通常スナップショットの完全な構成を示しています。
 * @return スナップショットテンプレートの構成。
 */
public static JSONObject buildSnapshotTemplateConfig() {
    JSONObject templateConfig = new JSONObject();
    JSONObject snapshotConfig = new JSONObject();
    snapshotConfig.put("Count", "50");
    snapshotConfig.put("Interval", "1");
    snapshotConfig.put("SpecifiedOffsetTime", "0");
    snapshotConfig.put("Width", "200");
    snapshotConfig.put("Height", "200");
    snapshotConfig.put("FrameType", "normal");
    // 通常スナップショットの構成。デフォルトでは、イメージスプライトにもこの構成が使用されます。
    templateConfig.put("SnapshotConfig", snapshotConfig);

    // スナップショットのタイプ。イメージスプライトの場合は SpriteSnapshot、通常スナップショットの場合は NormalSnapshot を設定します。
    templateConfig.put("SnapshotType", "NormalSnapshot");
    return templateConfig;
}

/**
 * スナップショットテンプレートを変更します。
 */
public static UpdateVodTemplateResponse updateSnapshotVodTemplate(DefaultAcsClient client) throws Exception {
    UpdateVodTemplateRequest request = new UpdateVodTemplateRequest();
    // 変更するテンプレートの ID。
    request.setVodTemplateId("53azf9d796fad9d7b862b2e****");
    // テンプレートの名前。
    request.setName("Test to modify a snapshot template");
    // テンプレートの構成。
    JSONObject templateConfig = buildSnapshotTemplateConfig();
    request.setTemplateConfig(templateConfig.toJSONString());
    return client.getAcsResponse(request);
}

/**
 * サンプルコード
 * @param args
 * @throws ClientException
 */
public static void main(String[] args) {
    DefaultAcsClient client = initVodClient();
    UpdateVodTemplateResponse response = new UpdateVodTemplateResponse();
    try {
        // スナップショットテンプレートを変更します。
        response = updateSnapshotVodTemplate(client);
        // スナップショットテンプレートの ID。
        System.out.println("SnapshotVodTemplateId = " + response.getVodTemplateId());
    } catch (Exception e) {
        System.out.println("ErrorMessage = " + e.getLocalizedMessage());
    }
    System.out.println("RequestId = " + response.getRequestId());
}

スナップショットテンプレートの照会

  • GetVodTemplate オペレーションを呼び出して、スナップショットテンプレートを照会します。

    Alibaba Cloud OpenAPI Portal:GetVodTemplate

  • ListVodTemplate オペレーションを呼び出して、スナップショットテンプレートの一覧を照会します。

    Alibaba Cloud OpenAPI Portal:ListVodTemplate

スナップショットテンプレートの削除

DeleteVodTemplate オペレーションを呼び出して、スナップショットテンプレートを削除します。

Alibaba Cloud OpenAPI Portal: DeleteVodTemplate