可能重复:
检查Youtube和Vimeo剪辑是否有效
我有一个链接到很多YouTube视频的网站,但很多时候这些视频被用户或YouTube删除.这意味着我的网站上有很多死视频,并且手动检查所有这些都是一场噩梦.
所以我正在寻找一种方法来检查YouTube视频是否仍然有效使用PHP.我已经看到很多线程与人们提出相同的问题,但我无法让任何已发布的解决方案起作用.
使用youtube V3 API检查视频是否可访问.有关详细信息,请参阅以下文档
基本上,使用您的API密钥发出GET请求
GET https://www.googleapis.com/youtube/v3/videos?part=id&id={VIDEO_ID}&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
您将收到如下样本回复:
Run Code Online (Sandbox Code Playgroud){ "kind": "youtube#videoListResponse", "etag": "\"sZ5p5Mo8dPpfIzLYQBF8QIQJym0/N6KWrfNRyfPOarHfhvNS7j4jfxM\"", "pageInfo": { "totalResults": 0, "resultsPerPage": 0 }, "items": [] }*
如果您获得items响应中的空数组,则无法访问该视频.
以下说明API的V2,现在已弃用.(https://developers.google.com/youtube/2.0/developers_guide_protocol_video_entries).
注意:截至2014年3月4日,YouTube Data API(v2)已正式弃用.有关详细信息,请参阅我们的弃用政策.请使用YouTube Data API(v3)进行新集成,并将仍在使用v2 API的应用程序迁移到v3 API.
向此URL发送请求,以验证是否存在视频
http://gdata.youtube.com/feeds/api/videos/<videoid>
Run Code Online (Sandbox Code Playgroud)
这是它的用法.
$headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $videoId);
if (!strpos($headers[0], '200')) {
echo "The YouTube video you entered does not exist";
return false;
}
Run Code Online (Sandbox Code Playgroud)
您只需检查返回值即可 http://gdata.youtube.com/feeds/api/videos/$id
你回来比如说
所以最简单的检查是:
if (file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$videoId) == 'Video not found') {
echo 'Video deleted';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6539 次 |
| 最近记录: |