def get_transcript_language_parameters(lang_code): """ Get parameters of a transcript's language, having checked on consistency with settings. Arguments: lang_code (str): Raw language code of a transcript, fetched from the video platform. Returns: lang_code (str): Pre-configured language code, e.g. 'br' lang_label (str): Pre-configured language label, e.g. 'Breton' """ # Delete region subtags # Reference: https://github.com/edx/edx-platform/blob/release-2017-02-16-12.24/lms/envs/common.py#L861 lang_code = lang_code[0:2] # Check on consistency with the pre-configured ALL_LANGUAGES if lang_code not in [ language[0] for language in settings.ALL_LANGUAGES ]: raise VideoXBlockException( _('Not all the languages of transcripts fetched from video platform are consistent ' 'with the pre-configured ALL_LANGUAGES')) lang_label = [ language[1] for language in settings.ALL_LANGUAGES if language[0] == lang_code ][0] return lang_code, lang_label
def create_credentials(self): """ Mock `get_client_credentials` returned value. """ if self.event == 'auth_failed': self.side_effect = VideoXBlockException( self.ordered_results[self.event]['error_message']) self.return_value = (self.ordered_results[self.event]['client_secret'], self.ordered_results[self.event]['client_id'], self.ordered_results[self.event]['error_message']) return self
def download_default_transcript(self, url=None, language_code=None): # pylint: disable=unused-argument """ Download default transcript from a video platform API in WebVVT format. Arguments: url (str): Transcript download url. Returns: sub (unicode): Transcripts formatted per WebVTT format https://w3c.github.io/webvtt/ """ log.debug("BC: downloading default transcript from url:{}".format(url)) if url is None: raise VideoXBlockException(_('`url` parameter is required.')) data = requests.get(url) return remove_escaping(data.content)
def download_default_transcript(self, url=None, language_code=None): # pylint: disable=unused-argument """ Download default transcript from Youtube API and format it to WebVTT-like unicode. Reference to `get_transcripts_from_youtube()`: https://github.com/edx/edx-platform/blob/ecc3473d36b3c7a360e260f8962e21cb01eb1c39/common/lib/xmodule/xmodule/video_module/transcripts_utils.py#L122 """ if url is None: raise VideoXBlockException(_('`url` parameter is required.')) utf8_parser = etree.XMLParser(encoding='utf-8') data = requests.get(url) xmltree = etree.fromstring(data.content, parser=utf8_parser) sub = [ self.format_transcript_element(element, i) for i, element in enumerate(xmltree, 1) ] sub = "".join(sub) sub = "WEBVTT\n\n" + str(sub) if "WEBVTT" not in sub else str(sub) return sub