---
id: "bd8a291b981c7bdac428"
url: "https://www.xmcsl.cn/project/ocean-engine-api/%E8%8E%B7%E5%8F%96%E8%A7%86%E9%A2%91%E7%B4%A0%E6%9D%90-1696710601820172.html"
source_url: "https://open.oceanengine.com/labels/8/docs/1696710601820172"
source_date: null
checked_at: "2026-11-05T04:21:48.909937+00:00"
status: "ready"
check_scope: "structure_only; not a factual or human review"
body_sha256: "b21300bf67bc161e2cda6241724d228cd2b9c6cd4e2067469bbf216b9c776f60"
---

# 获取视频素材 — 巨量引擎 API

# 获取视频素材

 

<table><tr><th>关键信息</th><th>详情</th></tr><tr><th>文档 ID</th><td>1696710601820172</td></tr>&#10;<tr><th>标签 ID</th><td>8</td></tr>&#10;<tr><th>原始文档</th><td>&#91;https://open.oceanengine.com/labels/8/docs/1696710601820172&#93;(https://open.oceanengine.com/labels/8/docs/1696710601820172)</td></tr>&#10;<tr><th>接口标识</th><td>ad.file&#95;video.get</td></tr>&#10;<tr><th>为保证接口使用的安全性，避免调取他人的图片信息，该接口针对素材URL的字段仅查询自己主体下的素材才会返回，即需查询的投放账户的主体需与APPID对应开发者的主体保持一致，才可获取到素材的预览URL的信息，否则会提示</th><td>“素材所属主体与开发者主体不一致无法获取URL”(第三方获取敏感物料信息可在授权时申请投放账户授权敏感物料权限，可参考常见问题【&#91;https://ad.oceanengine.com/athena/faq/index.html?plat&#95;id=7&amp;id=1675539226863629&#93;(https://ad.oceanengine.com/athena/faq/index.html?plat&#95;id=7&amp;id=1675539226863629)&#91;敏感物料授权&#93;(https://open.oceanengine.com/labels/41/docs/1808720563583179?origin=left&#95;nav)】）！</td></tr>&#10;</table>

 

