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

ApsaraVideo Media Processing:トランスコーディングテンプレート

最終更新日:Jun 19, 2026

Go SDK V2.0 を使用してトランスコーディングテンプレートを管理します。以下の例では、テンプレートの追加、更新、削除、およびクエリの方法を説明します。

前提条件

SDK クライアントが初期化されています。詳細については、クライアントの初期化をご参照ください。

テンプレートの追加

AddTemplate API を呼び出して、テンプレートを追加します。

説明
  • テンプレートの追加時に "The resource "Template" quota has been used up" エラーが返された場合、トランスコーディングテンプレートのクォータが上限に達しています。クォータを増やすには、チケットを送信してください。

  • テンプレートを追加した後、戻り値からトランスコーディングテンプレート ID を記録してください。または、コンソールでトランスコーディングテンプレートを作成して ID を取得することもできます。詳細については、「トランスコーディングテンプレート」をご参照ください。

package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  mts20140618  "github.com/alibabacloud-go/mts-20140618/v6/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


// 説明:
// 
// AccessKey ペアを使用してクライアントを初期化します。
// 
// @return Client
// 
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {

  config := &openapi.Config{
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }

  config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
  _result = &mts20140618.Client{}
  _result, _err = mts20140618.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  addTemplateRequest := &mts20140618.AddTemplateRequest{
    // テンプレートの名前。
    Name: tea.String("mps-example"),
    // コンテナフォーマット。
    Container: tea.String("{\"Format\":\"mp4\"}"),
    // ビデオストリーム設定。
    Video: tea.String("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Crf\":\"15\",\"Width\":\"256\",\"Height\":\"800\",\"Fps\":\"25\",\"Gop\":\"10s\"}"),
    // オーディオストリーム設定。
    Audio: tea.String("{\"Codec\":\"aac\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}"),
    // 一般的なトランスコーディング設定。
    TransConfig: tea.String("{\"TransMode\":\"onepass\"}"),
    // セグメント設定。
    MuxConfig: tea.String("{\"Segment\":{\"Duration\":\"10\"}}"),
  }
  runtime := &util.RuntimeOptions{}
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // コードをコピーして実行する場合は、API 呼び出しの戻り値を出力してください。
    _, _err = client.AddTemplateWithOptions(addTemplateRequest, runtime)
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 以下のコードはデモ用です。例外の処理には注意してください。プロジェクトで例外を無視しないでください。
    // エラーメッセージ。
    fmt.Println(tea.StringValue(error.Message))
    // 診断アドレス。
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}

テンプレート設定の更新

UpdateTemplate API を呼び出して、トランスコーディングテンプレートの設定を更新します。

package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  mts20140618  "github.com/alibabacloud-go/mts-20140618/v6/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


// 説明:
//
// AccessKey ペアを使用してクライアントを初期化します。
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {

  config := &openapi.Config{
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }

  config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
  _result = &mts20140618.Client{}
  _result, _err = mts20140618.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  updateTemplateRequest := &mts20140618.UpdateTemplateRequest{
    // テンプレート ID。
    TemplateId: tea.String("16f01ad6175e4230ac42bb5182cd****"),
    // テンプレートの名前。
    Name: tea.String("MPS-example"),
    // コンテナフォーマット。
    Container: tea.String("{\"Format\":\"mp4\"}"),
    // ビデオストリーム設定。
    Video: tea.String("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Crf\":\"15\",\"Width\":\"256\",\"Height\":\"800\",\"Fps\":\"25\",\"Gop\":\"10\"}"),
    // オーディオストリーム設定。
    Audio: tea.String("{\"Codec\":\"aac\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}"),
    // MUX 設定。
    MuxConfig: tea.String("{\"Segment\":{\"Duration\":\"10\"}}"),
    // 一般的なトランスコーディング設定。
    TransConfig: tea.String("{\"TransMode\":\"onepass\"}"),
  }
  runtime := &util.RuntimeOptions{}
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // コードをコピーして実行する場合は、API 呼び出しの戻り値を出力してください。
    _, _err = client.UpdateTemplateWithOptions(updateTemplateRequest, runtime)
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 以下のコードはデモ用です。例外の処理には注意してください。プロジェクトで例外を無視しないでください。
    // エラーメッセージ。
    fmt.Println(tea.StringValue(error.Message))
    // 診断アドレス。
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}

