2013-06-26 55 views
0

我使用PHP Curl上傳視頻,效果很好。 我不斷收到這個當我嘗試刪除視頻:查找我所有的視頻,並將它們刪除youtube api

HTTP方法DELETE不受此URL支持 - 錯誤405

$headers = array("Authorization: GoogleLogin auth=".$authvalue, 
      "GData-Version: 2", 
      "Content-Type: application/atom+xml; charset=UTF-8", 
      "DELETE /feeds/api/users/".$username."/uploads/".$videoid." HTTP/1.1"); 

$curl = curl_init("http://gdata.youtube.com"); 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_TIMEOUT, 10); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_POST, 0); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); 
curl_setopt($curl, CURLOPT_REFERER, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
$b = curl_exec($curl);  
+0

大聲笑,因爲什麼時候有人想刪除*所有*他們的視頻? btw你檢查過文檔嗎? – HamZa

+0

那麼我有一個腳本,並在其中犯了一個錯誤,所以我必須刪除所有1500個視頻。而且不會手動完成。 :)它在100個不同的帳戶。是的,我有,但只有ZEND的例子,我不使用zend,但捲曲。 – jesper

+0

根據文檔,您可以通過發送HTTP DELETE頭來刪除視頻。 https://developers.google.com/youtube/2.0/reference#Response_codes_deleting_information – Fracsi

回答

2

首先,你需要的YouTube ID列表給定每個上傳的視頻你帳戶。

  1. 你需要這樣做的第一個要求是讓你 上傳的視頻播放列表的ID:

    這是一個GET請求,網址:

    "https://www.googleapis.com/youtube/v3/channels" 
    

    頁眉:

    "Content-type": "application/json", 
    "Authorization": "Bearer %s" % {YOUR ACCESS TOKEN} 
    

    和參數:

    "part": "contentDetails", 
    "mine": "true", 
    "key": {YOUR APPLICATION KEY} 
    

    從響應您要訪問:

    response_body [ 「項目」] [0] [contentDetails] [relatedPlaylists] [上傳]

  2. 第二個請求是讓所有的ID您在 上傳的播放列表中的視頻。

    爲了得到這個開始與GET請求URL:

    "https://www.googleapis.com/youtube/v3/playlistItems" 
    

    發送標題:

    "Content-type": "application/json", 
    "Authorization": "Bearer %s" % {YOUR AUTH TOKEN} 
    

    及參數:

    "part": "snippet", 
    "maxResults": {MAX 50 -- PAGINATION IS NEEDED}, 
    "playlistId": {FROM ABOVE}, 
    "key": {YOUR API KEY} 
    

    從這個要分析出來的response_body [「items」](i) 每個項目並存儲youtube id字段:

    response_body["items][i]["snippet"]["resourceId"]["videoId"] 
    

    如果響應具有response_body [的「nextPageToken」在它,你需要與參數「pageToken」設置重新發送請求:{下頁TOKEN},讓您的分頁結果的其餘部分。

  3. 要使用youtube API刪除視頻,您需要爲每個視頻製作一個 DELETE請求。使用URL:

    "https://www.googleapis.com/youtube/v3/videos" 
    

    發送2頭:

    "Content-type": "application/json", 
    "Authorization": "Bearer %s" % {YOUR VALID ACCESS TOKEN} 
    

    發送1個參數:

    "id": {THE YOUTUBE ID FOR THE VIDEO} 
    

    成功時,你要麼得到一個204刪除或404未找到。

    如果您獲得500,502,503,504響應,那麼您應該重試 請求(稍後等待)。

相關問題