Todos os produtos
Search
Central de documentação

ApsaraVideo VOD:Snapshot templates

Última atualização: Jun 27, 2026

Gerencie modelos de snapshot com o ApsaraVideo VOD SDK for Python. Os exemplos nesta página usam o pacote aliyunsdkvod para criar, modificar, consultar e excluir modelos de snapshot.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Python 3.x instalado

  • O pacote aliyunsdkvod instalado

  • Um par de AccessKey com permissões no ApsaraVideo VOD

  • Um cliente VOD inicializado. Para mais detalhes, consulte Inicialização

Todos os exemplos nesta página inicializam o cliente chamando init_vod_client() . Para a implementação, consulte o guia de inicialização vinculado acima.

Observações de uso

  • Todos os exemplos usam autenticação com um par de AccessKey.

  • Para obter detalhes sobre os parâmetros de solicitação e resposta, consulte a referência da API no OpenAPI Explorer. Clique em API Documentation na barra de navegação superior para ver os detalhes.

  • Para obter códigos de exemplo de outras operações de API, abra o OpenAPI Explorer, selecione uma operação no painel de navegação à esquerda, especifique os parâmetros na aba Parameters, clique em Initiate Call e baixe o código na aba SDK Sample Code.

Parâmetros de configuração de snapshot

Os exemplos de criação e modificação compartilham a mesma estrutura de configuração. As tabelas a seguir descrevem cada parâmetro.

SnapshotConfig

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

Count

Long

Sim

Quantidade de snapshots a capturar.

50

Interval

Long

Sim

Intervalo entre as capturas de snapshot, em segundos. O valor 0 indica que os snapshots são capturados em intervalos uniformes, com base na duração do vídeo e no valor de Count.

1

SpecifiedOffsetTime

Long

Sim

Tempo inicial para captura dos snapshots, em milissegundos.

0

Width

Integer

Não

Largura do snapshot, em pixels. Valores válidos: [8, 4096]. Valor padrão: largura do vídeo de source.

200

Height

Integer

Não

Altura do snapshot, em pixels. Valores válidos: [8, 4096]. Valor padrão: altura do vídeo de source.

200

FrameType

String

Sim

Tipo de quadro para os snapshots. Valores válidos: intra (quadro-chave), normal (quadro normal).

"normal"

TemplateConfig

Parâmetro

Tipo

Descrição

Valores válidos

SnapshotConfig

Object

Objeto de configuração de snapshot.

Consulte a tabela acima

SnapshotType

String

Tipo de snapshot.

NormalSnapshot, SpriteSnapshot

SpriteSnapshotConfig (opcional)

Para criar um modelo de sprite snapshot, adicione SpriteSnapshotConfig dentro de SnapshotConfig e defina SnapshotType como SpriteSnapshot.

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

CellWidth

String

Não

Largura de cada imagem pequena no sprite, em pixels. Valor padrão: largura de um snapshot normal.

"120"

CellHeight

String

Não

Altura de cada imagem pequena no sprite, em pixels. Valor padrão: altura de um snapshot normal.

"68"

Columns

String

Sim

Número de colunas de imagens pequenas. Valores válidos: [1, 10000].

"3"

Lines

String

Sim

Número de linhas de imagens pequenas. Valores válidos: [1, 10000].

"10"

Padding

String

Sim

Preenchimento interno de cada imagem pequena, em pixels.

"20"

Margin

String

Sim

Margem externa de cada imagem pequena, em pixels.

"50"

KeepCellPic

String

Sim

Define se as imagens individuais das células devem ser mantidas. Valores válidos: keep (manter), delete (remover).

"keep"

Color

String

Sim

Cor de fundo da imagem do sprite. Para mais informações, consulte Configurações de cor. Não há suporte para definição de cor por valores RGB.

"tomato"

Crie um modelo de snapshot

Chame AddVodTemplate para criar um modelo de snapshot. Defina TemplateType como Snapshot.

Para detalhes da API, consulte AddVodTemplate.

