首页 文章

Vimeo API - 获取类别和信用

提问于
浏览
0

我正在做一个从Vimeo获取视频ID的脚本,调用API并使用我们需要的所有数据填充数据库 .

我能够获得所有字段,并且使用该网址一切正常:https://api.vimeo.com/videos/

我也可以使用查询?fields = name等...只获取我需要的字段 .

但是,当我向API发出请求时(即使我使用字段查询),categories数组为空,并返回信用,如下所示:

"credits": {
    "uri": "/videos/{video_id}/credits",
    "options": [
        "GET",
        "POST"
    ],
    "total": 1
}

如果我再向另一个网址发出请求:
https://api.vimeo.com/videos/ / credits
https://api.vimeo.com/videos/ / categories

我得到了所有关于学分和类别的信息 .

问题是:我不想向API提出3个请求以获得我需要的一切 . 为什么学分和类别未包含在原始视频请求中?我有办法一次通话吗?

1 回答

  • 1

    关于类别,视频所有者或Vimeo策展人可能无法对视频进行分类 . 如果视频尚未分类,则categories数组将返回空 .

    例如,此测试视频不返回任何类别:

    curl -X GET 
      'https://api.vimeo.com/videos/76979871?fields=uri,categories' 
      -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
      -H 'Authorization: bearer [token]'
    

    此工作人员选择视频会返回多个类别和子类别:

    curl -X GET 
      'https://api.vimeo.com/videos/274849065?fields=uri,categories.uri,categories.uri,categories.name,categories.top_level' 
      -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
      -H 'Authorization: bearer [token]'
    

    关于信用,视频总是至少有一个信用(视频所有者) . 我建议添加一些逻辑,以便如果metadata.connections.credits.total大于1,则发出额外的请求以获取其他信用的用户 .

    例如,相同的员工选择视频会返回metadata.connections.credits.total = 2,因此要获得额外的信用用户,您需要向视频的信用 endpoints 发出请求 .

    curl -X GET 
      'https://api.vimeo.com/videos/274849065?fields=uri,metadata.connections.credits' 
      -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
      -H 'Authorization: bearer [token]'
    

    信用的单独 endpoints 的原因是每个用户对象可以包含大量元数据 - 如果视频信用许多用户,如果不使用fields参数,则视频响应(已经非常大)可能更大 .

    我希望这个信息帮助!

相关问题