def METHOD_NAME(self, library) -> None:
    print_d(f"Reading playlist directory {self.pl_dir} (library: {library})")
    try:
        fns = os.listdir(self.pl_dir)
    except FileNotFoundError as e:
        print_w(f"No playlist dir found in {self.pl_dir!r}, creating. ({e})")
        os.mkdir(self.pl_dir)
        fns = []
    # Populate this library by relying on existing signal passing.
    # Weird, but allows keeping the logic in one place
    failed = []
    for fn in fns:
        full_path = os.path.join(self.pl_dir, fn)
        if os.path.isdir(full_path):
            continue
        if HIDDEN_RE.match(fsn2text(fn)):
            print_d(f"Ignoring hidden file {fn!r}")
            continue
        try:
            XSPFBackedPlaylist(self.pl_dir, fn, songs_lib=library, pl_lib=self)
        except TypeError as e:
            # Don't add to library - it's temporary
            legacy = FileBackedPlaylist(self.pl_dir, fn,
                                        songs_lib=library, pl_lib=None)
            if not len(legacy):
                try:
                    size = os.stat(legacy._last_fn).st_size
                    if size >= _MIN_NON_EMPTY_PL_BYTES:
                        data = {"filename": fn, "size": size / 1024}
                        print_w(_("No library songs found in legacy playlist "
                                  "%(filename)r (of size %(size).1f kB).") % data +
                                " " +
                                _("Have you changed library root dir(s), "
                                  "but not this playlist?"))
                        continue
                except OSError:
                    print_e(f"Problem reading {legacy._last_fn!r}")
                    continue
                finally:
                    failed.append(fn)
            print_w(f"Converting {fn!r} to XSPF format ({e})")
            XSPFBackedPlaylist.from_playlist(legacy, songs_lib=library, pl_lib=self)
        except EnvironmentError:
            print_w(f"Invalid Playlist {fn!r}")
            failed.append(fn)
    if failed:
        total = len(failed)
        print_e(ngettext("%d playlist failed to convert",
                         "%d playlists failed to convert", total) % len(failed))