美好的一天。
我正在尝试从Vimeo帐户获取所有视频文件的列表(指向直接下载的链接)。
有没有一种方法可以在1 GET请求中进行?好的,如果是API的限制,则为100。
我有一个硬编码的脚本,我要发出12个GET请求(根据文档,有1100多个视频,请求受100个结果限制),然后发出超过1000个请求以接收直接链接。
是否可以通过一个向服务器发送API请求来接收从Vimeo下载视频的链接列表?
PS帐户为PRO
import vimeo
import json
import config #token is here
client = vimeo.VimeoClient(
token = config.token
)
per_page = 100
answerDataAll = []
for i in range(12):
page=i+1
getString = 'https://api.vimeo.com/me/videos?per_page='+str(per_page) + '&page=' + str(page)
dataFromServer = client.get(getString).json()['data']
answerDataAll.extend(dataFromServer)
# creating list of videos
listOfItems = []
for item in answerDataAll:
listOfItems.append( item ['uri'])
# creating list of direct links, it is the goal
listOfUrls = []
for item in listOfItems:
# isolating digits
videoID = ""
for sign in item:
if sign.isdigit():
videoID = videoID + sign
requestForDownloading = client.get ('http://player.vimeo.com/video/' + videoID + '/config').json()['request']['files']['progressive']
for item in requestForDownloading:
if item['width']==640:
urlForDownloading = item['url']
listOfUrls.append(urlForDownloading)
答案 0 :(得分:1)
每个请求最多可以获取100个视频,但要了解对/ me / videos这样的请求将返回每个视频的完整元数据,这是要解析的大量数据。当Vimeo的服务器尝试呈现您的请求时,API或您的客户端也可能会超时。
您应该使用fields参数,以便仅返回所需的下载元数据。您还应该指定排序和方向,以便确切知道视频应返回的顺序。请求uri的格式应如下:
https://api.vimeo.com/me/videos?fields=uri,name,download&page=1&per_page=100&sort=date&direction=desc
这些参数的文档位于此处:
https://developer.vimeo.com/api/common-formats#json-filter
https://developer.vimeo.com/api/common-formats#using-the-pagination-parameter
https://developer.vimeo.com/api/common-formats#using-the-sort-parameters