Youtube内容ID使用Apps脚本通过API获取所有权信息

时间:2013-09-17 23:10:30

标签: youtube google-apps-script youtube-api youtube-javascript-api

我正在尝试通过Youtube ContentID API获取有关AssetID的所有权信息。 我可以通过API Explorer看到我需要的数据,但似乎无法使用点表示法向下钻取数据。

以下是API资源管理器的输出:

{
"kind": "youtubePartner#asset",
"id": "A146063471697194",
"type": "music_video",
"ownership": {
"kind": "youtubePartner#rightsOwnership",
"general": [
  {
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
},
"ownershipEffective": {
"kind": "youtubePartner#rightsOwnership",
"general": [
{
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
}
}

访问“所有者”时,我收到的是undefined而不是列出的值。

var url2 = _.sprintf('https://www.googleapis.com/youtube/partner/v1/assets/%s?fetchMetadata=effective&fetchOwnership=effective&key=%s',id,API_KEY);
var result2 = JSON.parse(UrlFetchApp.fetch(url2, getUrlFetchOptions()).getContentText());
Logger.log(result2.ownership.general.owner);

返回undefined

我已经尝试了所有权和所有权,但它们都是未定义的。 我可以从result2.ownership.general记录数据,但不能低于该值。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方法中的[方括号]判断general是一个数组:

"general": [
  {
  "ratio": 100,
  "owner": "Indmusic",
  "type": "exclude"
}
]

尝试: Logger.log(result2.ownership.general [0] .owner);

一般来说,声明为数组后,即使数组中只有1个项目,也需要一个位置[0]。