【问题标题】:How to get thumbnail for Vimeo video using new API如何使用新 API 获取 Vimeo 视频的缩略图
【发布时间】:2019-11-24 00:46:22
【问题描述】:

我正在尝试使用 PHP 输出嵌入在我的 wordpress 网站上的 Vimeo 视频的图像缩略图。 Vimeo 视频具有域级隐私。

看起来 Vimeo 已经更新了他们的 API,因为几年前我已经尝试过这里发布的其他答案中的建议,但这些都不起作用。我浏览了他们的新 API,似乎无法理解它。

具体来说,我尝试了一些变体:

<?php
$imgid = 6271487;
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
echo $hash[0]['thumbnail_medium'];  

这总是会重新运行某种形式的致命错误。

任何有关实现此目标的最佳方式的帮助将不胜感激!

【问题讨论】:

  • 你能发布print_r($hash);的输出吗?
  • 你确定 api 不在 HTTPS 上吗?试试 https
  • 这里是 print_r($hash) 与 https "file_get_contents(vimeo.com/api/v2/video/276827365.php) 的输出:未能打开流:HTTP 请求失败!HTTP/1.1 404 Not Found in ..."
  • 你尝试过 https 吗?而不是 http?
  • "这总是返回一个致命错误的形式。" 什么形式?

标签: php wordpress vimeo vimeo-api


【解决方案1】:

有几件事:首先,路径为 /api/v2/video/ 的 API 已被弃用,取而代之的是几年前发布的“新”API。

第二:旧API只支持扩展.xml.json,返回相应格式的响应;旧 API 不支持 .php

要获取视频的缩略图,您需要使用the new API,或者如果视频是公开且可嵌入的,请使用oEmbed。使用 Vimeo PHP 库,获取视频元数据的请求如下所示:

$videoId = '6271487';
$response = $client->request('/videos/'+$videoId+'/pictures', array(), 'GET');
print_r($response);

oEmbed 请求看起来像这样(表示为 curl,注意 Vimeo 的 oEmbed 实现只会返回 jsonxml):

curl -X GET 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/6271487'

祝你好运!

【讨论】:

    【解决方案2】:

    为了完整起见,我联系了 Vimeo,他们提供了以下内容,看起来效果很好:

    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://vimeo.com/api/oembed.json?url=https://vimeo.com/VIDEO_ID",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_POSTFIELDS => "",
      CURLOPT_HTTPHEADER => array(
        "Referer: REFERER_URL"
      ),
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo $response;
    }
    

    【讨论】:

      【解决方案3】:

      您需要在 API 请求的标头中使用访问令牌。您还需要使用正确的 API 网址。

      从这里开始:https://developer.vimeo.com/api/guides/start

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 2013-08-31
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 2017-08-17
        • 2020-09-02
        • 2013-05-09
        • 2012-08-13
        相关资源
        最近更新 更多