0

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

我能够获取所有字段,并且使用该 URL 一切正常: https : //api.vimeo.com/videos/ {video_id}

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

但是当我向 API 发出该请求时(即使我使用字段查询),类别数组为空,并且积分返回如下:

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

如果我提出另一个请求,这些网址:
https://api.vimeo.com/videos/ {video_id}/credits
https://api.vimeo.com/videos/ {video_id}/categories

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

问题是:我不想向 API 发出 3 个请求来获得我需要的一切。为什么原始视频请求中未包含演职员表和类别?有没有办法我可以通过一个电话来做到这一点?

4

1 回答 1

1

关于类别,视频可能不会被视频所有者或 Vimeo 策展人分类。当视频尚未分类时,类别数组将返回空。

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

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,则发出额外的请求以获取其他信用用户。

例如,同样的 Staff Picked 视频返回 metadata.connections.credits.total=2,因此要获得额外的信用用户,您需要向视频的 credits 端点发出请求。

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]' 

使用单独端点的原因是每个用户对象可以包含大量元数据——如果一个视频有很多用户,如果不使用字段参数,视频响应(已经相当大)可能会更大.

我希望这个信息帮助!

于 2018-09-20T16:09:28.197 回答