def METHOD_NAME(self, url, base_url, video_id, url_type):
    webpage = self._download_webpage(url, video_id, note=f'Downloading {url_type} webpage')
    try:
        form = self._form_hidden_inputs('password_form', webpage)
    except ExtractorError:
        return webpage
    password = self.get_param('videopassword')
    if not password:
        raise ExtractorError(
            'This video is protected by a passcode, use the --video-password option', expected=True)
    is_meeting = form.get('useWhichPasswd') == 'meeting'
    validation = self._download_json(
        base_url + 'rec/validate%s_passwd' % ('_meet' if is_meeting else ''),
        video_id, 'Validating passcode', 'Wrong passcode', data=urlencode_postdata({
            'id': form[('meet' if is_meeting else 'file') + 'Id'],
            'passwd': password,
            'action': form.get('action'),
        }))
    if not validation.get('status'):
        raise ExtractorError(validation['errorMessage'], expected=True)
    return self._download_webpage(url, video_id, note=f'Re-downloading {url_type} webpage')