我有一个大约5000个视频的数据库,我注意到其中一些现在已被删除..所以我决定写一个PHP脚本来修复批量检查这个.. 从下面的各种来源是我在这里基于大多数答案实现的代码,但它没有给出正确的结果。 IT为3/4视频提供了403标题,但实际上超过90%正在运行..我什么都错过了?
foreach ($video as $cat) {
$str = explode("=",$cat->videourl);
$headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $str[1]);
if (!strpos($headers[0], '200')) {
print_r($headers[0].'<br>');
$i=$i+1;
print_r("Unpublish".$cat->id. PHP_EOL);
}
else{
print_r("publish".$cat->id. PHP_EOL);
}
}
我在这里打印标题进行调试,对大多数人来说,HTTP / 1.0 403 Forbidden 编辑::我已经检查过视频是否正确传递(因此字符串处理没有问题)
答案 0 :(得分:0)
对于任何想要实现这一目标的人来说,这里是代码..如果能为你工作,我会非常感激,因为我花了好几个小时让它为新的api工作
$headers = checkYoutubeId ($str[1]);
if ($headers == false) {
$i=$i+1;
$db->query('UPDATE `ckf_hdflv_upload` SET `published`="0" Where `id`='.$cat->id);
print_r("Unpublished".$cat->id. PHP_EOL);
}
else{
$db->query('UPDATE `ckf_hdflv_upload` SET `published`="1" Where `id`='.$cat->id);
}
}
}
echo('done'.$i);
function checkYoutubeId($id) {
if (!$data = @file_get_contents("http://gdata.youtube.com/feeds/api/videos/".$id)) return false;
if ($data == "Video not found") return false;
if ($data == "Private video") return false;
return true;
}