2012-11-05 25 views
1

我有下面的代碼是用來加載來自YouTube的視頻信息到我的網站:Zend_Gdata_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塊將被執行 - 如果視頻已被刪除,或者存在某種通信錯誤。

如果視頻已被刪除,我想從我的本地列表中刪除它。我怎麼知道我得到了哪個錯誤 - 我一直在尋找錯誤代碼的描述,並且找不到它,儘管我確信其他人以前遇到過這個問題。

回答

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 
     } 
    } 
} 
+0

謝謝!非常感激。 – Elie