Youtube ContentID 使用 AppsScript 通过 API 获取所有权信息



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

以下是 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"
}
]
}
}

访问"所有者"时,我收到未定义而不是列出的值。

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);

返回未定义

我尝试过所有权和所有权,它们都是未定义的。我可以从result2.ownership.general记录数据,但除此之外没有任何东西。

你可以通过以下 [括号] 判断 general 是一个数组:

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

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

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

最新更新