Vimeo API:获取用于下载所有视频文件的链接列表

时间:2019-05-13 18:36:23

标签: python python-2.7 vimeo vimeo-api

美好的一天。

我正在尝试从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)

1 个答案:

答案 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