Modelo de snapshot normal

from aliyunsdkvod.request.v20170321 import AddVodTemplateRequest
import json
import traceback

def add_vod_template(clt):
    request = AddVodTemplateRequest.AddVodTemplateRequest()
    # Template name
    request.set_Name('Sample Snapshot Template')
    # Template type: must be "Snapshot"
    request.set_TemplateType('Snapshot')

    # Snapshot configuration
    snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
                      'FrameType': 'normal'}
    templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'NormalSnapshot'}

    request.set_TemplateConfig(json.dumps(templateConfig))

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    template = add_vod_template(clt)
    # The response contains the template ID
    print(template['VodTemplateId'])
    print(json.dumps(template, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

Modelo de sprite snapshot

Para criar um modelo de sprite snapshot, adicione SpriteSnapshotConfig à configuração de snapshot e defina SnapshotType como SpriteSnapshot:

# Sprite snapshot configuration (includes normal snapshot config)
snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
                  'FrameType': 'normal'}

# Add sprite-specific settings
spriteSnapshotConfig = {'CellWidth': 120, 'CellHeight': 68, 'Columns': 3, 'Lines': 10, 'Padding': 20,
                        'Margin': 50, 'KeepCellPic': 'keep', 'Color': 'tomato'}
snapshotConfig['SpriteSnapshotConfig'] = spriteSnapshotConfig

templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'SpriteSnapshot'}

Substitua as variáveis snapshotConfig e templateConfig no exemplo de snapshot normal acima para criar um modelo de sprite snapshot.

Modifique um modelo de snapshot

Chame UpdateVodTemplate para atualizar um modelo de snapshot existente. Especifique o id do modelo com VodTemplateId.

Para detalhes da API, consulte UpdateVodTemplate.

from aliyunsdkvod.request.v20170321 import UpdateVodTemplateRequest
import json
import traceback

def update_vod_template(clt):
    request = UpdateVodTemplateRequest.UpdateVodTemplateRequest()
    # Specify the template to update
    request.set_VodTemplateId('<templateId>')
    # Update the template name
    request.set_Name('New Snapshot Template Name')
    # Update the snapshot configuration
    snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
                      'FrameType': 'normal'}
    templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'NormalSnapshot'}
    request.set_TemplateConfig(json.dumps(templateConfig))

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    template = update_vod_template(clt)
    print(json.dumps(template, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

Substitua <templateId> pelo id real do modelo retornado durante a criação.

Consultar modelos de snapshot

O ApsaraVideo VOD oferece duas operações de consulta:

  • GetVodTemplate: Recupera um único modelo pelo id. Consulte GetVodTemplate.

  • ListVodTemplate: Lista todos os modelos de um determinado tipo. Consulte ListVodTemplate.

Consultar um único modelo

from aliyunsdkvod.request.v20170321 import GetVodTemplateRequest
import json
import traceback

def get_vod_template(clt):
    request = GetVodTemplateRequest.GetVodTemplateRequest()
    request.set_VodTemplateId('<templateId>')

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    template = get_vod_template(clt)
    print(json.dumps(template, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

Listar todos os modelos de snapshot

from aliyunsdkvod.request.v20170321 import ListVodTemplateRequest
import json
import traceback

def list_vod_template(clt):
    request = ListVodTemplateRequest.ListVodTemplateRequest()
    # Filter by template type
    request.set_TemplateType('Snapshot')

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    templates = list_vod_template(clt)
    print(json.dumps(templates, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

Exclua um modelo de snapshot

Chame DeleteVodTemplate para excluir um modelo de snapshot pelo id.

Para detalhes da API, consulte DeleteVodTemplate.

from aliyunsdkvod.request.v20170321 import DeleteVodTemplateRequest
import json
import traceback

def delete_vod_template(clt):
    request = DeleteVodTemplateRequest.DeleteVodTemplateRequest()
    request.set_VodTemplateId('<templateId>')

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    result = delete_vod_template(clt)
    print(json.dumps(result, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

Referências