py-librescore


Namepy-librescore JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryDownload sheet music from MuseScore
upload_time2025-10-23 16:43:36
maintainerNone
docs_urlNone
authorkikkopy
requires_python>=3.7
licenseMIT
keywords musescore music sheet-music download pdf midi mp3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # py-librescore

[![Python Version](https://img.shields.io/badge/python-3.7%2B-blue)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A Python library and CLI tool for downloading sheet music from MuseScore.

> **Note**: This project is inspired by [LibreScore/dl-librescore](https://github.com/LibreScore/dl-librescore/) and developed by [kikkopy](https://github.com/kikkopy).

## Features

- 📄 Download scores as PDF
- 🎵 Export as MIDI
- 🔊 Export as MP3 audio
- 🖼️ Generate PDF from score images
- 🚀 Parallel downloading
- 📊 Progress tracking
- 🔍 Metadata extraction

## Installation

### From PyPI
```bash
pip install py-librescore
```

### From source
```bash
git clone https://github.com/kikkopy/py-librescore
cd py-librescore
pip install .
```

## Quick Start

### Command Line Interface

```bash
# Download a score as PDF
py-librescore "https://musescore.com/user/123/scores/456" pdf

# Download multiple formats
py-librescore "https://musescore.com/user/123/scores/456" pdf midi mp3

# Specify output directory
py-librescore "URL" pdf -o ~/Downloads

# Enable verbose output and custom workers
py-librescore "URL" pdf midi -v -w 10
```

### Python API

```python
from py_librescore import MuseScore, FileType
from pathlib import Path

# Initialize client
ms = MuseScore()

# Get score metadata
score = ms.get_score("https://musescore.com/user/123/scores/456")

print(f"Title: {score.title}")
print(f"ID: {score.id}")
print(f"Pages: {score.page_count}")

# Download PDF with progress
def progress_callback(current, total):
    print(f"Progress: {current}/{total}")

pdf_file = score.download(FileType.PDF, progress_callback=progress_callback)

# Save to file
score.save(FileType.PDF, Path("./scores"))

# Download all formats
files = score.download_all([FileType.PDF, FileType.MIDI, FileType.MP3])
```

## Supported Formats

| Format | Description | File Extension |
|--------|-------------|----------------|
| PDF | Portable Document Format | `.pdf` |
| MIDI | Musical Instrument Digital Interface | `.mid` |
| MP3 | Audio format | `.mp3` |

## Documentation

For detailed documentation, see [DOCUMENTATION.md](DOCUMENTATION.md).

## Legal Notice

This tool is for personal and educational use only. Please respect:
- MuseScore's Terms of Service
- Copyright laws
- Composers' and arrangers' rights

Only download scores that you have legal access to.

## Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- Inspired by [LibreScore/dl-librescore](https://github.com/LibreScore/dl-librescore/)
- Built with Python and love for music

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "py-librescore",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "musescore, music, sheet-music, download, pdf, midi, mp3",
    "author": "kikkopy",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b2/52/5564aa5fd3ce96cace911c4eb7eef4ffe560a57239e9353031344e5258f0/py_librescore-1.0.1.tar.gz",
    "platform": null,
    "description": "# py-librescore\r\n\r\n[![Python Version](https://img.shields.io/badge/python-3.7%2B-blue)](https://www.python.org/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\nA Python library and CLI tool for downloading sheet music from MuseScore.\r\n\r\n> **Note**: This project is inspired by [LibreScore/dl-librescore](https://github.com/LibreScore/dl-librescore/) and developed by [kikkopy](https://github.com/kikkopy).\r\n\r\n## Features\r\n\r\n- \ud83d\udcc4 Download scores as PDF\r\n- \ud83c\udfb5 Export as MIDI\r\n- \ud83d\udd0a Export as MP3 audio\r\n- \ud83d\uddbc\ufe0f Generate PDF from score images\r\n- \ud83d\ude80 Parallel downloading\r\n- \ud83d\udcca Progress tracking\r\n- \ud83d\udd0d Metadata extraction\r\n\r\n## Installation\r\n\r\n### From PyPI\r\n```bash\r\npip install py-librescore\r\n```\r\n\r\n### From source\r\n```bash\r\ngit clone https://github.com/kikkopy/py-librescore\r\ncd py-librescore\r\npip install .\r\n```\r\n\r\n## Quick Start\r\n\r\n### Command Line Interface\r\n\r\n```bash\r\n# Download a score as PDF\r\npy-librescore \"https://musescore.com/user/123/scores/456\" pdf\r\n\r\n# Download multiple formats\r\npy-librescore \"https://musescore.com/user/123/scores/456\" pdf midi mp3\r\n\r\n# Specify output directory\r\npy-librescore \"URL\" pdf -o ~/Downloads\r\n\r\n# Enable verbose output and custom workers\r\npy-librescore \"URL\" pdf midi -v -w 10\r\n```\r\n\r\n### Python API\r\n\r\n```python\r\nfrom py_librescore import MuseScore, FileType\r\nfrom pathlib import Path\r\n\r\n# Initialize client\r\nms = MuseScore()\r\n\r\n# Get score metadata\r\nscore = ms.get_score(\"https://musescore.com/user/123/scores/456\")\r\n\r\nprint(f\"Title: {score.title}\")\r\nprint(f\"ID: {score.id}\")\r\nprint(f\"Pages: {score.page_count}\")\r\n\r\n# Download PDF with progress\r\ndef progress_callback(current, total):\r\n    print(f\"Progress: {current}/{total}\")\r\n\r\npdf_file = score.download(FileType.PDF, progress_callback=progress_callback)\r\n\r\n# Save to file\r\nscore.save(FileType.PDF, Path(\"./scores\"))\r\n\r\n# Download all formats\r\nfiles = score.download_all([FileType.PDF, FileType.MIDI, FileType.MP3])\r\n```\r\n\r\n## Supported Formats\r\n\r\n| Format | Description | File Extension |\r\n|--------|-------------|----------------|\r\n| PDF | Portable Document Format | `.pdf` |\r\n| MIDI | Musical Instrument Digital Interface | `.mid` |\r\n| MP3 | Audio format | `.mp3` |\r\n\r\n## Documentation\r\n\r\nFor detailed documentation, see [DOCUMENTATION.md](DOCUMENTATION.md).\r\n\r\n## Legal Notice\r\n\r\nThis tool is for personal and educational use only. Please respect:\r\n- MuseScore's Terms of Service\r\n- Copyright laws\r\n- Composers' and arrangers' rights\r\n\r\nOnly download scores that you have legal access to.\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit issues and pull requests.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Acknowledgments\r\n\r\n- Inspired by [LibreScore/dl-librescore](https://github.com/LibreScore/dl-librescore/)\r\n- Built with Python and love for music\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Download sheet music from MuseScore",
    "version": "1.0.1",
    "project_urls": {
        "Bug Reports": "https://github.com/kikkopy/py-librescore/issues",
        "Homepage": "https://github.com/kikkopy/py-librescore",
        "Repository": "https://github.com/kikkopy/py-librescore"
    },
    "split_keywords": [
        "musescore",
        " music",
        " sheet-music",
        " download",
        " pdf",
        " midi",
        " mp3"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3105cda7500163712b56b2aa671ba8fb16269d14fa335f25926b3fb8fc0cb5eb",
                "md5": "855e9adccb3e1e0bc86e51ff2164b3ac",
                "sha256": "90d3a3347aca8265dbe1f568545974c1d52bdff6572e13efc21a5b0da37b8112"
            },
            "downloads": -1,
            "filename": "py_librescore-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "855e9adccb3e1e0bc86e51ff2164b3ac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 13178,
            "upload_time": "2025-10-23T16:43:35",
            "upload_time_iso_8601": "2025-10-23T16:43:35.633052Z",
            "url": "https://files.pythonhosted.org/packages/31/05/cda7500163712b56b2aa671ba8fb16269d14fa335f25926b3fb8fc0cb5eb/py_librescore-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2525564aa5fd3ce96cace911c4eb7eef4ffe560a57239e9353031344e5258f0",
                "md5": "b1c140dabd3bd657a4cb218af3f8f621",
                "sha256": "5fb3f0efc44b54e06702479836bdd531ce3d5295ea81cd7067382cf0f33a97dd"
            },
            "downloads": -1,
            "filename": "py_librescore-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b1c140dabd3bd657a4cb218af3f8f621",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 13578,
            "upload_time": "2025-10-23T16:43:36",
            "upload_time_iso_8601": "2025-10-23T16:43:36.798100Z",
            "url": "https://files.pythonhosted.org/packages/b2/52/5564aa5fd3ce96cace911c4eb7eef4ffe560a57239e9353031344e5258f0/py_librescore-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-23 16:43:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kikkopy",
    "github_project": "py-librescore",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "py-librescore"
}
        
Elapsed time: 3.25414s