{"id":13910527,"url":"https://github.com/andreamust/MusicMetaLinker","last_synced_at":"2025-07-18T09:31:54.840Z","repository":{"id":175798644,"uuid":"654491630","full_name":"andreamust/MusicMetaLinker","owner":"andreamust","description":"MusicMetaLinker - Entity Linking and Knowledge Augmentation library for music metadata","archived":false,"fork":false,"pushed_at":"2023-12-05T13:08:00.000Z","size":126440,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-08T00:43:12.684Z","etag":null,"topics":["isrc","music","music-information-retrieval","music-metadata","music-streaming","musicbrainz"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreamust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-16T08:43:34.000Z","updated_at":"2024-05-11T04:14:59.000Z","dependencies_parsed_at":"2023-12-05T12:46:27.650Z","dependency_job_id":null,"html_url":"https://github.com/andreamust/MusicMetaLinker","commit_stats":null,"previous_names":["andreamust/elka","andreamust/musicmetalinker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreamust%2FMusicMetaLinker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreamust%2FMusicMetaLinker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreamust%2FMusicMetaLinker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreamust%2FMusicMetaLinker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreamust","download_url":"https://codeload.github.com/andreamust/MusicMetaLinker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226388638,"owners_count":17617309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["isrc","music","music-information-retrieval","music-metadata","music-streaming","musicbrainz"],"created_at":"2024-08-07T00:01:31.516Z","updated_at":"2024-11-25T19:31:13.422Z","avatar_url":"https://github.com/andreamust.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# MusicMetaLinker\n\nMusicMetaLinker is a Python library designed to seamlessly link music tracks to external sources, enhancing your music collection with rich and accurate metadata. With MusicMetaLinker, you can effortlessly connect your music metadata, such as artist names, track names, albums, durations, track numbers, ICRC codes, and MusicBrainz IDs, to external music databases and services. MusicMetaLinker currently supports four linkers: MusicBrainz, AcousticBrainz, YouTube Music, and Deezer.\n\n## Installation\n\nYou can install the latest version of MusicMetaLinker by cloning this repository and running the following command:\n\n```bash\npip install git+https://github.com/andreamust/MusicMetaLinker.git\n```\n\n## Usage\nUsing MusicMetaLinker is straightforward. Import the library into your Python script and use it to link your music metadata to external sources. Here's a basic example:\n\n```python\nfrom MusicMetaLinker.linking import linking\n\n# Create a linking object\nlinker = linking.Align(\n                artist=\"The Beatles\",\n                album=\"Let It Be\",\n                track=\"Let It Be\",\n                track_number=4,\n                duration=168.25,\n                release_year=1970,\n                musicbrainz_id=\"b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d\",\n                isrc=\"GBAYE0601690\",\n                strict=False,\n            )\n# Link the metadata\ntrack_name = linker.get_track()\nartist_name = linker.get_artist()\nalbum_name = linker.get_album()\ntrack_number = linker.get_track_number()\nduration = linker.get_duration()\nrelease_year = linker.get_release_date()\nisrc = linker.get_isrc()\n\n# Get the identifiers\nlinks = {'musicbrainz': linker.get_mbid(),\n         'isrc': linker.get_isrc() if isrc is None else isrc,\n         'deezer': linker.get_deezer_id(),\n         'deezer_url': linker.get_deezer_link(),\n         'youtube_url': linker.get_youtube_link(),\n         }\n```\n\nOf course, in the example above, the linker works with very little metadata, such as the sole artist name, and track name.\nAt the same time, it is possible to query only using a single identifier, such as the MusicBrainz ID, the ISRC, or the Deezer ID. For example:\n\n```python\nfrom MusicMetaLinker.linking import linking\n\n# Create a linking object\nlinker = linking.Align(\n                musicbrainz_id=\"b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d\",\n            )\n```\n\n## Workflow\nMusicMetaLinker follows a three-step workflow to link music track metadata to external sources:\n\n1. **Service Selection**: MusicMetaLinker evaluates the available metadata and selects the most suitable external service (e.g., MusicBrainz, AcousticBrainz, YouTube Music, Deezer) to extract accurate information.\n\n2. **Information Retrieval**: MusicMetaLinker connects to the chosen service's API, searches for the best match based on the provided metadata, and retrieves detailed information about the music track.\n\n3. **Filtering and Return**: MusicMetaLinker filters the retrieved information to find the best match for the given metadata. It returns all the relevant metadata found, enhancing your music tracks with external data.\n\nAdditionally, MusicMetaLinker can process directories of music files (jams files), read their metadata, and rewrite new jams files with the retrieved links, ensuring your music collection remains organized and enriched.\n\n\n## License\nMIT License\n\nCopyright (c) 2023 Andrea Poltronieri\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreamust%2FMusicMetaLinker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreamust%2FMusicMetaLinker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreamust%2FMusicMetaLinker/lists"}