我更新了相同的视频ID,但youtube-api v3仍显示“未找到视频”

时间:2013-06-05 06:10:41

标签: javascript json youtube-api youtube-javascript-api

我使用google js api Link1和youtube v3 api Link2 我想用js来更新我的视频,用于列出视频的js代码:

var requestOptions = {
playlistId: playlistId,
part: 'snippet',
//id: ['uY3InyzU79U','nOoHrAR50f8'],
myRating:'like',
maxResults: 9
};
if (pageToken) {
requestOptions.pageToken = pageToken;
pToken=pageToken;
}
var request = gapi.client.youtube.videos.list(requestOptions);
request.execute(somefunction());

json的回应:

[
{
"id": "gapiRpc",
"result": {
 "kind": "youtube#videoListResponse",
 "etag": "\"Wes3wj_Yozi4a9GfHnpc8qG73KI/8qQBat1N6baCDG6C3Eed_XV_sZo\"",
 "pageInfo": {
  "totalResults": 3,
  "resultsPerPage": 9
 },
 "items": [
{
 "id": "nOoHrAR50f8",
 "kind": "youtube#video",
 "etag": "\"Wes3wj_Yozi4a9GfHnpc8qG73KI/f7JZaoHeZG-CDYzXVRw2Q11Lins\"",
 "snippet": {
  "publishedAt": "2013-05-30T05:37:50.000Z",
  "channelId": "UCx0RClYCMhtsOXRlSyRcuRA",
  "title": "Webcam video from May 30, 2013 3:36 PM",
  "description": "",
  "thumbnails": {
   "default": {
    "url": "https://i3.ytimg.com/vi/nOoHrAR50f8/default.jpg"
   },
   "medium": {
    "url": "https://i3.ytimg.com/vi/nOoHrAR50f8/mqdefault.jpg"
   },
   "high": {
    "url": "https://i3.ytimg.com/vi/nOoHrAR50f8/hqdefault.jpg"
   },
   "standard": {
    "url": "https://i3.ytimg.com/vi/nOoHrAR50f8/sddefault.jpg"
   }
  },
  "channelTitle": "foretribe1",
  "tags": [
   "test",
   "webcam"
  ],
  "categoryId": "22"
 }
 }
]
}
}
]

更新视频js代码:

    var requestOptions = {
    part:'snippet',

    id: String(id),
    snippet:{ title: "ok update"}

};
    var request = gapi.client.youtube.videos.update(requestOptions);
    request.execute(nothing());

请求json:

[{"jsonrpc":"2.0",
  "id":"gapiRpc",
  "method":"youtube.videos.update",
  "params": {
  "part":"snippet",
  "id":"nOoHrAR50f8",
  "snippet":{"title":"ok update"}
   },
   "apiVersion":"v3"
}]

你可以在这里看到id与列表请求json相同,但我仍然得到错误响应:

[
{
"error": {
"code": 500,
"message": "Video not found",
"data": [
 {
 "message": "Video not found"
 }
 ]
 },
 "id": "gapiRpc"
 }
]

我也在Link2上测试,但也得到500错误。

1 个答案:

答案 0 :(得分:0)

您需要将更新包装在一个'资源中。属性:

gapi.client.youtube.videos.update({
  fields: "snippet",
  part: "snippet",
  resource: {
    id: "vid_id",
    snippet: {
      description: "updating vid",
    }
  }
});

请记住在代码段中设置其他属性(例如categoryId,tags等);否则,您将收到其他错误,否则他们将被取消。

执行此操作的最佳方法可能是首先使用gapi.client.youtube.videos.list检索视频片段并更改代码段,然后调用gapi.client.youtube.videos.update传入更改后的代码段。资源属性。