如何检查 YouTube 视频是否 blocked/restricted/deleted

How do I check if a youtube video is blocked/restricted/deleted

我有一个存储用户播放列表的网站,但有时曾经可用的视频由于侵犯版权而被删除,或者被删除。 我希望我的网站在发生这种情况时自动检测,以便删除或替换视频。 我做了很多研究试图弄清楚这一点,但没有任何效果。 例如,youtube 视频 ID IcmTyiVkhGk(由于版权原因不可用)的 api 数据请求没有 yt:state 变量(表明它是受限的),在访问控制下,它没有说限制或类似的东西。您如何检查此类数据?

http://gdata.youtube.com/feeds/api/videos/IcmTyiVkhGk?v=2&prettyprint=true

基本上是用这个来获取数据,但是我认为没有相关数据。

该站点能够检测到该站点可用的区域: http://polsy.org.uk/stuff/ytrestrict.cgi?ytid=IcmTyiVkhGk 有谁知道这是怎么回事?

使用 v3 API。 https://developers.google.com/youtube/v3/docs/videos/list

您的问题分为两部分。

  1. 要检查视频是否已从 YouTube 中删除,请发送带有视频 ID 的 videos:list 请求。对于单个 ID,您可以只检查 totalResults 是否为 0。如果一次检查多个视频 ID,循环查看项目响应以查看 YouTube 上仍然存在哪些视频 ID。

示例:

GET https://www.googleapis.com/youtube/v3/videos?part=id&id=abcdefghijklm&key={YOUR_API_KEY}

{
 "kind": "youtube#videoListResponse",
 "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/qFRkUhSdCF83BrjXm7uub8slGsk\"",
 "pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 0
 },
 "items": [
 ]
}
  1. 要检查访问限制,请发送 videos:list contentDetails 请求。

示例:

GET https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=IcmTyiVkhGk&key={YOUR_API_KEY}

在项目[]下你会检查

 "regionRestriction": {
 "blocked": [
  "QA",
  "AW",
  "IN",
  etc.
  ]
  }

我还有一个网站可以分享您的一些功能。我使用 php 代码加载视频的 youtube 页面,然后解析源代码以找到关键字 "Sorry about that." 我可以在几秒钟内检查大约 1.1k 个视频。如果你的调用时间正确,它不足以通过 DDOS 攻击。

但是这种方法不检测区域限制。