You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
视频直播

视频直播

复制全文
下载 pdf
Python SDK
截图配置
复制全文
下载 pdf
截图配置

阅读本文,您可以获取 Python SDK 截图配置的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer文档说明页签查看。

前提条件

调用接口前,请先完成 Python SDK 的安装及初始化操作。

调用示例

本节为您介绍截图配置相关接口的功能和调用示例。

添加截图配置

您可以调用 CreateSnapshotPresetV2 接口添加截图配置。详细的参数说明可参见 CreateSnapshotPresetV2 接口文档。

接口调用示例如下所示。

# coding:utf-8
import os

from volcengine.live.v20230101.live_service import LiveService

if __name__ == "__main__":
    # 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    # 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    service.set_ak(os.environ["VOLC_ACCESSKEY"])
    service.set_sk(os.environ["VOLC_SECRETKEY"])
    body = {
        # 域名空间,即直播流地址的域名所属的域名空间。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看直播流使用的域名所属的域名空间。
        "Vhost": "push.example.com",
        # 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
        "App": "live",
        # 截图配置的生效状态,取值及含义如下所示。
        # <li> 1:(默认值)生效; </li>
        # <li> 0:不生效。 </li>
        "Status": 1,
        # 截图配置的详细参数配置。
        "SnapshotPresetConfig": {
            # 图片格式为 JPEG 时的截图参数,开启 JPEG 截图时设置。
            # note:
            # JPEG 截图和 JPG 截图必须开启且只能开启一个。
            "JpegParam": {
                # 当前格式的截图是否开启,取值及含义如下所示。
                # <li> false:(默认值)不开启; </li>
                # <li> true:开启。 </li>
                "Enable": True,
                # 截图存储到 TOS 时的配置。
                # note:
                # TOSParam 和 ImageXParam 配置且配置其中一个。
                "TOSParam": {
                    # 截图是否使用 TOS 存储,取值及含义如下所示。
                    # <li> false:(默认值)不使用; </li>
                    # <li> true:使用。 </li>
                    "Enable": True,
                    # TOS 存储对应的 Bucket。
                    # 例如,存储路径为 live-test-tos-example/live/liveapp 时,Bucket 取值为 live-test-tos-example。
                    # note:
                    # 使用 TOS 存储时 Bucket 为必填项。
                    "Bucket": "live-test-tos-example",
                    # ToS 存储对应的 Bucket 下的存储目录,默认为空。
                    # 例如,存储位置为 live-test-tos-example/live/liveapp 时,StorageDir 取值为 live/liveapp。
                    "StorageDir": "live/liveapp",
                    # 存储方式为实时截图时的存储规则,支持以 {Domain}/{App}/{Stream}/{UnixTimestamp} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "ExactObject": "{Domain}/{App}/{Stream}/{UnixTimestamp}",
                    # 存储方式为覆盖截图时的存储规则,支持以 {Domain}/{App}/{Stream} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "OverwriteObject": "{Domain}/{App}/{Stream}",
                },
                # 截图存储到 veImageX 时的配置。
                # note:
                # TOSParam 和 ImageXParam 配置且配置其中一个。
                "ImageXParam": {
                    # 截图是否使用 veImageX 存储,取值及含义如下所示。
                    # <li> false:(默认值)不使用; </li>
                    # <li> true:使用。 </li>
                    "Enable": True,
                    # 使用 veImageX 存储截图时,对应的 veImageX 的服务 ID。
                    # note:
                    # 使用 veImageX 存储时 ServiceID 为必填项。
                    "ServiceID": "WMK***UX",
                    # 存储方式为覆盖截图时的存储规则,支持以 {Domain}/{App}/{Stream} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "OverwriteObject": "{Domain}/{App}/{Stream}",
                    # 存储方式为实时截图时的存储规则,支持以 {Domain}/{App}/{Stream}/{UnixTimestamp} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "ExactObject": "{Domain}/{App}/{Stream}/{UnixTimestamp}",
                },
            },
            # 截图间隔时间,单位为秒,默认值为 10,取值范围为正整数。
            "Interval": 10,
            # 截图格式为 JPG 时的截图参数,开启 JPG 截图时设置。
            # note:
            # JPEG 截图和 JPG 截图必须开启且只能开启一个。
            "JpgParam": {},
        },
    }

    resp = service.create_snapshot_preset_v2(body)
    print(resp)

