code: def _download(self, videofile):
          
          basename = os.path.basename(videofile)
  
          subinfos = []
          for subsearcher in self.subsearcher:
              self.logger.info(
                  '{0}：开始使用 {1} 搜索字幕'.format(basename, subsearcher))
              try:
                  subinfos = subsearcher.search_subs(
                      videofile, self.languages, self.exts)
              except Exception as e:
                  err = str(e)
                  if self.debug:
                      err = traceback.format_exc()
                  self.logger.error(
                      '{}：搜索字幕发生错误： {}'.format(basename, err))
                  continue
              if subinfos:
                  break
          self.logger.info('{1}：找到 {0} 个字幕, 准备下载'.format(
              len(subinfos), basename))
          try:
              for subinfo in subinfos:
                  downloaded = subinfo.get('downloaded', False)
                  if downloaded:
                      if isinstance(subinfo['subname'], (list, tuple)):
                          self._history[videofile].extend(subinfo['subname'])
                      else:
                          self._history[videofile].append(subinfo['subname'])
                  else:
                      link = subinfo.get('link')
                      subname = subinfo.get('subname')
                      subpath = os.path.join(os.path.dirname(videofile), subname)
                      res = self.session.get(link, stream=True)
                      with open(subpath, 'wb') as fp:
                          for chunk in res.iter_content(8192):
                              fp.write(chunk)
                      self._history[videofile].append(subpath)
          except Exception as e:
              self.logger.error(str(e))
docs: 调用 SubSearcher 搜索并下载字幕