code: def get_metadata(audio_filepaths):
    
    artist, album, has_embedded_album_art = None, None, None
    for audio_filepath in audio_filepaths:
      try:
        mf = mutagen.File(audio_filepath)
      except Exception:
        continue
      if mf is None:
        continue
  
      # artist
      for key in ("albumartist", "artist",  # ogg
                  "TPE1", "TPE2",  # mp3
                  "aART", "\xa9ART"):  # mp4
        try:
          val = mf.get(key, None)
        except ValueError:
          val = None
        if val is not None:
          artist = val[-1]
          break
  
      # album
      for key in ("_album", "album",  # ogg
                  "TALB",  # mp3
                  "\xa9alb"):  # mp4
        try:
          val = mf.get(key, None)
        except ValueError:
          val = None
        if val is not None:
          album = val[-1]
          break
  
      if artist and album:
        # album art
        if isinstance(mf, mutagen.ogg.OggFileType):
          has_embedded_album_art = "metadata_block_picture" in mf
        elif isinstance(mf, mutagen.mp3.MP3):
          has_embedded_album_art = any(map(operator.methodcaller("startswith", "APIC:"), mf.keys()))
        elif isinstance(mf, mutagen.mp4.MP4):
          has_embedded_album_art = "covr" in mf
  
        # stop at the first file that succeeds (for performance)
        break
  
    return artist, album, has_embedded_album_art
docs: Return a tuple of album, artist, has_embedded_album_art from a list of audio files.