💡用户可以通过此接口获取经过一定条件过滤后的客户下创意素材库对应的视频及视频信息。为保证接口使用的安全性，避免调取他人的图片信息，该接口针对素材URL的字段仅查询自己主体下的素材才会返回。对素材视频进行过滤的时候， \`video\_ids\`、 \`material\_ids\`、 \`signatures\`只能选择一个进行过滤。获取视频素材数据量在100w以内时支持全量获取。关键配合接口如【获取Access token】。 通过此接口，用户可以获取经过一定条件过滤后的客户下创意素材库对应的视频及视频信息。 \- 为保证接口使用的安全性，避免调取他人的图片信息，该接口针对素材URL的字段仅查询自己主体下的素材才会返回，即需查询的投放账户的主体需与APPID对应开发者的主体保持一致，才可获取到素材的预览URL的信息，否则会提示：“素材所属主体与开发者主体不一致无法获取URL”(第三方获取敏感物料信息可在授权时申请投放账户授权敏感物料权限，可参考常见问题【\[https://ad.oceanengine.com/athena/faq/index.html?plat\_id=7&amp;id=1675539226863629\](https://ad.oceanengine.com/athena/faq/index.html?plat\_id=7&amp;id=1675539226863629)\[敏感物料授权\](https://open.oceanengine.com/labels/41/docs/1808720563583179?origin=left\_nav)】）！ \- 对素材视频进行过滤的时候，\`video\_ids\`（视频ID）、\`material\_ids\`（素材ID）、\`signatures\`（视频的md5值）只能选择一个进行过滤！ \- 获取视频素材数据量在100w以内时支持全量获取

 

GET \[https://api.oceanengine.com/open\_api/2/file/video/get/\](https://api.oceanengine.com/open\_api/2/file/video/get/) <a href="https://open.oceanengine.com/tools/visual_debug.html?docId=1696710601820172">🔍 可视化调试</a> <a href="https://open.oceanengine.com/labels/7/docs/1773083358100557">📦 SDK下载</a>

 

## 接口说明

 

用户可以通过此接口获取经过一定条件过滤后的客户下创意素材库对应的视频及视频信息。为保证接口使用的安全性，避免调取他人的图片信息，该接口针对素材URL的字段仅查询自己主体下的素材才会返回。对素材视频进行过滤的时候， <code>video&#95;ids</code>、 <code>material&#95;ids</code>、 <code>signatures</code>只能选择一个进行过滤。获取视频素材数据量在100w以内时支持全量获取。关键配合接口如【获取Access token】。

 

通过此接口，用户可以获取经过一定条件过滤后的客户下创意素材库对应的视频及视频信息。

 

<ul>&#10;<li>为保证接口使用的安全性，避免调取他人的图片信息，该接口针对素材URL的字段仅查询自己主体下的素材才会返回，即需查询的投放账户的主体需与APPID对应开发者的主体保持一致，才可获取到素材的预览URL的信息，否则会提示：“素材所属主体与开发者主体不一致无法获取URL”(第三方获取敏感物料信息可在授权时申请投放账户授权敏感物料权限，可参考常见问题【<a href="https://ad.oceanengine.com/athena/faq/index.html?plat_id=7&amp;id=1675539226863629">https://ad.oceanengine.com/athena/faq/index.html?plat&#95;id=7&amp;id=1675539226863629</a><a href="https://open.oceanengine.com/labels/41/docs/1808720563583179?origin=left_nav">敏感物料授权</a>】）！</li>&#10;<li>对素材视频进行过滤的时候，<code>video&#95;ids</code>（视频ID）、<code>material&#95;ids</code>（素材ID）、<code>signatures</code>（视频的md5值）只能选择一个进行过滤！</li>&#10;<li>获取视频素材数据量在100w以内时支持全量获取</li>&#10;</ul>

 

## 请求地址

 

<a href="https://api.oceanengine.com/open_api/2/file/video/get/">https://api.oceanengine.com/open&#95;api/2/file/video/get/</a><a href="https://open.oceanengine.com/tools/visual_debug.html?docId=1696710601820172">可视化调试</a><a href="https://open.oceanengine.com/labels/7/docs/1773083358100557">SDK下载</a><a href="https://open.oceanengine.com/labels/7/docs/1847394521222599">MCP调用</a>

 

## 请求方法

 

GET

 

## Header

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>Access-Token</code></td>&#10;<td>string</td>&#10;<td>必填</td>&#10;<td>授权access&#95;token，可以通过【<a href="https://open.oceanengine.com/labels/7/docs/1696710505596940">获取Access token</a>】接口获取</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 请求参数

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>advertiser&#95;id</code></td>&#10;<td>number</td>&#10;<td>必填</td>&#10;<td>客户ID</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

<code>filtering</code>（object，否） — 视频过滤条件

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`width\` \| number \| 否 \| 视频宽度 \| \| \`height\` \| number \| 否 \| 视频高度 \| \| \`ratio\` \| float\[\] \| 否 \| 视频宽高比，示例: \[1.7, 2.5\]  
输入1.7则搜索满足宽高比介于1.65\-1.75之间的视频，即精度上下浮动0.05 \| \| \`video\_ids\` \| string\[\] \| 否 \| 视频ids，示例: \["86adb23eaa21229fc04ef932b5089bb8"\]  
数量限制：&lt;=100  
注意：video\_ids、material\_ids、signatures只能选择一个进行过滤 \| \| \`material\_ids\` \| number\[\] \| 否 \| 素材id列表，可以根据material\_ids（素材报表使用的id，一个素材唯一对应一个素材id）进行过滤  
数量限制：&lt;=100  
注意：video\_ids、material\_ids、signatures只能选择一个进行过滤 \| \| \`signatures\` \| string\[\] \| 否 \| md5值列表，可以根据素材的md5进行过滤  
数量限制：&lt;=100  
注意：video\_ids、material\_ids、signatures只能选择一个进行过滤 \| \| \`start\_time\` \| string \| 否 \| 根据视频上传时间进行过滤的起始时间，与end\_time搭配使用，格式：yyyy\-mm\-dd \| \| \`end\_time\` \| string \| 否 \| 根据视频上传时间进行过滤的截止时间，与start\_time搭配使用，格式：yyyy\-mm\-dd \| \| \`labels\` \| string\[\] \| 否 \| 视频标签。其中，投放变现方式为仅IAA的素材支持\`仅IAA\`筛选。 \| \| \`source\` \| string\[\] \| 否 \| 素材来源，详见\[【附录\-素材来源】\](https://ad.oceanengine.com/openapi/doc/index.html?id=1696710760171535)  
枚举值大小写敏感，请严格按照定义的名称传参 \| \| \`star\_author\_ids\` \| string\[\] \| 否 \| 星图达人 id 检索，仅当source = \`STAR\` 时，支持通过星图达人ID进行筛选，单次最多支持传入20 个id进行检索 \|

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>page</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>页码，默认值1</td>&#10;</tr>&#10;<tr>&#10;<td><code>page&#95;size</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>页面大小，默认值20</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 请求示例

 

### python

 

```python
# coding=utf-8
import json
import requests

