code: def list_subtitles_provider(self, provider, video, languages):
          
          # check video validity
          if not provider_manager[provider].plugin.check(video):
              logger.info('Skipping provider %r: not a valid video', provider)
              return []
  
          # check supported languages
          provider_languages = provider_manager[provider].plugin.languages & languages
          if not provider_languages:
              logger.info('Skipping provider %r: no language to search for', provider)
              return []
  
          # list subtitles
          logger.info('Listing subtitles with provider %r and languages %r', provider, provider_languages)
          try:
              return self[provider].list_subtitles(video, provider_languages)
          except (requests.Timeout, socket.timeout):
              logger.error('Provider %r timed out', provider)
          except:
              logger.exception('Unexpected error in provider %r', provider)
docs: List subtitles with a single provider.
  
          The video and languages are checked against the provider.
  
          :param str provider: name of the provider.
          :param video: video to list subtitles for.
          :type video: :class:`~subliminal.video.Video`
          :param languages: languages to search for.
          :type languages: set of :class:`~babelfish.language.Language`
          :return: found subtitles.
          :rtype: list of :class:`~subliminal.subtitle.Subtitle` or None