Skip to content

ElliotCHEN37/MxMDL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MxMDL 🎵

🚀 Download any lyrics from Musixmatch directly and freely!
🔗 Latest Release: Click Here

Features

✅ Download Synced or Unsynced Lyrics
✅ Supports .mxdl Batch File for Multiple Downloads
✅ Auto-fetch API Token (if not provided)
✅ Supports .lrc and .srt Output Formats
✅ Extract Metadata from Audio Files
✅ Configurable Sleep Time Between Downloads

Installation & Setup

Clone the Repository

git clone https://github.com/ElliotCHEN37/MxMDL.git
cd MxMDL/Source

Install Dependencies

pip install -r requirements.txt

Build Executable (Optional)

pip install pyinstaller
pyinstaller build_<sys>.spec

Replace with your OS (win or lin)

Usage

python3 main.py [-h] [-k TOKEN] [-a ARTIST] [-t TITLE] [-l ALBUM] [--lrctype {synced,unsynced}] [--output_type {lrc,srt}] [-e SLEEP] [filepath]

Arguments:

Short Argument Full Argument Description
-h --help Show help message
-k --token Musixmatch API token (optional)
-a --artist Artist name
-t --title Track title
-l --album Album name (optional)
N/A --lrctype Lyrics type (synced or unsynced, default: synced)
N/A --output_type Output format (lrc or srt, default: lrc)
-e --sleep Time interval between downloads (default: 30 sec)
N/A N/A Path to an audio file (to extract metadata)

Using .mxdl Batch Files

A .mxdl file allows you to batch download multiple lyrics easily.

Example .mxdl File

# Lines starting with "#" are ignored
!format = lrc  # Output format (lrc/srt)
!sleep = 10  # Sleep time between downloads
!output = /path/to/output  # Output directory
!token = your_api_token  # (Optional) API token
!synced = true  # Download synced lyrics

!download
||| Taylor Swift ||| Love Story |||
||| Ed Sheeran ||| Shape of You ||| Divide |||
||| BTS ||| Dynamite |||

Minimal Example

||| Adele ||| Hello |||
||| Coldplay ||| Yellow |||

Run the .mxdl File

python main.py your_file.mxdl

Changelog

v1.3.4 (Latest)

✅ Optimizations:

  • Renamed Classes to follow Python naming conventions.
  • API Requests More Stable with retry mechanism.
  • Reduced Unnecessary API Calls for efficiency.
  • Improved Error Handling to avoid JSON parse errors.
  • Previous Versions

    v1.3.3

    🆕 New Features

  • Sleep Time Customization
  • .mxdl Batch File Support
  • Logging Enhancements
  • v1.3.2

    🔧 Code Refactor

  • Better Logging
  • Improved Code Structure
  • API Endpoint Adjustments
  • v1.3.1

    🐛 Fix

  • Fixed LRC Timing Issues
  • v1.3

    🆕 New Features

  • Added ♪ Instrumental ♪ for instrumental songs
  • Support for SRT file output
  • Command-line arguments improvement
  • v1.2

    🆕 New

  • Support for Direct File Input
  • 🐛 Fix

  • Resolved Issues with Instrumental Songs
  • v1.1

    🐛 Fix

  • Token Retrieval Optimization
  • 🆕 New

  • Changelog Viewing via --chlog
  • 🔧 Optimization

  • Code Structure Improvement
  • v1.0

    🎉 Initial Release

    License 📜 MIT License