{"id":13585247,"url":"https://github.com/platers/unitunes","last_synced_at":"2025-04-09T08:12:07.803Z","repository":{"id":39865794,"uuid":"491600211","full_name":"platers/unitunes","owner":"platers","description":"A GUI and library to transfer, sync, and backup playlists on music streaming services","archived":false,"fork":false,"pushed_at":"2023-08-20T02:18:56.000Z","size":1922,"stargazers_count":148,"open_issues_count":17,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-02T07:08:12.622Z","etag":null,"topics":["gui","music-library","musicbrainz","playlist-manager","python","spotify","ytmusic"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/platers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2022-05-12T17:01:35.000Z","updated_at":"2025-03-21T22:36:34.000Z","dependencies_parsed_at":"2024-10-26T21:21:46.280Z","dependency_job_id":"9a962fa7-9428-412c-8364-72458bcf8cdc","html_url":"https://github.com/platers/unitunes","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platers%2Funitunes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platers%2Funitunes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platers%2Funitunes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platers%2Funitunes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/platers","download_url":"https://codeload.github.com/platers/unitunes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999864,"owners_count":21031046,"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":["gui","music-library","musicbrainz","playlist-manager","python","spotify","ytmusic"],"created_at":"2024-08-01T15:04:49.822Z","updated_at":"2025-04-09T08:12:07.781Z","avatar_url":"https://github.com/platers.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# unitunes [![PyPI version](https://badge.fury.io/py/unitunes.svg)](https://badge.fury.io/py/unitunes) ![example workflow](https://github.com/platers/unitunes/actions/workflows/github-actions.yml/badge.svg)\n\n![unituneslogo](assets/unitunes.png)\n\nA python GUI and library to sync playlists across music streaming services.\n\n![playlist_tab](assets/playlist_tab.png)\n\n## Introduction\n\nunitunes manages playlists across streaming services. unitunes can transfer songs between services and keep playlists in sync.\n\nunitunes stores your playlists in plain text, allowing you to version control your music. Playlists can be pushed and pulled from streaming services. Tracks from one service can be searched on another.\n\n### Current Supported Streaming Services\n\n| Name          | Pullable | Pushable | Searchable |\n| ------------- | :------: | :------: | :--------: |\n| MusicBrainz   |          |          |     ✅     |\n| Spotify       |    ✅    |    ✅    |     ✅     |\n| Youtube Music |    ✅    |    ✅    |     ✅     |\n| Beatsaber     |    ✅    |    ✅    |     ✅     |\n\nWant to add support for another service? See [contributing](#contributing).\n\n## Usage\n\n```bash\npip install unitunes\nunitunes\n```\n\nIn settings, set the directory to store your playlists. You can version control this directory with git.\n\nConnect services in the service tab. Enter a service name, and click the button to add the corresponding service. Each service type requires some configuration, Spotify requires a client id and secret, and Youtube Music requires request headers.\n![service_tab](assets/service_tab.png)\n\nPlaylists can then be added to the playlist tab.\n\nAfter adding playlists, you can sync them. You likely just want to press the `Sync All` button, which will pull, search, and push all playlists.\n\n## Contributing\n\nunitunes is rapidly evolving. Take a look at the [contributing guide](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaters%2Funitunes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplaters%2Funitunes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaters%2Funitunes/lists"}