Skip to content

Releases: RicknotDev/lrc-tools

v0.4.0 - Windows fixes + macOS full support

Choose a tag to compare

@RicknotDev RicknotDev released this 23 Jun 19:20

What's New

macOS (Intel + Apple Silicon)

  • Visualizer auto-detects Music.app, Spotify, VLC via AppleScript (no playerctl needed)
  • music_dir_candidates() now includes ~/Music/iTunes, ~/Music/Music, ~/Music/Spotify
  • Install deps: brew install ffmpeg mpv

Windows

  • PATH fix: install.ps1 auto-adds Python Scripts dir to user PATH
  • spotdl fix: catches FileNotFoundError gracefully when not installed
  • spotdl path: find_command() searches all Python Scripts directories
  • UTF-8 encoding: stdout/stderr forced to utf-8 with errors=replace
  • Friendly error: shows "spotdl no encontrado — la descarga falló" instead of crash

Fixes

  • command_exists() now searches sysconfig.get_path('scripts') and ~/AppData/Roaming/Python/*/Scripts on Windows
  • spotdl_cmd() uses full resolved path via find_command()
  • Package hints show brew on macOS, pacman on Linux only

Installation

pip install lrc-tools==0.4.0

Full Changelog

2c75ba2 feat: macOS full compatibility + audit fixes
6109ca8 fix: force UTF-8 encoding on Windows to prevent UnicodeEncodeError
c65a4a6 fix: find commands in Python Scripts dirs on Windows
1844e95 fix: show friendly error when spotdl not found
73fb53d fix: Windows PATH + spotdl crash handling

v0.3.0

Choose a tag to compare

@RicknotDev RicknotDev released this 23 Jun 01:18

Added

  • parser.py: validate_lrc(), repair_lrc(), offset_timestamps(), merge_lrc(), split_lrc(), parse_metadata()
  • exporters.py: export LRC to SRT (subtitles) and JSON
  • importers.py: import SRT and JSON back to LRC
  • core.py: backup_file() helper with auto-backup before overwrite in save_lyrics()
  • CLI: --dry-run flag for lrc-fetch
  • CLI: rich progress bars, colored output, elegant error handling (rich.traceback)
  • CLI: --help with usage examples for all entry points
  • TUI: refactored from 1002-line monolith to 8 screen files + 2 widget files
  • Tests: 69 new tests (test_parser, test_exporters, test_splitter, test_puller, test_cli, test_utils)
  • GitHub: lint workflow (ruff + mypy + bandit), issue/PR templates
  • Community: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md

Changed

  • rich>=13.0 promoted to base dependency
  • save_lyrics() now creates .bak before overwriting existing files; skips backup if content unchanged
  • Version bumped to 0.3.0

Fixed

  • prompt_threads(): if default: -> if default is not None: (broke --search-threads 0)
  • display.py render_block_text(): non-ASCII characters (é, ñ, ü) now render as base letters
  • fonts.py: added FALLBACK_CHARS map for accented character support
  • config.py: guarded import yaml with try/except for missing PyYAML
  • Cross-platform: 15 issues fixed across audio_player, player, display, install scripts, Makefile

lrc-tools v 1.5

Choose a tag to compare

@RicknotDev RicknotDev released this 24 May 03:17
81a1c53

Usable Lyrics Tool

lrc-tools v 1.0.0

Choose a tag to compare

@RicknotDev RicknotDev released this 17 May 19:21
a24e67d