【问题标题】:How to retrieve video URLs by video ID from my own Vimeo account如何从我自己的 Vimeo 帐户中按视频 ID 检索视频 URL
【发布时间】:2015-07-22 16:05:28
【问题描述】:

我有一个 Vimeo PRO 帐户,里面有一堆视频,我想要的是使用 PHP 来检索视频的 直接链接(因此您可以通过设置获取它的 mp4 文件 URL Vimeo 网站中的部分)提供视频 ID

我已经在 Vimeo 的开发者网站中创建了一个 Vimeo 应用程序,因此我拥有所有必需的凭据。但是 Vimeo 的文档是噩梦,你最终会从一个链接跳到另一个链接,试图找到一些东西,以便最终从你开始的地方结束......

我在 SO 中找到了 this 示例,但是当我关注它时,我最终遇到了墙,因为它使用的 API 显然不再工作了,所以为了找出如何适应它,我使用了当前的文档,这将我带到了上面提到的漏洞。

那么,谁能指出(或提供)一些真实世界的代码来完成我想要完成的工作?听起来应该很简单,但我无法弄清楚。我遇到的最大问题是我看到的所有示例都是用于访问其他视频的,但我想访问我的视频。

我一直在查看 API 的 github 页面,但我不知道如何使用我的凭据启动 API,以及如何获取提供其 ID 的视频信息,我没有看到这方面的示例。

任何帮助将不胜感激!

【问题讨论】:

    标签: php vimeo vimeo-api


    【解决方案1】:

    我在尝试获取一些真实世界的代码以学习如何使用新 API 时遇到了同样的问题。

    以下是如何获取 VIDEO URL 的示例:

    <?php
    
        require("includes/vimeo/autoload.php");
        use Vimeo\Vimeo;
    
        $client_id = 'Client Identifier';
        $client_secret = 'Client Secrets';
        $access_token = 'Token';
    
        $vimeo = new Vimeo($client_id, $client_secret, $access_token);
        $response = $vimeo->request("/videos/video_id");
        echo $response["body"]["link"];
    
    ?>  
    

    从相册的所有视频中列出一个列表,按字母顺序排序,每页 50 个(在本例中为 2 页,83 个视频):

    <?php
    
        require("includes/vimeo/autoload.php");
        use Vimeo\Vimeo;
    
        $client_id = 'Client Identifier';
        $client_secret = 'Client Secrets';
        $access_token = 'Token';
    
        $vimeo = new Vimeo($client_id, $client_secret, $access_token);
    
        /* Get the list of videos in an Album */
        $pages = 2;
        for($i = 1; $i <= $pages; $i++) {
        $format = "/me/albums/3004651/videos?per_page=50&sort=alphabetical&page=" . $i;
        $response = $vimeo->request($format);
         foreach ($response['body']['data'] as $video) {
            echo str_replace("/videos/", "", $video['uri']);
            echo "<br />";
        }
     }  
    
    ?>  
    

    更多代码示例会更好。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我们正在努力改进文档!在接下来的几个月中,他们将进行大修,以更多地基于“功能”而更少地基于“api”。

      与此同时,PRO 用户可以在每个视频响应中访问他们自己的视频文件。频道中的视频列表、您的视频列表、直接视频链接等。

      1. 从使用官方 PHP 库开始:https://github.com/vimeo/vimeo.php
      2. 获取您的访问令牌(通过重定向外部 Vimeo 用户,通过您自己帐户的开发者网站)并将其放入库中
      3. 您的视频可以通过$videos = $lib-&gt;request('/me/videos');定位
      4. $videos['body']['data'][$array_index]['files'] 找到文件信息(包含多于 url)

      现在我建议编写一个快速脚本并转储文件列表以帮助确定其余逻辑。请务必根据视频的尺寸选择文件,因为高清可能意味着 720 或 1080p。

      【讨论】:

      • 感谢您的回复。是的,确实需要对文档进行全面检查,很高兴听到你们正在努力。关于我的问题,您能否链接一些 PHP 代码示例(或在此处提供)关于我如何创建与 API 的连接以及如何进行调用以接收我的所有文件信息?
      • 为答案添加了更多详细信息。如果您还有其他问题,请联系我!
      • 终于让它工作了(特别有用的是 Marco 提到了 $vimeo->request("/videos/video_id");,这正是我所需要的。但是,我收到错误 Uncaught exception 'Vimeo\Exceptions\VimeoRequestException' with message 'Unable to complete request.[SSL certificate problem: unable to get local issuer certificate]',它指向 Vimeo 的第 154 行.php 文件。使库工作的唯一方法是在 Vimeo.php 的第 60 行设置 CURLOPT_SSL_VERIFYPEER => false,但我想这违背了使用 SSL 的目的。任何其他修复方法这个?
      • 库故障排除部分有一些详细信息:github.com/vimeo/vimeo.php#troubleshooting。它要求您设置一些 curl 选项,您可以使用以下方法分配它们:github.com/vimeo/vimeo.php/blob/master/src/Vimeo/Vimeo.php#L197。我会更新文档以使其更清晰。
      猜你喜欢
      • 2012-10-28
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2019-12-22
      • 2015-03-01
      • 2016-11-10
      • 2013-07-02
      • 1970-01-01
      相关资源
      最近更新 更多