vimeoapi:获取下载所有视频文件的链接列表

2024-04-19 22:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

再见。在

我正在尝试从Vimeo帐户获取所有视频文件(链接到直接下载)的列表。在

有没有一种方法可以在1 GET请求中完成?好的,乘以100,如果是API的限制。在

我有硬编码的脚本,其中我提出12个GET请求(1100+个视频,根据文档,请求限制在100个结果),然后提出1000多个请求以接收直接链接。在

是否有办法接收从Vimeo下载videous的链接列表,并向服务器发送一个API请求?

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 itm in requestForDownloading:
        if itm['width']==640:
            urlForDownloading = itm['url']
            listOfUrls.append(urlForDownloading)


Tags: inimportclienttokenconfigjsonfor链接
1条回答
网友
1楼 · 发布于 2024-04-19 22:46:17

每个请求最多可以获得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

相关问题 更多 >