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

使用PHP实现客户端设备直接上传视频到Vimeo的可行性及示例咨询

结论

该功能完全可以实现,不需要将用户上传的视频先存储到你的业务服务器再转传到Vimeo,通过Vimeo的tus直传方案配合PHP后端鉴权即可实现。

实现逻辑

  • 你之前查阅到的PHP SDK示例是服务端本地文件上传场景的用法,和你需要的用户端直传场景适配逻辑不同
  • 核心流程为:
    1. 前端用户在网页选择本地视频文件后,先将文件大小、文件名等基础信息发送到你的PHP后端
    2. PHP后端调用Vimeo SDK生成上传授权、Vimeo端的上传地址,将相关参数返回给前端
    3. 前端直接将本地视频文件上传到上一步拿到的Vimeo上传地址,全程不会占用你的业务服务器的存储资源和上行带宽

核心参考代码

PHP后端生成上传凭证示例:

// 引入Vimeo SDK 需提前通过composer安装vimeo/vimeo-api
$vimeo = new \Vimeo\Vimeo('你的client_id', '你的client_secret', '你的access_token');

// 接收前端传递的文件参数
$fileSize = (int)$_POST['file_size'];
$fileName = trim($_POST['file_name']);

// 请求Vimeo接口生成tus上传凭证
$response = $vimeo->request('/me/videos', [
    'upload' => [
        'approach' => 'tus',
        'size' => $fileSize
    ],
    'name' => $fileName,
    // 可按需添加视频隐私、描述、分类等自定义参数
    'privacy' => [
        'view' => 'anybody'
    ]
], 'POST');

// 返回给前端的核心参数:Vimeo上传地址、视频唯一标识
$uploadData = [
    'upload_link' => $response['body']['upload']['upload_link'],
    'video_uri' => $response['body']['uri']
];
  • 前端可直接使用tus协议客户端库,拿到upload_link后直接上传文件即可,上传状态、进度都可以通过前端库直接获取。

注意事项

  • 你需要先在Vimeo开发者后台为自己的应用开启上传权限,否则会返回权限异常错误
  • 上传的视频大小不能超过你当前Vimeo账户的存储配额以及单文件大小上限
  • 视频上传完成后Vimeo会自动触发转码,转码完成后才能正常播放

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:39:03