code: def get_lyrics(song, l_sources=None):
      
      if l_sources is None:
          l_sources = sources
  
      if song.lyrics and not CONFIG['overwrite']:
          logger.debug('%s already has embedded lyrics', song)
          return None
  
      runtimes = {}
      source = None
      for l_source in l_sources:
          start = time.time()
          try:
              lyrics = l_source(song)
          except (HTTPError, HTTPException, URLError, ConnectionError):
              lyrics = ''
  
          runtimes[l_source] = time.time() - start
          if lyrics != '':
              source = l_source
              break
  
      if lyrics != '':
          logger.info('++ %s: Found lyrics for %s\n', source.__name__, song)
          song.lyrics = lyrics
      else:
          logger.info("Couldn't find lyrics for %s\n", song)
          source = None
  
      return Result(song, source, runtimes)
docs: Searches for lyrics of a single song and returns a Result object with the
      various stats collected in the process.
  
      The optional parameter 'sources' specifies an alternative list of sources.
      If not present, the main list will be used.