【问题标题】:get YouTube video length returns wrong value获取 YouTube 视频长度返回错误值
【发布时间】:2015-07-25 20:11:45
【问题描述】:

我正在使用此功能以秒为单位获取 YouTube 视频长度

function getDuration($url){
parse_str(parse_url($url,PHP_URL_QUERY),$arr);
$video_id=$arr['v'];
$data=@file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$video_id.'?v=2&alt=jsonc');
if (false===$data) return false;
$obj=json_decode($data);
return $obj->data->duration;
}

但是所有视频都返回持续时间 236,就像这个视频一样,它的持续时间是 42 分 45 秒,这是示例

http://gdata.youtube.com/feeds/api/videos/gXGn06tuvZM?v=2&alt=jsonc

这是我在打开 youtube 网站时注意到的功能或 youtube api 有问题吗?所有视频的持续时间都已如图所示

【问题讨论】:

    标签: php api video youtube youtube-api


    【解决方案1】:

    GData API 已停用,无论您发送什么请求,都只会返回“设备不受支持”的视频(我猜是 236 秒)。您需要切换到 API 的 V3。

    【讨论】:

      【解决方案2】:

      按照hete的步骤创建一个新应用并获得一个新的API密钥google documentation然后使用这个答案stackoverflow question然后将持续时间拆分为一个数组并检索值很简单

      https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails
      &key={YOUR_API_KEY}
      

      【讨论】:

        猜你喜欢
        • 2022-11-07
        • 1970-01-01
        • 2012-11-02
        • 2013-06-18
        • 2011-12-08
        • 2011-09-07
        • 2019-08-05
        • 2018-06-28
        • 2017-10-19
        相关资源
        最近更新 更多