from six import string_types
from six.moves.urllib.parse import urlencode, urlunparse  # noqa

ACCESS_TOKEN = "xxx"
PATH = "/open_api/2/file/video/get/"


def build_url(path, query=""):
    # type: (str, str) -> str
    """
    Build request URL
    :param path: Request path
    :param query: Querystring
    :return: Request URL
    """
    scheme, netloc = "https", "api.oceanengine.com"
    return urlunparse((scheme, netloc, path, "", query, ""))

def get(json_str):
    # type: (str) -> dict
    """
    Send GET request
    :param json_str: Args in JSON format
    :return: Response in JSON format
    """
    args = json.loads(json_str)
    query_string = urlencode({k: v if isinstance(v, string_types) else json.dumps(v) for k, v in args.items()})
    url = build_url(PATH, query_string)
    headers = {
        "Access-Token": ACCESS_TOKEN,
    }
    rsp = requests.get(url, headers=headers)
    return rsp.json()


if __name__ == '__main__':
    advertiser_id = ADVERTISER_ID
    width = WIDTH
    height = HEIGHT
    ratio_list = RATIO
    ratio = json.dumps(ratio_list)
    video_ids_list = VIDEO_IDS
    video_ids = json.dumps(video_ids_list)
    material_ids_list = MATERIAL_IDS
    material_ids = json.dumps(material_ids_list)
    signatures_list = SIGNATURES
    signatures = json.dumps(signatures_list)
    start_time = START_TIME
    end_time = END_TIME
    labels_list = LABELS
    labels = json.dumps(labels_list)
    source_list = SOURCE
    source = json.dumps(source_list)
    star_author_ids_list = STAR_AUTHOR_IDS
    star_author_ids = json.dumps(star_author_ids_list)
    page = PAGE
    page_size = PAGE_SIZE

    # Args in JSON format
    my_args = "{\"advertiser_id\": \"%s\", \"filtering\": {\"width\": \"%s\", \"height\": \"%s\", \"ratio\": %s, \"video_ids\": %s, \"material_ids\": %s, \"signatures\": %s, \"start_time\": \"%s\", \"end_time\": \"%s\", \"labels\": %s, \"source\": %s, \"star_author_ids\": %s}, \"page\": \"%s\", \"page_size\": \"%s\"}" % (advertiser_id, width, height, ratio, video_ids, material_ids, signatures, start_time, end_time, labels, source, star_author_ids, page, page_size)
    print(get(my_args))
