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

如何通过Box.com API获取视频文件时长?(Python开发场景)

获取Box.com视频文件时长(无需完整下载)

Box.com会对上传的视频文件进行转码生成预览,此时视频的时长信息会被存入文件的media_info元数据中,无需下载完整文件即可获取。以下是Python实现方案:

实现步骤

  1. 安装Box Python SDK
    执行命令安装官方SDK:

    pip install boxsdk
    
  2. 初始化客户端认证
    推荐使用服务账号认证(适合批量处理大量文件),替换成你在Box开发者控制台获取的认证信息。

  3. 编写获取时长的函数
    通过指定fields=media_info参数请求文件元数据,从中提取时长信息:

from boxsdk import Client, OAuth2

# 替换为你的Box应用认证信息
auth = OAuth2(
    client_id='你的客户端ID',
    client_secret='你的客户端密钥',
    access_token='你的访问令牌',
)
client = Client(auth)

def get_video_duration(file_id):
    try:
        # 请求包含media_info的文件信息
        file = client.file(file_id).get(fields='media_info')
        if hasattr(file, 'media_info') and 'duration' in file.media_info:
            # 时长单位为毫秒,转换为HH:MM:SS格式
            duration_ms = file.media_info['duration']
            duration_sec = duration_ms / 1000
            hours = int(duration_sec // 3600)
            minutes = int((duration_sec % 3600) // 60)
            seconds = int(duration_sec % 60)
            return f"{hours:02d}:{minutes:02d}:{seconds:02d}"
        return "视频未完成转码,暂无法获取时长"
    except Exception as e:
        return f"获取失败: {str(e)}"

# 批量处理示例
target_file_ids = ['文件ID1', '文件ID2', '文件ID3']
for fid in target_file_ids:
    print(f"文件{fid}时长: {get_video_duration(fid)}")

注意事项

  • 视频上传后需等待Box完成转码,否则media_info字段不会存在,可添加重试逻辑
  • 确保你的Box应用已配置读取文件元数据的权限(在开发者控制台的应用权限中开启)
  • 若使用用户OAuth授权,需确保用户已授予应用访问目标文件的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:18:36