1

我有以下代码,用于将 YouTube 中的视频信息加载到我的网站上:

try {
    $yt = new Zend_Gdata_YouTube();
    $videoEntry = $yt->getVideoEntry($video_path);
    $duration = $videoEntry->getVideoDuration();
} catch (Zend_Gdata_App_HttpException $e) {
    //do something with the error
}

我遇到的问题是,到目前为止,我已经检测到 2 个将执行 catch 块的场景 - 如果视频已被删除,或者是否存在某种通信错误。

如果视频已被删除,我想将其从本地列表中删除。我怎么知道我遇到了哪个错误 - 我一直在寻找错误代码的描述,但找不到这个,尽管我确信其他人之前遇到过这个问题。

4

1 回答 1

2

如果您要查找的视频 ID 已删除或从未存在,则请求的 HTTP 状态代码将为 400,响应的正文为Invalid id. 您可以获取底层响应对象来确定请求是否无效,或者请求是否完全失败。

try {
    $yt         = new Zend_Gdata_YouTube();
    $videoEntry = $yt->getVideoEntry($video_path);
    $duration   = $videoEntry->getVideoDuration();
} catch (Zend_Gdata_App_HttpException $e) {
    $response = $e->getResponse();

    if ($response !== null) {
        if ($response->getStatus() == 400 && $response->getBody() == 'Invalid id') {
            // the video requested does not exist or was deleted
        } else {
            // some other error
        }
    }
}
于 2012-11-05T22:08:47.927 回答