发现Instagram视频发生了奇怪的事情。
我在localhost上构建一个社交网站,从其他社交源中提取用户数据并显示它。其中一个外部网站是Instagram。
直到昨天一切正常,照片和视频都显示完美,但从昨天开始,之前存储在我的数据库中的所有直接视频网址(.mp4)现在都无效,导致播放器mime类型错误。 / p>
过去48小时内删除的所有新视频仍然正常运作。
这个标准的Instagram练习是否每隔几天更改一次媒体文件网址,或者这是他们刚刚开始做的事情?
这就是我使用旧的?__a=1
技巧而不是使用他们的API来压缩用户数据的方式:
$url = 'https://www.instagram.com/'.$instaName.'/?__a=1';
我抓住了这样的视频帖子的内容网址:
if ($node->is_video == true) {
$video = scrapeVideoMetaTag($content_url);
$image = "";
} else {
$video = "";
}
这是刮取实际.mp4媒体文件URL的元标记的功能:
function scrapeVideoMetaTag($url)
{
$site_html = file_get_contents($url);
$matches = null;
preg_match_all('~<\s*meta\s+property="(og:[^"]+)"\s+content="([^"]*)~i', $site_html,$matches);
$ogtags = array();
for($i=0;$i<count($matches[1]);$i++) {
$ogtags[$matches[1][$i]]=$matches[2][$i];
}
if($ogtags) {
if ($ogtags['og:video:secure_url']) {
$video = $ogtags['og:video:secure_url'];
return $video;
}
}
$video = "";
return $video;
}
之后我将它保存到我的数据库中。
这是否意味着Instagram已将此锁定,或者我现在只是注意到这一点,这是他们已经做了一段时间的事情了?