Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Snapshot templates

Dernière mise à jour :Aug 10, 2026

Gérez les modèles de snapshots à l'aide du SDK ApsaraVideo VOD pour Python. Les exemples présentés sur cette page utilisent le package aliyunsdkvod pour créer, modifier, interroger et supprimer des modèles de snapshots.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Python 3.x installé

  • Le package aliyunsdkvod installé

  • Une paire AccessKey disposant des autorisations ApsaraVideo VOD

  • Un client VOD initialisé. Pour plus d'informations, consultez la rubrique Initialisation

Tous les exemples de cette page initialisent le client en appelant la fonction init_vod_client() . Pour consulter l'implémentation, reportez-vous au guide d'initialisation mentionné ci-dessus.

Remarques relatives à l'utilisation

  • Tous les exemples s'authentifient à l'aide d'une paire AccessKey.

  • Pour obtenir des détails sur les paramètres de requête et de réponse, consultez la référence API dans OpenAPI Explorer. Cliquez sur API Documentation dans la barre de navigation supérieure pour plus de détails.

  • Pour obtenir des exemples de code pour d'autres opérations API, ouvrez OpenAPI Explorer, sélectionnez une opération dans le volet de navigation de gauche, spécifiez les paramètres dans l'onglet Parameters, cliquez sur Initiate Call, puis téléchargez le code depuis l'onglet SDK Sample Code.

Paramètres de configuration des snapshots

Les exemples de création et de modification partagent la même structure de configuration. Les tableaux suivants décrivent chaque paramètre.

SnapshotConfig

Parameter Type Required Description Example
Count Long Oui Le nombre de snapshots à capturer. 50
Interval Long Oui L'intervalle entre les captures de snapshots, en secondes. Une valeur de 0 indique que les snapshots sont capturés à intervalles réguliers en fonction de la durée de la vidéo et de la valeur de Count. 1
SpecifiedOffsetTime Long Oui L'heure de début de la capture des snapshots, en millisecondes. 0
Width Integer Non La largeur du snapshot, en pixels. Valeurs valides : [8, 4096]. Valeur par défaut : la largeur de la vidéo source. 200
Height Integer Non La hauteur du snapshot, en pixels. Valeurs valides : [8, 4096]. Valeur par défaut : la hauteur de la vidéo source. 200
FrameType String Oui Le type d'image pour les snapshots. Valeurs valides : intra (image clé), normal (image normale). "normal"

TemplateConfig

Parameter Type Description Valid values
SnapshotConfig Object L'objet de configuration du snapshot. Voir le tableau ci-dessus
SnapshotType String Le type de snapshot. NormalSnapshot, SpriteSnapshot

SpriteSnapshotConfig (facultatif)

Pour créer un modèle de snapshot sprite, ajoutez SpriteSnapshotConfig à l'intérieur de SnapshotConfig et définissez SnapshotType sur SpriteSnapshot.

Parameter Type Required Description Example
CellWidth String Non La largeur de chaque petite image dans le sprite, en pixels. Valeur par défaut : la largeur d'un snapshot normal. "120"
CellHeight String Non La hauteur de chaque petite image dans le sprite, en pixels. Valeur par défaut : la hauteur d'un snapshot normal. "68"
Columns String Oui Le nombre de colonnes de petites images. Valeurs valides : [1, 10000]. "3"
Lines String Oui Le nombre de lignes de petites images. Valeurs valides : [1, 10000]. "10"
Padding String Oui Le remplissage de chaque petite image, en pixels. "20"
Margin String Oui La marge de chaque petite image, en pixels. "50"
KeepCellPic String Oui Indique s'il faut conserver les images individuelles des cellules. Valeurs valides : keep (conserver), delete (supprimer). "keep"
Color String Oui La couleur d'arrière-plan de l'image sprite. Pour plus d'informations, consultez la rubrique Color settings. La définition de la couleur à l'aide de valeurs RGB n'est pas prise en charge. "tomato"

Créer un modèle de snapshot

Appelez AddVodTemplate pour créer un modèle de snapshot. Définissez TemplateType sur Snapshot.

Pour plus de détails sur l'API, consultez la documentation AddVodTemplate.

Modèle 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())

Modèle de snapshot sprite

Pour créer un modèle de snapshot sprite, ajoutez SpriteSnapshotConfig à la configuration du snapshot et définissez SnapshotType sur 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'}

Remplacez les variables snapshotConfig et templateConfig dans l'exemple de snapshot normal ci-dessus pour créer un modèle de snapshot sprite.

Modifier un modèle de snapshot

Appelez UpdateVodTemplate pour mettre à jour un modèle de snapshot existant. Spécifiez l'ID du modèle avec VodTemplateId.

Pour plus de détails sur l'API, consultez la documentation 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())

Remplacez <templateId> par l'ID réel du modèle renvoyé lors de sa création.

Interroger des modèles de snapshots

ApsaraVideo VOD propose deux opérations d'interrogation :

  • GetVodTemplate : Récupère un seul modèle par ID. Consultez la documentation GetVodTemplate.

  • ListVodTemplate : Répertorie tous les modèles d'un type donné. Consultez la documentation ListVodTemplate.

Interroger un seul modèle

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())

Répertorier tous les modèles de snapshots

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())

Supprimer un modèle de snapshot

Appelez DeleteVodTemplate pour supprimer un modèle de snapshot par ID.

Pour plus de détails sur l'API, consultez la documentation 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())

Références