def METHOD_NAME(self, url):
    mobj = self._match_valid_url(url)
    video_id = mobj.group('id')
    item = self._download_xml(
        'http://rd3.videos.sapo.pt/%s/rss2' % video_id, video_id).find('./channel/item')
    title = item.find('./title').text
    description = item.find('./{http://videos.sapo.pt/mrss/}synopse').text
    thumbnail = item.find('./{http://search.yahoo.com/mrss/}content').get('url')
    duration = parse_duration(item.find('./{http://videos.sapo.pt/mrss/}time').text)
    uploader = item.find('./{http://videos.sapo.pt/mrss/}author').text
    upload_date = unified_strdate(item.find('./pubDate').text)
    view_count = int(item.find('./{http://videos.sapo.pt/mrss/}views').text)
    comment_count = int(item.find('./{http://videos.sapo.pt/mrss/}comment_count').text)
    tags = item.find('./{http://videos.sapo.pt/mrss/}tags').text
    categories = tags.split() if tags else []
    age_limit = 18 if item.find('./{http://videos.sapo.pt/mrss/}m18').text == 'true' else 0
    video_url = item.find('./{http://videos.sapo.pt/mrss/}videoFile').text
    video_size = item.find('./{http://videos.sapo.pt/mrss/}videoSize').text.split('x')
    formats = [{
        'url': video_url,
        'ext': 'mp4',
        'format_id': 'sd',
        'width': int(video_size[0]),
        'height': int(video_size[1]),
    }]
    if item.find('./{http://videos.sapo.pt/mrss/}HD').text == 'true':
        formats.append({
            'url': re.sub(r'/mov/1$', '/mov/39', video_url),
            'ext': 'mp4',
            'format_id': 'hd',
            'width': 1280,
            'height': 720,
        })
    return {
        'id': video_id,
        'title': title,
        'description': description,
        'thumbnail': thumbnail,
        'duration': duration,
        'uploader': uploader,
        'upload_date': upload_date,
        'view_count': view_count,
        'comment_count': comment_count,
        'categories': categories,
        'age_limit': age_limit,
        'formats': formats,
    }