Goose\Modules\Extractors\AdditionalDataExtractor::getVideos PHP Method

getVideos() private method

Pulls out videos we like
private getVideos ( ) : string[]
return string[]
    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;
    }