找到我的所有视频并将其删除youtube api

时间:2013-06-26 08:09:52

标签: php youtube youtube-api

我使用PHP Curl上传视频,效果很好。 当我尝试删除视频时,我会继续这样做:

此URL不支持Http方法DELETE - 错误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);    

1 个答案:

答案 0 :(得分: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 您上传的播放列表。

    要以URL的GET请求开始:

    "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”重新发送请求:{NEXT PAGE TOKEN}以获取其余的分页结果。

  3. 要使用youtube API删除视频,您需要制作一个视频 删除每个视频的请求。使用网址:

    "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响应那么你应该重试 要求(经过短暂的等待)。