验证youtube api v3是否存在视频

use*_*911 6 php youtube api video youtube-api

我正在尝试使用youtube api V3来验证youtube视频(带有id_video)是否有效/存在.这就是我做的(y2oy7b4SFgE是我测试的视频的ID):

$file_headers = @get_headers('https://www.googleapis.com/youtube/v3/videos?part=id&id=y2oy7b4SFgE&key=ma_clé_api_publique');
   //exit(var_dump($file_headers));
if ($file_headers[0] == 'HTTP/1.0 200 OK') {
  $resultat = $file_headers[0].'Goood'
} else {
  $resultat = $file_headers[0].'PasGoood'
}
Run Code Online (Sandbox Code Playgroud)

但我有一个"代码":403,"消息":"您的API密钥上配置了每IP或每个Referer限制,但请求与这些限制不符.请使用Google Developers Console更新您的API如果允许来自此IP或引用者的请求,则为密钥配置."

当没有参考者时,它运作良好.但是当我放一个,我尝试使用我的网站名称或我的vps服务器的IP,每次它都没有.

Har*_*y B 26

我有两种方法可以使用YouTube视频ID检查视频是否存在.

最简单的是使用oembed网址作为视频.这不需要身份验证,并在视频无效时返回404标头.你真的应该用curl做这个,因为取决于你的设置file_get_contents可能不适合你...

$headers = get_headers('https://www.youtube.com/oembed?format=json&url=http://www.youtube.com/watch?v=' . $videoID);

if(is_array($headers) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$headers[0]) : false){
    // video exists
} else {
    // video does not exist
}
Run Code Online (Sandbox Code Playgroud)

第二种是使用最近发布的数据api V3.要使用此方法,您需要在开发人员控制台中生成api密钥.

$response = file_get__contents('https://www.googleapis.com/youtube/v3/videos?part=id&id=' . $videoID . '&key=' . $apiPublicKey);
$json = json_decode($response);

if (sizeof($json['items'])) {
    // video exists
} else {
    // video does not exist
}
Run Code Online (Sandbox Code Playgroud)


Sha*_*baz 11

在PHP中,验证视频是否存在非常简单.使用PHP函数file_get_contents检查是否存在视频.

general Video URL to check a video would be
$video_url = https://www.youtube.com/oembed?format=json&url=http://www.youtube.com/watch?v=VideoId

$video_url = @file_get_contents('https://www.youtube.com/oembed?format=json&url=http://www.youtube.com/watch?v=Xu4MTv5wgys');
if($video_url) {
    echo('video exists');
} else {

    echo('video does not exists');

};
Run Code Online (Sandbox Code Playgroud)


roo*_*t66 0

你找到解决办法了吗?

官方的方式是使用videos.list并提交视频id。文档提到了以下错误,但从未抛出:

“notFound (404) videoNotFound 找不到您尝试检索的视频。请检查请求的 id 参数值以确保其正确。”

https://developers.google.com/youtube/v3/docs/videos/list?hl=de