更新截图配置

您可以调用 UpdateSnapshotPresetV2 接口更新截图配置。详细的参数说明可参见 UpdateSnapshotPresetV2 接口文档。

接口调用示例如下所示。

# coding:utf-8
import os

from volcengine.live.v20230101.live_service import LiveService

if __name__ == "__main__":
    # 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    # 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    service.set_ak(os.environ["VOLC_ACCESSKEY"])
    service.set_sk(os.environ["VOLC_SECRETKEY"])
    body = {
        # 域名空间,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口,获取待更新截图配置的 Vhost 取值。
        "Vhost": "push.example.com",
        # 截图配置的名称,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口获取,取值与 Name 字段取值相同。
        "Preset": "preset-123",
        # 应用名称,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口,获取待更新截图配置的 App 取值。
        "App": "live",
        # 截图配置生效状态,默认及含义如下所示。
        # <li> 1:生效; </li>
        # <li> 0:不生效。 </li>
        "Status": 1,
        # 截图配置的详细参数配置。
        "SnapshotPresetConfig": {
            # 图片格式为 JPEG 时的截图参数,开启 JPEG 截图时设置。
            # note:
            # JPEG 截图和 JPG 截图必须开启且只能开启一个。
            "JpegParam": {
                # 当前格式的截图配置是否开启,取值及含义如下所示。
                # <li> false:(默认值)不开启; </li>
                # <li> true:开启。 </li>
                "Enable": True,
                # 截图存储到 TOS 时的配置。
                # note:
                # TOSParam 和 ImageXParam 配置且配置其中一个。
                "TOSParam": {
                    # 截图是否使用 TOS 存储,取值及含义如下所示。
                    # <li> false:(默认值)不使用; </li>
                    # <li> true:使用。 </li>
                    "Enable": True,
                    # TOS 存储对应的 Bucket。
                    # 例如,存储路径为 live-test-tos-example/live/liveapp 时,Bucket 取值为 live-test-tos-example。
                    # note:
                    # 使用 TOS 存储时 Bucket 为必填项。
                    "Bucket": "live-test-tos-example",
                    # Bucket 目录,默认为空。
                    # 例如,存储路径为 live-test-tos-example/live/liveapp 时,StorageDir 取值为 live/liveapp。
                    "StorageDir": "live/liveapp",
                    # 存储方式为实时存储时的存储规则,支持以 {Domain}/{App}/{Stream}/{UnixTimestamp} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "ExactObject": "{Domain}/{App}/{Stream}/{UnixTimestamp}",
                    # 存储方式为覆盖截图时的存储规则,支持以 {Domain}/{App}/{Stream} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "OverwriteObject": "{Domain}/{App}/{Stream}",
                },
                # 截图存储到 veImageX 时的配置。
                # note:
                # TOSParam 和 ImageXParam 配置且配置其中一个。
                "ImageXParam": {
                    # 截图是否使用 veImageX 存储,取值及含义如下所示。
                    # <li> false:(默认值)不使用; </li>
                    # <li> true:使用。 </li>
                    "Enable": True,
                    # 使用 veImageX 存储截图时,对应的 veImageX 的服务 ID。
                    # note:
                    # 使用 veImageX 存储时 ServiceID 为必填项。
                    "ServiceID": "WMK***UX",
                    # 存储方式为覆盖截图时的存储规则,支持以 {Domain}/{App}/{Stream} 样式设置存储规则,支持输入字母、数字、-、!、_、.、* 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "OverwriteObject": "{Domain}/{App}/{Stream}",
                    # 存储方式为实时存储时的存储规则,支持以 {Domain}/{App}/{Stream}/{UnixTimestamp} 样式设置存储规则,支持输入字母、数字、-、!、_、.、*" 及占位符。
                    # note:
                    # 参数 ExactObject 和 OverwriteObject 传且仅传一个。
                    "ExactObject": "{Domain}/{App}/{Stream}/{UnixTimestamp}",
                },
            },
            # 截图间隔时间,单位为秒,默认值为 10,取值范围为正整数。
            "Interval": 10,
            # 截图格式为 JPG 时的截图参数,开启 JPG 截图时设置。
            # note:
            # JPEG 截图和 JPG 截图必须开启且只能开启一个。
            "JpgParam": {},
        },
    }

    resp = service.update_snapshot_preset_v2(body)
    print(resp)