```

 

### java

 

```java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.*;
import org.apache.http.client.utils.URIBuilder;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Demo {
    private static final String ACCESS_TOKEN = "xxx";
    private static final String PATH = "/open_api/2/file/video/get/";
    private static final ObjectMapper mapper = new ObjectMapper();

    /**
     * Build request URL
     *
     * @param path Request path
     * @return Request URL
     */
    private static String buildUrl(String path) throws URISyntaxException {
        URI uri = new URI("https", "api.oceanengine.com", path, "", "");
        return uri.toString();
    }


    /**
     * Send GET request
     *
     * @param jsonStr:Args in JSON format
     * @return Response in JSON format
     */
    private static String get(String jsonStr) throws IOException, URISyntaxException {
        OkHttpClient client = new OkHttpClient().newBuilder().build();
        URIBuilder ub = new URIBuilder(buildUrl(PATH));
        Map< String, Object > map = mapper.readValue(jsonStr, Map.class);
        map.forEach((k, v) -> {
            try {
                ub.addParameter(k, v instanceof String ? (String) v : mapper.writeValueAsString(v));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        });
        URL url = ub.build().toURL();

        Request request = new Request.Builder()
                .url(url)
                .method("GET", null)
                .addHeader("Access-Token", ACCESS_TOKEN)
                .build();
        Response response = client.newCall(request).execute();
        return response.body().string();
    }


    public static void main(String[] args) throws IOException, URISyntaxException {
        Long advertiser_id = ADVERTISER_ID;
        Long width = WIDTH;
        Long height = HEIGHT;
        List < Double > ratio_list = RATIO;
        String ratio = mapper.writeValueAsString(ratio_list);
        List < String > video_ids_list = VIDEO_IDS;
        String video_ids = mapper.writeValueAsString(video_ids_list);
        List < Long > material_ids_list = MATERIAL_IDS;
        String material_ids = mapper.writeValueAsString(material_ids_list);
        List < String > signatures_list = SIGNATURES;
        String signatures = mapper.writeValueAsString(signatures_list);
        String start_time = START_TIME;
        String end_time = END_TIME;
        List < String > labels_list = LABELS;
        String labels = mapper.writeValueAsString(labels_list);
        List < String > source_list = SOURCE;
        String source = mapper.writeValueAsString(source_list);
        List < String > star_author_ids_list = STAR_AUTHOR_IDS;
        String star_author_ids = mapper.writeValueAsString(star_author_ids_list);
        Long page = PAGE;
        Long page_size = PAGE_SIZE;

        // Args in JSON format
        String myArgs = String.format("{\"advertiser_id\": \"%s\", \"filtering\": {\"width\": \"%s\", \"height\": \"%s\", \"ratio\": %s, \"video_ids\": %s, \"material_ids\": %s, \"signatures\": %s, \"start_time\": \"%s\", \"end_time\": \"%s\", \"labels\": %s, \"source\": %s, \"star_author_ids\": %s}, \"page\": \"%s\", \"page_size\": \"%s\"}",advertiser_id, width, height, ratio, video_ids, material_ids, signatures, start_time, end_time, labels, source, star_author_ids, page, page_size);
        System.out.println(get(myArgs));
    }
}
```

 

### php

 

```php
$ACCESS_TOKEN = "xxx";
$PATH = "/open_api/2/file/video/get/";

/**
 * Build request URL
 * @param $path : Request path
 * @return string
 */
function build_url($path)
{
    return "https://api.oceanengine.com" . $path;
}

/**
 * Send GET request
 * @param $json_str : Args in JSON format
 * @return bool|string : Response in JSON format
 */
function get($json_str)
{
    global $ACCESS_TOKEN, $PATH;
    $curl = curl_init();

    $args = json_decode($json_str, true);

    /* Values of querystring is also in JSON format */
    foreach ($args as $key => $value) {
        $args[$key] = is_string($value) ? $value : json_encode($value);
    }

    $url = build_url($PATH) . "?" . http_build_query(
            $args
        );

    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => array(
            "Access-Token: " . $ACCESS_TOKEN,
        ),
    ));

    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}


$advertiser_id = ADVERTISER_ID;
$width = WIDTH;
$height = HEIGHT;
$ratio_list = RATIO;
$ratio = json_encode($ratio_list);
$video_ids_list = VIDEO_IDS;
$video_ids = json_encode($video_ids_list);
$material_ids_list = MATERIAL_IDS;
$material_ids = json_encode($material_ids_list);
$signatures_list = SIGNATURES;
$signatures = json_encode($signatures_list);
$start_time = START_TIME;
$end_time = END_TIME;
$labels_list = LABELS;
$labels = json_encode($labels_list);
$source_list = SOURCE;
$source = json_encode($source_list);
$star_author_ids_list = STAR_AUTHOR_IDS;
$star_author_ids = json_encode($star_author_ids_list);
$page = PAGE;
$page_size = PAGE_SIZE;

