Skip to main content

lyrics-sync

A python package to sync your local songs' lyrics, mainly TTML. Therefore, you need a player that can parse TTML and show syllable-synced lyrics. I recommend Gramophone.

To use, simply run this in Termux (you need uv installed, pkg install uv):

uvx --from hakimifr-lyrics-sync@latest lsync <path-to-music-files 1> [path-to-music-files 2] ...

where path-to-music-files is a directory or files. Directories will be traversed recursively.

It's fine to run the script many times on the same directory, as the script maintains its own JSON containing list of files that have already been synced. Any failed sync will be reattempted when ran on the same directory.

Lyrics Source

Currently, lyrics are, in order of priority, sourced from BetterLyrics (TTML), Paxsenix (TTML) and LRCLIB (LRC). Granted, BetterLyrics mostly source their TTML from Apple, and so Paxsenix might seem redundant. But BetterLyrics endpoint sometimes does not have a match, especially if the audio files metadata differs even slightly. In which case, Paxsenix might actually succeds.

The reason is, Paxsenix is not alone on its own because the API only allows fetching Apple's TTML by the Apple Music/iTunes song id. So, Paxsenix implementation actually uses iTunes search API to get the song id, and only then is it fetched from Paxsenix's cache. Please see lyrics_provider.py to see the actual implementation. TL;DR, Paxsenix is actually iTunes + Paxsenix itself.

License

Copyright 2026 Firdaus Hakimi <hakimifr@proton.me>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Metadata

Release files for hakimifr-lyrics-sync 0.0.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hakimifr-lyrics-sync 0.0.14
File Size Uploaded
hakimifr_lyrics_sync-0.0.14.tar.gz 14.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hakimifr-lyrics-sync 0.0.14
File Interpreter ABI Platform
hakimifr_lyrics_sync-0.0.14-py3-none-any.whl Python 3 none any Details

Total release size: 33.6 kB

Release files / hakimifr_lyrics_sync-0.0.14.tar.gz

Download URL hakimifr_lyrics_sync-0.0.14.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cc90e77184cde7dca98e99a313b5ef3faf460b565fdd64743a8cacefaf68da85
BLAKE2b-256 checksum
How to use checksums
a56c0c4c7f4d2a231c87797a86d8781f4f8c9c2c86cc1c6b06a18c4ca3ccb509
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"46","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / hakimifr_lyrics_sync-0.0.14-py3-none-any.whl

Download URL hakimifr_lyrics_sync-0.0.14-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abe4163588ed91a1e8c024252cca034e685c55ca425597aefdbd559642ebbcc2
BLAKE2b-256 checksum
How to use checksums
d3266c427b0386b8274a010b42821819dcb3c93efc330f25554dd92f3451c8d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"46","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

This release

0.0.14 This release

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page