'Returns None if no camtasia video can be found.'

def _extract_camtasia(self, url, video_id, webpage):

    camtasia_cfg = self._search_regex(u'fo\\.addVariable\\(\\s*"csConfigFile",\\s*"([^"]+)"\\s*\\);', webpage, u'camtasia    configuration    file', default=None)
    if (camtasia_cfg is None):
        return None
    title = self._html_search_meta(u'DC.title', webpage, fatal=True)
    camtasia_url = compat_urlparse.urljoin(url, camtasia_cfg)
    camtasia_cfg = self._download_xml(camtasia_url, video_id, note=u'Downloading    camtasia    configuration', errnote=u'Failed    to    download    camtasia    configuration')
    fileset_node = camtasia_cfg.find(u'./playlist/array/fileset')
    entries = []
    for n in fileset_node.getchildren():
        url_n = n.find(u'./uri')
        if (url_n is None):
            continue
        entries.append({u'id': os.path.splitext(url_n.text.rpartition(u'/')[2])[0], u'title': (u'%s    -    %s' % (title, n.tag)), u'url': compat_urlparse.urljoin(url, url_n.text), u'duration': float_or_none(n.find(u'./duration').text)})
    return {u'_type': u'playlist', u'entries': entries, u'title': title}
