{"id":28253904,"url":"https://github.com/rustynova016/alistral","last_synced_at":"2026-01-06T00:13:09.761Z","repository":{"id":225289181,"uuid":"765572284","full_name":"RustyNova016/Alistral","owner":"RustyNova016","description":"Power tools for Listenbrainz","archived":false,"fork":false,"pushed_at":"2025-06-10T07:36:01.000Z","size":10035,"stargazers_count":24,"open_issues_count":68,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-10T08:28:45.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://rustynova016.github.io/Alistral/","language":"Rust","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/RustyNova016.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2024-03-01T07:27:17.000Z","updated_at":"2025-06-10T07:35:04.000Z","dependencies_parsed_at":"2024-05-05T16:32:54.252Z","dependency_job_id":"825bdd8a-0b23-48fd-bd0a-43e6c4137867","html_url":"https://github.com/RustyNova016/Alistral","commit_stats":null,"previous_names":["rustynova016/listenbrainz-cli-tools","rustynova016/alistral"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/RustyNova016/Alistral","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustyNova016%2FAlistral","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustyNova016%2FAlistral/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustyNova016%2FAlistral/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustyNova016%2FAlistral/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RustyNova016","download_url":"https://codeload.github.com/RustyNova016/Alistral/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustyNova016%2FAlistral/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260085964,"owners_count":22956707,"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":[],"created_at":"2025-05-19T17:22:45.078Z","updated_at":"2026-01-06T00:13:09.749Z","avatar_url":"https://github.com/RustyNova016.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alistral\n\n[![CI builder](https://github.com/RustyNova016/alistral/actions/workflows/rust.yml/badge.svg)](https://github.com/RustyNova016/alistral/actions/workflows/rust.yml)\n\nA collection of CLI based tools for Listenbrainz.\n\n# Installing\n\nCheck out the guide [here](https://rustynova016.github.io/Alistral/installing.html)\n\n# Usage\n\nThe documentation book can be found [here](https://rustynova016.github.io/Alistral/)\n\nFull markdown help can be found under [docs/CommandLineHelp.md](https://rustynova016.github.io/Alistral/CommandLineHelp.html), but full `--help` support exists too. \n\n# Featured Tools\n\nHere's some of what Alistral can do:\n\n## Daily\n\nGives a daily recap containing the latest releases, track birthdays and discovery anniversaries\n\n[Read more](https://rustynova016.github.io/Alistral/daily.html) | [Usage](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-daily)\n\n## Statistics\n\nAn extended statistic calculator that calculate fresh statistics in a blink\nof an eye! (Data fetching not counted)\nSupports a wider range of entities like releases, works, or even tags. \n\n[Read more](https://rustynova016.github.io/Alistral/stats/stats.html) | [Usage](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-stats)\n\n## Musicbrainz Clippy\n\nAn utility to find errors, missing data, or other potential edits for musicbrainz.\nIt crawls over all the entities and do a series of checks called \"lints\", checking the integrity of the data.\n\nThis is similar to [the musicbrainz reports](https://musicbrainz.org/reports) but contains other lints and utilities to quickly fix them.\n\n⚠️ All results are suggestions. Take them with a grain of salt. If you are unsure, it's preferable to skip.\n\n[Read more](https://rustynova016.github.io/Alistral/clippy/clippy.html) | [Usage](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-musicbrainz-clippy)\n\n![Preview of the tool](docs/book/src/clippy/clippy.png)\n\n## Radio\n\nA few radio algorithms have been made to generate playlists for you\n\n### Artist Circles\n\n[Usage \u003e Command Line documentation](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-radio-circles)\n\nThis algorithm keep your playlist close to the artists you are listening to. The way it generate is as follow:\n\n- Get a random listen\n- Get its artist\n- Add a random recording made by this artist\n\nThere is the option to only get unlistened recordings, making an alternative to ListenBrainz's own discovery playlists.\n\n### Underrated tracks\n\n[Usage \u003e Command Line documentation](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-radio-underrated)\n\nThis radio will create a playlist containing all the tracks that you listen to, but seemingly no one else does. \n\n### Listen rate\n\n[Usage \u003e Command Line documentation](https://rustynova016.github.io/Alistral/CommandLineHelp.html#alistral-radio-rate)\n\nThis algorithm bases itself on your listen rate of recording to get more forgotten tracks. It takes the recordings with the lowest listen rates, and put them into a playlist\n\n\n# Shell completions:\n\nHow to use value hints and generate shell completions.\n\nUsage with zsh:\n```console\n$ alistral --generate=zsh \u003e /usr/local/share/zsh/site-functions/_alistral\n$ compinit\n```\nfish:\n```console\n$ alistral --generate=fish \u003e alistral.fish\n$ . ./alistral.fish\n```\n\n# Other infos\n\nThis project is in beta. There's a lot of features I'd like to add, and need a lot of testing before 1.0. If you find a bug, or have a feature request, feel free to create (and spam) a new issue.\n\n# See also\n- [musicbrainz_rs](https://github.com/RustyNova016/musicbrainz_rs): API binding for Musicbrainz\n- [listenbrainz-rs](https://github.com/InputUsername/listenbrainz-rs): API bindings for listenbrainz\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustynova016%2Falistral","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustynova016%2Falistral","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustynova016%2Falistral/lists"}