From afc91c1397806763883cf22dd1cac49689f31f6e Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Sun, 19 Apr 2026 09:14:22 -0700 Subject: [PATCH] Delete .lrc and .txt sidecar files when removing tracks from disk Track and album delete with file removal now also cleans up associated lyrics sidecar files (.lrc synced, .txt plain) that share the same base filename as the audio file. Fixes #322 --- web_server.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/web_server.py b/web_server.py index e807e1c5..0e8932b9 100644 --- a/web_server.py +++ b/web_server.py @@ -15012,6 +15012,16 @@ def library_delete_track(track_id): os.remove(resolved) file_deleted = True logger.info(f"Deleted file from disk: {resolved}") + # Clean up sidecar files (.lrc, .txt lyrics, cover.jpg) + base_no_ext = os.path.splitext(resolved)[0] + for sidecar_ext in ('.lrc', '.txt'): + sidecar = base_no_ext + sidecar_ext + if os.path.exists(sidecar): + try: + os.remove(sidecar) + logger.info(f"Deleted sidecar file: {sidecar}") + except Exception: + pass except Exception as e: logger.warning(f"Failed to delete file: {e}") file_error = str(e) @@ -15799,6 +15809,15 @@ def library_delete_album(album_id): try: os.remove(resolved) files_deleted += 1 + # Clean up sidecar files (.lrc, .txt lyrics) + base_no_ext = os.path.splitext(resolved)[0] + for sidecar_ext in ('.lrc', '.txt'): + sidecar = base_no_ext + sidecar_ext + if os.path.exists(sidecar): + try: + os.remove(sidecar) + except Exception: + pass except Exception as e: logger.warning(f"Failed to delete track file: {e}") files_failed += 1