如何检查 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
您的问题分为两部分。
- 要检查视频是否已从 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": [
]
}
- 要检查访问限制,请发送 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 攻击。
但是这种方法不检测区域限制。
我有一个存储用户播放列表的网站,但有时曾经可用的视频由于侵犯版权而被删除,或者被删除。 我希望我的网站在发生这种情况时自动检测,以便删除或替换视频。 我做了很多研究试图弄清楚这一点,但没有任何效果。 例如,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
您的问题分为两部分。
- 要检查视频是否已从 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": [
]
}
- 要检查访问限制,请发送 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 攻击。
但是这种方法不检测区域限制。