code: def _filter_subinfo_list(cls, subinfo_list, videoinfo, languages, exts):
          
          filter_field_list = [
              'season',
              'episode',
              'resolution',
              'source',
              'video_encoding',
              'audio_encoding'
          ]
          filtered_subinfo_list = dict((f, []) for f in filter_field_list)
          
          for subinfo in subinfo_list:
              title = subinfo.get('title')
              videoinfo_ = cls._parse_videoname(title)
              last_field = None
              for field in filter_field_list:
                  if videoinfo.get(field) == videoinfo_.get(field):
                      last_field = field
                  else:
                      break
              if last_field is not None:
                  filtered_subinfo_list[last_field].append(subinfo)
          for field in filter_field_list[::-1]:
              if len(filtered_subinfo_list[field]) > 0:
                  # sort by download_count and rate
                  sorted_subinfo_list = sorted(filtered_subinfo_list[field],
                                       key=lambda item: (
                                           item['rate'], item['download_count']),
                                       reverse=True)
                  return sorted_subinfo_list[0]
          return None
docs: filter subinfo list base on:
          - season
          - episode
          - languages
          - exts
          -
          return a best matched subinfo