code: def save_artists(self, artists, filename="artist_lyrics", overwrite=False):
          
          if isinstance(artists, Artist):
              artists = [artists]
  
          # Create a temporary directory for lyrics
          start = time.time()
          tmp_dir = 'tmp_lyrics'
          if not os.path.isdir(tmp_dir):
              os.mkdir(tmp_dir)
              count = 0
          else:
              count = len(os.listdir(tmp_dir))
  
          # Check if file already exists
          if os.path.isfile(filename + ".json") and not overwrite:
              msg = "{f} already exists. Overwrite?\n(y/n): ".format(f=filename)
              if input(msg).lower() != "y":
                  print("Leaving file in place. Exiting.")
                  os.rmdir(tmp_dir)
                  return
  
          # Extract each artist's lyrics in json format
          all_lyrics = {'artists': []}
          for n, artist in enumerate(artists):
              if isinstance(artist, Artist):
                  all_lyrics['artists'].append({})
                  f = "tmp_{n}_{a}".format(n=count + n,
                                           a=artist.name.replace(" ", ""))
                  tmp_file = os.path.join(tmp_dir, f)
                  if self.verbose:
                      print(tmp_file)
                  all_lyrics['artists'][-1] = artist.save_lyrics(overwrite=True)
  
          # Save all of the lyrics
          with open(filename + '.json', 'w') as outfile:
              json.dump(all_lyrics, outfile)
  
          # Delete the temporary directory
          shutil.rmtree(tmp_dir)
          elapsed = (time.time() - start) / 60 / 60
          print("Time elapsed: {t} hours".format(t=elapsed))
docs: Save lyrics from multiple Artist objects as JSON object
          :param artists: List of Artist objects to save lyrics from
          :param filename: Name of output file (json)
          :param overwrite: Overwrites preexisting file if True