{"id":18446930,"url":"https://github.com/nmeum/mmp","last_synced_at":"2026-02-12T03:09:31.620Z","repository":{"id":74907276,"uuid":"258980622","full_name":"nmeum/mmp","owner":"nmeum","description":"The mini music player, an alternative to MPD","archived":false,"fork":false,"pushed_at":"2020-05-25T22:00:35.000Z","size":112,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T09:55:06.341Z","etag":null,"topics":["audio","hylang","mpd","mpd-server","music-player","music-player-daemon"],"latest_commit_sha":null,"homepage":null,"language":"Hy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmeum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-26T08:38:14.000Z","updated_at":"2022-07-15T08:19:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"c495ec10-1a2c-4229-a537-43142526f2ea","html_url":"https://github.com/nmeum/mmp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nmeum/mmp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeum%2Fmmp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeum%2Fmmp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeum%2Fmmp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeum%2Fmmp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmeum","download_url":"https://codeload.github.com/nmeum/mmp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeum%2Fmmp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266905598,"owners_count":24004148,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["audio","hylang","mpd","mpd-server","music-player","music-player-daemon"],"created_at":"2024-11-06T07:11:22.137Z","updated_at":"2026-02-12T03:09:26.596Z","avatar_url":"https://github.com/nmeum.png","language":"Hy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mmp\n\nThe mini music player, an alternative to MPD.\n\n## Motivation\n\n\u003e All music player daemons suck. This one just sucks less.\n\nI've been using [MPD][mpd homepage] as my primary music player for the\nlast decade or so. I like the idea of controlling my music player using\na network protocol but MPD itself tries to do too many things at once.\nSince I am not interested in building my own music player clients, I\nalways intended to write an alternative implementation of the network\nprotocol used by MPD. My original attempt at doing so was\n[mpvd][mpvd github] which provided an implementation of the\n[MPD protocol][mpd protocol] for controlling the multimedia player\n[mpv][mpv homepage]. Unfortunately, the protocol mapping turned out to\nbe more complicated than initially conceived and therefore the project\nwas later abandoned.\n\nThis project is a new attempt at replacing my [MPD][mpd homepage] setup\nwith a simpler software which handles playback and music database\nmanagement separately. Instead of mpv, it currently uses\n[gstreamer][gstreamer homepage]. Additionally, it relies on the music\nlibrary manager [beets][beets homepage] for database management.\n\n## Status\n\nProof of concept, buggy and totally incomplete at the moment.\n\n## Dependencies\n\nThis software provides the required glue code for combining:\n\n* [gstreamer][gstreamer homepage]\n* [libmpdserver][libmpdserver github]\n* [beets][beets homepage]\n\nAs such, this software has the following dependencies:\n\n* The [hy][hy homepage] programming language\n* The [gst-python][py3-gst homepage] module\n* The [libmpdserver][libmpdserver github] parser library\n* The [beets][beets homepage] music manager\n\n## Setup\n\nThe library libmpdserver is still in early stages of development. As\nsuch, I haven't tagged releases or provided install scripts yet. For\nthis reason, just build the library manually for now using:\n\n\t$ git clone --recursive https://github.com/nmeum/libmpdserver\n\t$ make -C libmpdserver libmpdserver.so\n\nAfterwards, install and configure beets if you haven't already. For\nfurther information consult the [beets documentation][beets quickstart].\n\n## Usage\n\nTo use this software with an existing beets library, start it by\npointing it to your beets database. For example:\n\n\t$ hy mmp.hy -a 127.0.0.1 -p 6600 ~/.config/beets/library.db\n\n## Tests\n\nIf [mpc][mpc homepage] is installed test can be invoked using:\n\n\t$ ./tests/run_tests.sh\n\n## License\n\nThis program is free software: you can redistribute it and/or modify it\nunder the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at\nyour option) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n[libmpdserver github]: https://github.com/nmeum/libmpdserver\n[beets homepage]: https://beets.io/\n[beets quickstart]: https://beets.readthedocs.io/en/stable/guides/main.html\n[hy homepage]: https://docs.hylang.org\n[py3-gst homepage]: https://gstreamer.freedesktop.org/bindings/python.html\n[gstreamer homepage]: https://gstreamer.freedesktop.org/\n[mpd homepage]: https://musicpd.org/\n[mpd protocol]: https://musicpd.org/doc/html/protocol.html\n[mpvd github]: https://github.com/nmeum/mpvd\n[mpv homepage]: https://mpv.io/\n[mpv protocol]: https://mpv.io/manual/master/#json-ipc\n[mpc homepage]: https://www.musicpd.org/clients/mpc/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmeum%2Fmmp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmeum%2Fmmp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmeum%2Fmmp/lists"}