【问题标题】:Check if a video is available检查视频是否可用
【发布时间】:2015-10-06 08:26:51
【问题描述】:

我正在开发 YouTube 数据 API v3。

我想知道如何检查视频是否已被 YouTube 禁用或删除。

例如: https://www.youtube.com/watch?v=dHt_6Z2OaZI

https://www.googleapis.com/youtube/v3/videos?id=dHt_6Z2OaZI
&part=snippet,contentDetails,player,statistics,status
&key=[mykey]

我无法从 API 中得到任何想法。

{
"kind": "youtube#videoListResponse",
"etag": "\"iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/Y7032cCbQSAurzEiVMjdFYzamtg\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": "\"iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/2FORRsUGqbS1nvQK3AR1PfmiN7I\"",
"id": "dHt_6Z2OaZI",
"snippet": {},
"contentDetails": {
"duration": "PT1H31M1S",
"dimension": "2d",
"definition": "sd",
"caption": "false",
"licensedContent": false
},
"status": {
"uploadStatus": "processed",
"privacyStatus": "public",
"license": "youtube",
"embeddable": true,
"publicStatsViewable": true
},
"statistics": {
"viewCount": "301",
"likeCount": "0",
"dislikeCount": "0",
"favoriteCount": "0",
"commentCount": "0"
},
"player": {
"embedHtml": "<iframe width=\"640\" height=\"360\" src=\"//www.youtube.com/embed/dHt_6Z2OaZI\" frameborder=\"0\" allowfullscreen></iframe>"
}
}
]
}

我试过了

https://www.googleapis.com/youtube/v3/videos
?part=id
&key=[mykey]
&id=dHt_6Z2OaZI

但它不起作用,仍然给出结果。

【问题讨论】:

标签: youtube youtube-api youtube-data-api


【解决方案1】:

您发布的结果中有一个status 字段。我认为与您想要的最密切相关的子字段是uploadStatus。当我对该视频执行 API 调用时,我得到:

"status": {
    "uploadStatus": "rejected",
    "rejectionReason": "uploaderAccountSuspended",
    "privacyStatus": "public",
    "license": "youtube",
    "embeddable": true,
    "publicStatsViewable": true
   }

来自documentation,这里是uploadStatus 的可能值:

  • 已删除
  • 失败
  • 已处理
  • 拒绝
  • 已上传

视频成功上传和处理后,用户应该可以访问(假设它也是公开的)。因此,您应该只检查状态是“拒绝”还是“已删除”。

【讨论】:

  • 恐怕这不适用于已删除的视频。这是 api 针对已删除视频返回的内容: { "kind": "youtube#videoListResponse", "etag": "\"iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/q9wh51deRpP1b7X8Nc3D-bdBxqs\"", "pageInfo": { "totalResults": 0, " resultsPerPage": 0 }, "items": [ ] }
【解决方案2】:

如果有人仍然对此问题感兴趣:

现在 Item 的 ContentDetails 包括 RegionRestriction 对象。您必须对其进行分析以查看视频是否可用 - 以下是详细信息:documentation

通常,如果 RegionRestriction.Blocked 包含您正在观看的国家/地区,则您无法观看该视频(类似地,您可以分析 RegionRestriction.Allowed)。

【讨论】:

  • 好的,但是如何检查视频是否被作者删除?
猜你喜欢
  • 2021-03-13
  • 2020-07-11
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 2017-11-23
  • 2022-06-28
相关资源
最近更新 更多