public function parse(array $tag, $content) {
        $provider = isset($tag['attributes']['default']) ? $tag['attributes']['default'] : $tag['tag'];
        $size = mb_strtolower(isset($tag['attributes']['size']) ? $tag['attributes']['size'] : 'medium');

        if (empty($this->_formats[$provider])) {
            return sprintf('(Invalid %s video code)', $provider);
        }

        $video = $this->_formats[$provider];
        $size = isset($video[$size]) ? $video[$size] : $video['medium'];

        $tag['attributes']['width'] = $size[0];
        $tag['attributes']['height'] = $size[1];
        $tag['attributes']['player'] = $video['player'];
        $tag['attributes']['url'] = str_replace(array('{id}', '{width}', '{height}'), array($content, $size[0], $size[1]), $video['path']);

        return parent::parse($tag, $content);
    }