我使用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);
答案 0 :(得分:2)
首先,您需要为您的帐户提供每个上传视频的YouTube广告ID列表。
您需要做的第一个请求是获取您的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] [上传]
第二个请求是获取您所拥有的视频的所有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}以获取其余的分页结果。
要使用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响应那么你应该重试 要求(经过短暂的等待)。