def extract_subtitles(zf, lang): SUBTITLE_DEST_DIR = get_subtitle_path(lang_code=lang) SUBTITLE_ZIP_DIR = "subtitles/" ensure_dir(SUBTITLE_DEST_DIR) subtitles = (s for s in zf.namelist() if SUBTITLE_ZIP_DIR in s) for subtitle in subtitles: # files inside zipfiles may come with leading directories in their # names, like subtitles/hotdog.vtt. We'll only want the actual filename # (hotdog.vtt) when extracting as that's what KA Lite expects. subtitle_filename = os.path.basename(subtitle) subtitle_dest_path = os.path.join(SUBTITLE_DEST_DIR, subtitle_filename) subtitle_fileobj = zf.open(subtitle) with open(subtitle_dest_path, "w") as dest_fileobj: shutil.copyfileobj(subtitle_fileobj, dest_fileobj)
def get_subtitles(self, language): SUBTITLE_DEST_DIR = get_subtitle_path(lang_code=language) return glob.glob(os.path.join(SUBTITLE_DEST_DIR, "*.vtt"))