private function getVideos()
{
$videos = [];
$nodes = $this->article()->getTopNode()->parent()->find('embed, object, iframe');
foreach ($nodes as $node) {
if ($node->hasAttribute('src')) {
$src = $node->attr('src');
} else {
$src = $node->attr('data');
}
$match = array_reduce(self::$VIDEO_PROVIDERS, function ($match, $domain) use($src) {
$srcHost = parse_url($src, PHP_URL_HOST);
$srcScheme = parse_url($src, PHP_URL_SCHEME);
return $match || preg_match('@' . $domain . '$@i', $srcHost) && in_array($srcScheme, ['http', 'https']);
});
if ($match) {
$videos[] = $src;
}
}
return $videos;
}