Zhlyr is a lightweight, asynchronous Python library designed for audio fingerprint recognition, song metadata extraction, and millisecond-accurate synchronized lyrics retrieval with SRT formatting support.
pip install zhlyrIdentify any song from an audio snippet or file asynchronously:
import asyncio
from zhlyr import Recognize
async def main():
audio_path = "sample.mp3"
# Initialize recognition with file path or bytes
reco = Recognize(audio_path)
# Retrieve structured JSON metadata
track_info = await reco.json()
print("Identified Track:", track_info.get("track", {}).get("title"))
if __name__ == "__main__":
asyncio.run(main())Fetch line-by-line synchronized lyrics for karaoke systems or media players:
from zhlyr import ZhLyr
# Fetch synchronized lyrics formatted with SRT timestamps
lyrics = ZhLyr.GetByTitle(title="Save Your Tears", srt=True)
for timestamp, line in lyrics.items():
print(f"[{timestamp}] {line}")lyrics = ZhLyr.GetByDetails(
title="Save Your Tears",
artist="The Weeknd",
duration="3:35",
srt=True
)
for timestamp, line in lyrics.items():
print(f"[{timestamp}] {line}")Easily convert raw nested JSON responses into dynamic dot-accessible Python objects:
from zhlyr import Serializer
raw_data = {
"track": {
"title": "Blinding Lights",
"artist": "The Weeknd"
}
}
serialized = Serializer(raw_data)
print(serialized.track.title) # Output: Blinding Lights- Asynchronous Execution: Built on modern Python
asynciofor non-blocking I/O in high-throughput applications. - SRT & Plain Text Formatting: Toggle between synchronized timestamps and plain lyrics with a single boolean flag (
srt=True/False). - Robust Error Handling: Automatic fallback and parameter normalization.