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

Php 找到我的所有视频并将其删除youtube api,php,youtube,youtube-api,Php,Youtube,Youtube Api,我使用PHPCURL上传视频,效果非常好。 当我试图删除一段视频时,我总是会遇到这样的问题: 此URL不支持Http方法删除-错误405 $headers = array("Authorization: GoogleLogin auth=".$authvalue, "GData-Version: 2", "Content-Type: application/atom+xml; charset=UTF-8", "DELE

我使用PHPCURL上传视频,效果非常好。 当我试图删除一段视频时,我总是会遇到这样的问题:

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

首先,您需要一个youtube ID列表,用于给定帐户的每个上传视频

  • 您需要为此提出的第一个请求是获取您的 上传的视频播放列表:

    这是对url的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}
    
    "part": "snippet",
    "maxResults": {MAX 50 -- PAGINATION IS NEEDED},
    "playlistId": {FROM ABOVE},
    "key": {YOUR API KEY}
    
    从要访问的响应中:

    响应_body[“items”][0][contentDetails][relatedPlaylists][上传]

  • 第二个请求是获取所有视频的ID 上传播放列表

    要获取此信息,请从获取URL请求开始:

    "https://www.googleapis.com/youtube/v3/playlistItems"
    
    发送标题:

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

    "part": "contentDetails",
    "mine": "true",
    "key": {YOUR APPLICATION KEY}
    
    "part": "snippet",
    "maxResults": {MAX 50 -- PAGINATION IS NEEDED},
    "playlistId": {FROM ABOVE},
    "key": {YOUR API KEY}
    
    您希望从此解析出响应_body[“items”](i) 每个项目和存储youtube id字段:

    response_body["items][i]["snippet"]["resourceId"]["videoId"]
    
    如果响应中包含response_body[“nextPageToken”],则需要使用参数“pageToken”:{NEXT PAGE TOKEN}重新发送请求,以获取其余分页结果

  • 要使用youtube API删除视频,您需要制作一个 删除每个视频的请求。使用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响应,则应重试 请求(在短暂等待后)


  • lol从什么时候开始有人想删除他们所有的视频?顺便说一句,你检查过文档了吗?嗯,我有一个脚本,里面有一个错误,所以我必须删除所有1500个视频。并且不会手动执行此操作。:)有100个不同的账户。是的,我有,但只有ZEND的例子,我没有使用ZEND,但是使用curl。你可以根据文档发送HTTP delete头来删除视频。