如何通过PHP、JavaScript或API对接Vimeo,在网站自动展示最新上传视频
可行实现方案
1. 申请Vimeo接口凭证
- 登录你的Vimeo账号,进入开发者后台创建应用,申请接口调用凭据
access_token,权限仅勾选视频读取权限即可 - 注意该凭据仅可在服务端代码中存储、调用,禁止暴露到前端公开代码中,避免被盗用
2. 服务端拉取最新视频ID
不要采用爬取账号管理页面的方案,该方案存在登录态校验、反爬拦截、跨域限制等多个问题,稳定性极低。直接调用Vimeo官方接口拉取账号下的最新视频信息即可,无需爬取页面。
PHP调用示例代码:
<?php // 替换为你自己的access_token $access_token = '你的Vimeo接口凭据'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.vimeo.com/me/videos?per_page=1&sort=date&direction=desc'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . $access_token, 'Accept: application/vnd.vimeo.*+json;version=3.4' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $res_data = json_decode($response, true); // 提取最新视频的ID $latest_video_id = str_replace('/videos/', '', $res_data['data'][0]['uri']); ?>
3. 渲染嵌入代码到网站页面
你可以直接在服务端渲染页面时,将拿到的最新视频ID替换到Vimeo官方嵌入代码的对应位置,直接输出到页面即可:
<iframe src="https://player.vimeo.com/video/<?php echo $latest_video_id; ?>?badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="position:absolute;top:0;left:0;width:40%;height:40%;" title="最新视频"></iframe> <script src="https://player.vimeo.com/api/player.js"></script>
如果需要前端动态更新,你可以把上述拉取视频ID的逻辑封装为站点内部的接口,前端请求该内部接口拿到最新ID后,动态替换iframe的src属性即可,不会触发跨域限制。
你之前找到的jQuery load方案无法使用的核心原因是浏览器同源策略限制,前端JS无法直接跨域请求Vimeo的页面内容,该方案从底层就不可行。
内容的提问来源于stack exchange,提问作者Maxime Kupke
相关产品推荐
相关产品推荐