/* Args in JSON format */
$my_args = sprintf("{\"advertiser_id\": \"%s\", \"filtering\": {\"width\": \"%s\", \"height\": \"%s\", \"ratio\": %s, \"video_ids\": %s, \"material_ids\": %s, \"signatures\": %s, \"start_time\": \"%s\", \"end_time\": \"%s\", \"labels\": %s, \"source\": %s, \"star_author_ids\": %s}, \"page\": \"%s\", \"page_size\": \"%s\"}", $advertiser_id, $width, $height, $ratio, $video_ids, $material_ids, $signatures, $start_time, $end_time, $labels, $source, $star_author_ids, $page, $page_size);
echo get($my_args);
```

 

### curl

 

```curl
curl --get -H "Access-Token:xxx" \
--data-urlencode "advertiser_id=ADVERTISER_ID" \
--data-urlencode "filtering={\"width\": \"WIDTH\", \"height\": \"HEIGHT\", \"ratio\": [\"RATIO\"], \"video_ids\": [\"VIDEO_IDS\"], \"material_ids\": [\"MATERIAL_IDS\"], \"signatures\": [\"SIGNATURES\"], \"start_time\": \"START_TIME\", \"end_time\": \"END_TIME\", \"labels\": [\"LABELS\"], \"source\": [\"SOURCE\"], \"star_author_ids\": [\"STAR_AUTHOR_IDS\"]}" \
--data-urlencode "page=PAGE" \
--data-urlencode "page_size=PAGE_SIZE" \
https://api.oceanengine.com/open_api/2/file/video/get/
```

 

## 应答字段

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>code</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>返回码,详见 <a href="https://open.oceanengine.com/labels/7/docs/1696710760866831">【附录-返回码】</a></td>&#10;</tr>&#10;<tr>&#10;<td><code>message</code></td>&#10;<td>string</td>&#10;<td>否</td>&#10;<td>返回信息,详见 <a href="https://open.oceanengine.com/labels/7/docs/1696710760866831">【附录-返回码】</a></td>&#10;</tr>&#10;</tbody>&#10;</table>

 

<code>data</code>（json，否） — json返回值

 

<code>list</code>（object\[\]，否） — json返回值

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`id\` \| string \| 否 \| 视频ID \| \| \`size\` \| number \| 否 \| 视频大小 \| \| \`width\` \| number \| 否 \| 视频宽度 \| \| \`height\` \| number \| 否 \| 视频高度 \| \| \`url\` \| string \| 否 \| 视频地址，仅限同主体进行素材预览查看，若非同主体会返回“素材所属主体与开发者主体不一致无法获取URL”  
链接仅做预览使用，预览链接有效期为1小时 \| \| \`format\` \| string \| 否 \| 视频格式 \| \| \`signature\` \| string \| 否 \| 视频md5值 \| \| \`poster\_url\` \| string \| 否 \| 视频首帧截图，仅限同主体进行素材预览查看，若非同主体会返回“素材所属主体与开发者主体不一致无法获取URL” \| \| \`duration\` \| double \| 否 \| 视频时长 \| \| \`material\_id\` \| number \| 否 \| 素材id \| \| \`bit\_rate\` \| number \| 否 \| 码率，单位bps \| \| \`source\` \| string \| 否 \| 素材来源，详见\[【附录\-素材来源】\](https://ad.oceanengine.com/openapi/doc/index.html?id=1696710760171535)  
枚举值大小写敏感，请严格按照定义的名称传参 \| \| \`create\_time\` \| string \| 否 \| 素材的上传时间，格式："yyyy\-mm\-dd HH:MM:SS" \| \| \`filename\` \| string \| 否 \| 素材的文件名 \| \| \`labels\` \| string\[\] \| 否 \| 视频标签 \| \| \`organization\_tags\` \| string\[\] \| 否 \| \| \| \`star\_author\_id\` \| string \| 否 \| 星图达人ID \|

 

<code>page&#95;info</code>（object，否） — 分页信息

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`page\` \| number \| 否 \| 页码 \| \| \`page\_size\` \| number \| 否 \| 页面大小 \| \| \`total\_page\` \| number \| 否 \| 页面总数 \| \| \`total\_number\` \| number \| 否 \| 视频总数 \|

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>request&#95;id</code></td>&#10;<td>string</td>&#10;<td>否</td>&#10;<td>请求日志id</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 应答示例

 

```json
HTTPS/1.1 200 OK
{
    "message": "OK",
    "code": 0,
    "data": {}
}
```

 

## 业务错误码

 

仅披露当前接口高频的参数校验报错，更多常见报错详见<a href="https://open.oceanengine.com/labels/34/docs/1696710760866831">「返回码」</a>文档