查询截图配置列表

您可以调用 ListVhostSnapshotPresetV2 接口查询截图配置列表。详细的参数说明可参见 ListVhostSnapshotPresetV2 接口文档。

接口调用示例如下所示。

# coding:utf-8
import os

from volcengine.live.v20230101.live_service import LiveService

if __name__ == "__main__":
    # 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    # 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    service.set_ak(os.environ["VOLC_ACCESSKEY"])
    service.set_sk(os.environ["VOLC_SECRETKEY"])
    body = {
        # 域名空间,即直播流地址的域名所属的域名空间。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看直播流使用的域名所属的域名空间。
        "Vhost": "push.example.com",
        # 截图配置中截图文件的存储位置,缺省情况下表示不对存储位置进行过滤,取值及含义如下所示。
        # <li> tos:TOS 对象存储服务; </li>
        # <li> imageX:veImageX 图片服务。 </li>
        "Type": "tos",
    }

    resp = service.list_vhost_snapshot_preset_v2(body)
    print(resp)

删除截图配置

您可以调用 DeleteSnapshotPreset 接口删除截图配置。详细的参数说明可参见 DeleteSnapshotPreset 接口文档。

接口调用示例如下所示。

# coding:utf-8
import os

from volcengine.live.v20230101.live_service import LiveService

if __name__ == "__main__":
    # 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    # 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    service.set_ak(os.environ["VOLC_ACCESSKEY"])
    service.set_sk(os.environ["VOLC_SECRETKEY"])
    body = {
        # 应用名称,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口,获取待更新截图配置的 App 取值。
        "App": "live",
        # 截图配置的名称,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口获取,取值与 Name 字段取值相同。
        "Preset": "preset-123",
        # 域名空间,您可以调用 [ListVhostSnapshotPresetV2](https://www.volcengine.com/docs/6469/1208858) 接口,获取待删除截图配置的 Vhost 取值。
        "Vhost": "push.example.com",
    }

    resp = service.delete_snapshot_preset(body)
    print(resp)

查询截图历史详情

您可以调用 DescribeCDNSnapshotHistory 接口查询截图历史详情。详细的参数说明可参见 DescribeCDNSnapshotHistory 接口文档。

接口调用示例如下所示。

# coding:utf-8
import os

from volcengine.live.v20230101.live_service import LiveService

if __name__ == "__main__":
    # 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    # 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    service.set_ak(os.environ["VOLC_ACCESSKEY"])
    service.set_sk(os.environ["VOLC_SECRETKEY"])
    body = {
        # 域名空间,即直播流地址的域名所属的域名空间。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,查看直播流使用的域名所属的域名空间。
        "Vhost": "push.example.com",
        # 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
        "App": "live",
        # 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
        "Stream": "example_stream",
        # 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
        # note:
        # <li> 当您查询指定截图任务详情时,DateFrom 应设置为推流开始时间之前的任意时间。 </li>
        # <li> 查询的最大时间跨度为 7 天。 </li>
        "DateFrom": "2022-04-01T00:00:00+08:00",
        # 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
        "DateTo": "2022-04-02T00:00:00+08:00",
        # 查询数据的页码,默认为 1,表示查询第一页的数据。
        "PageNum": 1,
        # 每页显示的数据条数,默认为 10,最大值为 1000。
        "PageSize": 30,
        # 截图文件保存位置,取值及含义如下所示。
        # * tos:(默认值)TOS 对象存储服务;
        # * imageX:veImageX 图片服务。
        "Type": "tos",
    }

    resp = service.describe_cdn_snapshot_history(body)
    print(resp)

最近更新时间:2025.02.21 18:04:07
这个页面对您有帮助吗?
有用
有用
无用
无用