我正在编写一个脚本,该脚本从Vimeo获取视频ID,调用API并用我们需要的所有数据填充数据库。
我能够使用该网址获取所有字段,并且一切运行正常: https://api.vimeo.com/videos/ {video_id}
我还可以使用查询?fields = name等...仅获取我需要的字段。
但是,当我向API发出请求时(即使我使用字段查询),category数组也为空,并且按以下方式返还功劳:
"credits": {
"uri": "/videos/{video_id}/credits",
"options": [
"GET",
"POST"
],
"total": 1
}
如果我再次提出要求,请访问那些网址:
https://api.vimeo.com/videos/ {video_id} /积分
https://api.vimeo.com/videos/ {video_id} /类别
我获得了我需要的有关学分和类别的所有信息。
问题是:我不想向API发出3请求以获取我需要的一切。为什么原始视频请求中不包含功劳和类别? 我可以用一个电话做到这一点吗?
答案 0 :(得分: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,则提出附加请求以获取其他信用用户。
例如,同样的“员工精选”视频返回的metas.connections.credits.total = 2,因此,要获得更多的信用用户,您需要向视频的信用端点发出请求。
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]'
使用单独的功劳分配端点的原因是,每个用户对象都可以包含很多元数据-如果视频功劳了许多用户,则如果fields参数为,则视频响应(已经很大)会更大。没用。
希望此信息对您有所帮助!