テンプレートの削除

DeleteTemplate API を呼び出して、トランスコーディングテンプレートを削除します。

package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  mts20140618  "github.com/alibabacloud-go/mts-20140618/v6/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


// 説明:
//
// AccessKey ペアを使用してクライアントを初期化します。
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {

  config := &openapi.Config{
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }

  config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
  _result = &mts20140618.Client{}
  _result, _err = mts20140618.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  deleteTemplateRequest := &mts20140618.DeleteTemplateRequest{
    // 削除するカスタムトランスコードテンプレートの ID。
    TemplateId: tea.String("16f01ad6175e4230ac42bb5182cd****"),
  }
  runtime := &util.RuntimeOptions{}
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // コードをコピーして実行する場合は、API 呼び出しの戻り値を出力してください。
    _, _err = client.DeleteTemplateWithOptions(deleteTemplateRequest, runtime)
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 以下のコードはデモ用です。例外の処理には注意してください。プロジェクトで例外を無視しないでください。
    // エラーメッセージ。
    fmt.Println(tea.StringValue(error.Message))
    // 診断アドレス。
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}

ID によるテンプレートのクエリ

QueryTemplateList API を呼び出して、ID を指定してテンプレートをクエリします。

package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  mts20140618  "github.com/alibabacloud-go/mts-20140618/v6/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


// 説明:
//
// AccessKey ペアを使用してクライアントを初期化します。
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {

  config := &openapi.Config{
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }
  // エンドポイントの詳細については、https://api.aliyun.com/product/Mts をご参照ください。
  config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
  _result = &mts20140618.Client{}
  _result, _err = mts20140618.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  queryTemplateListRequest := &mts20140618.QueryTemplateListRequest{
    // 照会するテンプレートの ID リスト。
    TemplateIds: tea.String("16f01ad6175e4230ac42bb5182cd****,88c6ca184c0e424d5w5b665e2a12****"),
  }
  runtime := &util.RuntimeOptions{}
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // コードをコピーして実行する場合は、API 呼び出しの戻り値を出力してください。
    _, _err = client.QueryTemplateListWithOptions(queryTemplateListRequest, runtime)
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 以下のコードはデモ用です。例外の処理には注意してください。プロジェクトで例外を無視しないでください。
    // エラーメッセージ。
    fmt.Println(tea.StringValue(error.Message))
    // 診断アドレス。
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}

状態によるテンプレートのクエリ

SearchTemplate API を呼び出して、状態を指定してテンプレートをクエリします。

package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  mts20140618  "github.com/alibabacloud-go/mts-20140618/v6/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


// 説明:
//
// AccessKey ペアを使用してクライアントを初期化します。
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {

  config := &openapi.Config{
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }
  // エンドポイントの詳細については、https://api.aliyun.com/product/Mts をご参照ください。
  config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
  _result = &mts20140618.Client{}
  _result, _err = mts20140618.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  searchTemplateRequest := &mts20140618.SearchTemplateRequest{
    // 検索対象のトランスコーディングテンプレートの状態。
    State: tea.String("Normal"),
  }
  runtime := &util.RuntimeOptions{}
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // コードをコピーして実行する場合は、API 呼び出しの戻り値を出力してください。
    _, _err = client.SearchTemplateWithOptions(searchTemplateRequest, runtime)
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 以下のコードはデモ用です。例外の処理には注意してください。プロジェクトで例外を無視しないでください。
    // エラーメッセージ。
    fmt.Println(tea.StringValue(error.Message))
    // 診断アドレス。
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}