You need to enable JavaScript to run this app.
导航
用量查询
最近更新时间:2024.09.14 11:16:49首次发布时间:2023.12.28 21:21:52

阅读本文,您可以获取 Java SDK 用量查询的接口调用示例,实现快速开发。

说明

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

调用说明

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

前提条件

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

调用示例

本节为您介绍用量查询相关接口的功能和调用示例。

查询直播域名带宽用量

您可以调用 DescribeLiveBandwidthData 接口查询直播域名带宽用量。详细的参数说明可参见 DescribeLiveBandwidthData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveBandwidthDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveBandwidthDataBody body = new DescribeLiveBandwidthDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的带宽用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    body.setDomainList(DomainList);

    // 推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。
    // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li>
    // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li>
    // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li>
    // <li> RTM:Real Time Media,超低延时直播协议。 </li>
    // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li>
    // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li>
    // note:
    // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。
    List<String> ProtocolList = new ArrayList<>();

    ProtocolList.add("HTTP-FLV");
    ProtocolList.add("RTMP");
    body.setProtocolList(ProtocolList);

    // 提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。
    // <li> unicom:联通; </li>
    // <li> railcom:铁通; </li>
    // <li> telecom:电信; </li>
    // <li> mobile:移动; </li>
    // <li> cernet:教育网; </li>
    // <li> tianwei:天威; </li>
    // <li> alibaba:阿里巴巴; </li>
    // <li> tencent:腾讯; </li>
    // <li> drpeng:鹏博士; </li>
    // <li> btvn:广电; </li>
    // <li> huashu:华数; </li>
    // <li> other:其他。 </li>
    // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。
    List<String> ISPList = new ArrayList<>();

    ISPList.add("telecom");
    ISPList.add("unicom");
    body.setISPList(ISPList);

    // CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> RegionList = new ArrayList<>();

    reqRegion20230101 RegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    RegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    RegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    RegionList1.setProvince("beijing");
    RegionList.add(RegionList1);
    body.setRegionList(RegionList);

    // 客户端 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> UserRegionList = new ArrayList<>();

    reqRegion20230101 UserRegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    UserRegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    UserRegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    UserRegionList1.setProvince("beijing");
    UserRegionList.add(UserRegionList1);
    body.setUserRegionList(UserRegionList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询最大时间范围为 366 天; </li>
    // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询最大时间范围为 366 天; </li>
    // <li> 86400:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询最大时间范围为 366 天。 </li>
    body.setAggregation(300);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,支持的维度如下所示。
    // <li> Domain:域名; </li>
    // <li> ISP:运营商; </li>
    // <li> Protocol:推拉流协议。 </li>
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Domain 进行数据拆分时, DomainList 传入多个 Domain 值时,才会返回按 Domain 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Domain");
    body.setDetailField(DetailField);

    try {
      DescribeLiveBandwidthDataRes resp = service.describeLiveBandwidthData(
        body
      );
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询直播域名流量用量

您可以调用 DescribeLiveTrafficData 接口查询直播域名流量用量。详细的参数说明可参见 DescribeLiveTrafficData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveTrafficDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveTrafficDataBody body = new DescribeLiveTrafficDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的流量用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    body.setDomainList(DomainList);

    // 推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。
    // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li>
    // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li>
    // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li>
    // <li> RTM:Real Time Media,超低延时直播协议。 </li>
    // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li>
    // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li>
    // note:
    // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。
    List<String> ProtocolList = new ArrayList<>();

    ProtocolList.add("HTTP-FLV");
    ProtocolList.add("RTMP");
    body.setProtocolList(ProtocolList);

    // 提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。
    // <li> unicom:联通; </li>
    // <li> railcom:铁通; </li>
    // <li> telecom:电信; </li>
    // <li> mobile:移动; </li>
    // <li> cernet:教育网; </li>
    // <li> tianwei:天威; </li>
    // <li> alibaba:阿里巴巴; </li>
    // <li> tencent:腾讯; </li>
    // <li> drpeng:鹏博士; </li>
    // <li> btvn:广电; </li>
    // <li> huashu:华数; </li>
    // <li> other:其他。 </li>
    // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。
    List<String> ISPList = new ArrayList<>();

    ISPList.add("telecom");
    body.setISPList(ISPList);

    // CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> RegionList = new ArrayList<>();

    reqRegion20230101 RegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    RegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    RegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    RegionList1.setProvince("beijing");
    RegionList.add(RegionList1);
    body.setRegionList(RegionList);

    // 客户端 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> UserRegionList = new ArrayList<>();

    reqRegion20230101 UserRegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    UserRegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    UserRegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    UserRegionList1.setProvince("beijing");
    UserRegionList.add(UserRegionList1);
    body.setUserRegionList(UserRegionList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 300:(默认值)5 分钟。聚合粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询最大时间范围为 366 天; </li>
    // <li> 3600:1 小时。聚合粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询最大时间范围为 366 天; </li>
    // <li> 86400:1 天。聚合粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询最大时间范围为 366 天。 </li>
    body.setAggregation(300);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,支持的维度如下。
    // <li> Domain:域名; </li>
    // <li> ISP:运营商; </li>
    // <li> Protocol:推拉流协议。 </li>
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Domain 进行数据拆分时, DomainList 传入多个 Domain 值时,才会返回按 Domain 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Domain");
    body.setDetailField(DetailField);

    try {
      DescribeLiveTrafficDataRes resp = service.describeLiveTrafficData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询直播域名录制用量

您可以调用 DescribeLiveRecordData 接口查询直播域名录制用量。详细的参数说明可参见 DescribeLiveRecordData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveRecordDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveRecordDataBody body = new DescribeLiveRecordDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的录制用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    body.setDomainList(DomainList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询最大时间范围为 366 天;  </li>
    // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天;  </li>
    // <li> 86400:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li>
    body.setAggregation(300);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,当前接口仅支持填写 Domain 表示按查询的域名为维度进行数据拆分。
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Domain 进行数据拆分时, DomainList 传入多个 Domain 值时,才会返回按 Domain 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Domain");
    body.setDetailField(DetailField);
    // 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setStream("example_stream");

    try {
      DescribeLiveRecordDataRes resp = service.describeLiveRecordData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询直播域名转码用量

您可以调用 DescribeLiveTranscodeData 接口查询直播域名转码用量。详细的参数说明可参见 DescribeLiveTranscodeData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveTranscodeDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveTranscodeDataBody body = new DescribeLiveTranscodeDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的转码用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    DomainList.add("push2.example.com");
    body.setDomainList(DomainList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    // note:
    // 单次查询最大时间跨度为 93 天,历史查询最大时间范围为 366 天。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,当前接口默认且仅支持按 86400 秒进行数据聚合。
    body.setAggregation(86400);
    // 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setStream("example_stream");

    // 转码分辨率档位,默认为空表示不指定转码分辨率档位。以 720P 为例,表示转码配置的长边 x 短边计算而出的面积大于 480P(640 × 480)且小于等于 720P 档位(1280 x 720)。支持的取值及含义如下所示。
    // <li> 480P:640 × 480; </li>
    // <li> 720P:1280 × 720; </li>
    // <li> 1080P:1920 × 1088; </li>
    // <li> 2K:2560 × 1440; </li>
    // <li> 4K:4096 × 2160; </li>
    // <li> 8K:> 4096 x 2160; </li>
    // <li> 0P:纯音频转码。 </li>
    List<String> Resolution = new ArrayList<>();

    Resolution.add("720P");
    Resolution.add("1080P");
    body.setResolution(Resolution);

    // 视频编码格式,默认为空表示不指定编码格式,支持的取值和含义如下所示。
    // <li> Normal_H264:H.264 标准转码; </li>
    // <li> Normal_H265:H.265 标准转码; </li>
    // <li> Normal_H266:H.266 标准转码; </li>
    // <li> ByteHD_H264:H.264 极智超清; </li>
    // <li> ByteHD_H265:H.265 极智超清; </li>
    // <li> ByteHD_H266:H.266 极智超清; </li>
    // <li> ByteQE:画质增强; </li>
    // <li> Audio:纯音频流。 </li>
    List<String> TranscodeType = new ArrayList<>();

    TranscodeType.add("Normal_H264");
    TranscodeType.add("ByteHD_H265");
    body.setTranscodeType(TranscodeType);

    try {
      DescribeLiveTranscodeDataRes resp = service.describeLiveTranscodeData(
        body
      );
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询直播域名截图张数

您可以调用 DescribeLiveSnapshotData 接口查询直播域名截图张数。详细的参数说明可参见 DescribeLiveSnapshotData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveSnapshotDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveSnapshotDataBody body = new DescribeLiveSnapshotDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的截图用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    DomainList.add("push2.example.com");
    body.setDomainList(DomainList);
    // 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setStream("example_stream");
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2022-03-07T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2022-03-08T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 300:5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天;  </li>
    // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天;  </li>
    // <li> 86400:(默认值)1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li>
    body.setAggregation(86400);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,当前接口仅支持填写 Domain 表示按查询的域名为维度进行数据拆分。
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Domain 进行数据拆分时, DomainList 传入多个 Domain 值时,才会返回按 Domain 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Domain");
    body.setDetailField(DetailField);

    try {
      DescribeLiveSnapshotDataRes resp = service.describeLiveSnapshotData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询截图审核用量

您可以调用 DescribeLiveAuditData 接口查询截图审核用量。详细的参数说明可参见 DescribeLiveAuditData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveAuditDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveAuditDataBody body = new DescribeLiveAuditDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的截图审核张数用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    DomainList.add("push2.example.com");
    body.setDomainList(DomainList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2022-08-03T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2022-08-04T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,当前接口默认且仅支持按 86400 秒进行数据聚合。
    // note:
    // 时间粒度为 86400 秒时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。
    body.setAggregation(86400);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,当前接口仅支持填写 Domain 表示按查询的域名为维度进行数据拆分。
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Domain 进行数据拆分时, DomainList 传入多个 Domain 值时,才会返回按 Domain 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Domain");
    body.setDetailField(DetailField);

    try {
      DescribeLiveAuditDataRes resp = service.describeLiveAuditData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询拉流转推时长用量

您可以调用 DescribeLivePullToPushData 接口查询拉流转推时长用量。详细的参数说明可参见 DescribeLivePullToPushData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLivePullToPushDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLivePullToPushDataBody body = new DescribeLivePullToPushDataBody();

    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2022-03-07T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2022-03-08T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 1 天,历史查询时间范围为 366 天; </li>
    // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询时间跨度为 93 天,历史查询时间范围为 366 天; </li>
    // <li> 86400:(默认值)1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li>
    body.setAggregation(3600);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,当前接口仅支持填写 Group 表示按查询的任务群组为维度进行数据拆分。
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Group 进行数据拆分时, GroupList 传入多个 Group 值时,才会返回按 Group 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Group");
    body.setDetailField(DetailField);
    // 应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setApp("live");
    // 流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
    // note:
    // 查询流粒度数据时,需同时传入 App 和 Stream。
    body.setStream("example_stream");

    // 拉流转推任务群组列表,默认为空,表示查询所有拉流转推任务群组的时长用量。
    List<String> GroupList = new ArrayList<>();

    GroupList.add("group001");
    body.setGroupList(GroupList);

    try {
      DescribeLivePullToPushDataRes resp = service.describeLivePullToPushData(
        body
      );
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询直播时移存储用量

您可以调用 DescribeLiveTimeShiftData 接口查询直播时移存储用量。详细的参数说明可参见 DescribeLiveTimeShiftData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveTimeShiftDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveTimeShiftDataBody body = new DescribeLiveTimeShiftDataBody();

    // 数据聚合的时间粒度,单位为秒,当前接口默认且仅支持按 86400 秒进行数据聚合。
    body.setAggregation(86400);
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2022-02-17T23:59:59+08:00");
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    // note:
    // 单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。
    body.setStartTime("2022-02-11T00:00:00+08:00");

    // 域名空间列表,默认为空,表示查询您视频直播产品下所有域名产生的时移存储用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取域名所在的域名空间信息。
    List<String> Vhosts = new ArrayList<>();

    Vhosts.add("push.example.com");
    body.setVhosts(Vhosts);

    try {
      DescribeLiveTimeShiftDataRes resp = service.describeLiveTimeShiftData(
        body
      );
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询 95 带宽峰值

您可以调用 DescribeLiveP95PeakBandwidthData 接口查询 95 带宽峰值。详细的参数说明可参见 DescribeLiveP95PeakBandwidthData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLiveP95PeakBandwidthDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLiveP95PeakBandwidthDataBody body =
      new DescribeLiveP95PeakBandwidthDataBody();

    // 域名列表,默认为空,表示查询您视频直播产品下所有域名的 95 峰值带宽用量数据。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console.volcengine.com/live/main/domain/list)页面,获取待查询的域名。
    List<String> DomainList = new ArrayList<>();

    DomainList.add("push.example.com");
    body.setDomainList(DomainList);

    // 推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。
    // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li>
    // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li>
    // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li>
    // <li> RTM:Real Time Media,超低延时直播协议。 </li>
    // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li>
    // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li>
    // note:
    // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。
    List<String> ProtocolList = new ArrayList<>();

    ProtocolList.add("HTTP-FLV");
    ProtocolList.add("HTTP-HLS");
    body.setProtocolList(ProtocolList);

    // CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> RegionList = new ArrayList<>();

    reqRegion20230101 RegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    RegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    RegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    RegionList1.setProvince("beijing");
    RegionList.add(RegionList1);
    body.setRegionList(RegionList);

    // 客户端 IP 所属区域的列表,缺省情况下表示所有区域。
    // note:
    // 参数 RegionList和UserRegionList 不支持同时传入。
    List<reqRegion20230101> UserRegionList = new ArrayList<>();

    reqRegion20230101 UserRegionList1 = new reqRegion20230101();

    // The identifier for the major region in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata).
    UserRegionList1.setArea("CN");
    // The country identifier in the regional information can be obtained by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by country, both 'Area' and 'Country' need to be passed in simultaneously.
    UserRegionList1.setCountry("CN");
    // The province identifier in the regional information is currently not supported for countries or regions outside mainland China, Hong Kong, Macao, and Taiwan. You can obtain the identifier information by calling [DescribeLiveRegionData](https://docs.byteplus.com/en/docs/byteplus-media-live/describeliveregiondata). When filtering by province, you need to simultaneously pass in Area, Country, and Province
    UserRegionList1.setProvince("beijing");
    UserRegionList.add(UserRegionList1);
    body.setUserRegionList(UserRegionList);
    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    // note:
    // 单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,当前接口默认且仅支持按 300 秒进行数据拆分。
    body.setAggregation(300);

    try {
      DescribeLiveP95PeakBandwidthDataRes resp =
        service.describeLiveP95PeakBandwidthData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

查询拉流转推带宽用量

您可以调用 DescribeLivePullToPushBandwidthData 接口查询拉流转推带宽用量。详细的参数说明可参见 DescribeLivePullToPushBandwidthData 接口文档。

接口调用示例如下所示。

package com.volcengine.live.demo;

import com.volcengine.model.live.v20230101.*;
import com.volcengine.service.live.v20230101.LiveService;
import java.util.ArrayList;
import java.util.List;

public class DescribeLivePullToPushBandwidthDataDemo {

  public static void main(String[] args) {
    // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
    // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
    LiveService service = LiveService.getInstance();

    service.setAccessKey(System.getenv("VOLC_ACCESSKEY"));

    service.setSecretKey(System.getenv("VOLC_SECRETKEY"));

    DescribeLivePullToPushBandwidthDataBody body =
      new DescribeLivePullToPushBandwidthDataBody();

    // 查询的开始时间,RFC3339 格式的时间戳,精度为秒。
    body.setStartTime("2021-04-13T00:00:00+08:00");
    // 查询的结束时间,RFC3339 格式的时间戳,精度为秒。
    body.setEndTime("2021-04-14T00:00:00+08:00");
    // 数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。
    // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li>
    // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天; </li>
    // <li> 86400:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li>
    body.setAggregation(300);

    // 数据拆分的维度,默认为空表示不按维度进行数据拆分,当前支持按 Group 维度进行拆分。
    // note:
    // 配置数据拆分的维度时,对应的维度参数传入多个值时才会返回按此维度拆分的数据。例如,配置按 Group 进行数据拆分时, GroupList 传入多个 Group 值时,才会返回按 Group 拆分的数据。
    List<String> DetailField = new ArrayList<>();

    DetailField.add("Group");
    body.setDetailField(DetailField);

    // 拉流转推任务群组列表,默认为空,表示查询所有拉流转推任务群组的带宽用量。
    List<String> GroupList = new ArrayList<>();

    GroupList.add("group001");
    GroupList.add("group002");
    body.setGroupList(GroupList);

    try {
      DescribeLivePullToPushBandwidthDataRes resp =
        service.describeLivePullToPushBandwidthData(body);
      System.out.println(resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}