You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于上传时间用Python和Vimeo API获取Vimeo视频URL列表

基于上传时间筛选Vimeo视频并获取URL列表

可行性说明

完全可以通过Vimeo API基于近似上传时间筛选视频,并提取对应的视频URL列表,核心是利用API的视频列表端点搭配时间筛选参数实现。

文档对应板块

你需要查看Vimeo官方API文档中的**「List videos」端点**(归类在「Videos」核心资源下),重点关注以下参数说明:

  • filter:设置为upload_date,指定按上传时间维度筛选
  • filter_time:可选预设时间范围,比如day(最近24小时)、week(最近7天)、month(最近30天)
  • start_time/end_time:自定义时间区间(格式为ISO 8601,如2024-05-01T00:00:00Z),用于精准匹配近似上传时间

示例Python脚本

前置准备

  1. 安装Vimeo官方SDK:pip install vimeo
  2. 在Vimeo开发者平台创建应用,获取带有video.read权限的访问令牌(ACCESS_TOKEN)、客户端ID(CLIENT_ID)和客户端密钥(CLIENT_SECRET)
import vimeo
from datetime import datetime, timedelta

# 替换为你的真实凭证
CLIENT_ID = "你的客户端ID"
CLIENT_SECRET = "你的客户端密钥"
ACCESS_TOKEN = "你的访问令牌(需video.read权限)"

# 初始化客户端
client = vimeo.VimeoClient(
    token=ACCESS_TOKEN,
    key=CLIENT_ID,
    secret=CLIENT_SECRET
)

def fetch_video_urls_by_upload_period(start_dt, end_dt):
    # 转换时间为API要求的ISO 8601格式
    start_iso = start_dt.strftime("%Y-%m-%dT%H:%M:%SZ")
    end_iso = end_dt.strftime("%Y-%m-%dT%H:%M:%SZ")
    
    video_urls = []
    current_page = 1
    items_per_page = 20  # 最大可设为100
    
    while True:
        # 发起API请求
        resp = client.get(
            '/me/videos',
            params={
                'filter': 'upload_date',
                'start_time': start_iso,
                'end_time': end_iso,
                'per_page': items_per_page,
                'page': current_page
            }
        )
        
        if resp.status_code != 200:
            print(f"请求出错,状态码: {resp.status_code}")
            break
        
        resp_data = resp.json()
        videos = resp_data.get('data', [])
        
        if not videos:
            break  # 无更多视频,终止循环
        
        # 提取视频URL
        for vid in videos:
            vid_link = vid.get('link')
            if vid_link:
                video_urls.append(vid_link)
                print(f"已找到视频: {vid_link}")
        
        current_page += 1
    
    return video_urls

if __name__ == "__main__":
    # 示例:获取最近7天内上传的视频
    end_date = datetime.utcnow()
    start_date = end_date - timedelta(days=7)
    
    print(f"正在检索 {start_date} 至 {end_date} 上传的视频URL...")
    result_urls = fetch_video_urls_by_upload_period(start_date, end_date)
    
    print("\n视频URL列表:")
    for num, url in enumerate(result_urls, 1):
        print(f"{num}. {url}")

脚本说明

  • /me/videos:获取当前授权用户的视频,若需获取指定频道/用户的视频,可替换为/channels/{频道ID}/videos或/users/{用户ID}/videos
  • 分页处理:API默认分页返回结果,脚本通过循环获取所有页面的视频
  • 权限验证:确保访问令牌拥有video.read权限,否则会返回403权限错误

内容的提问来源于stack exchange,提问作者Ismale L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:55:05