{"id":16001521,"url":"https://github.com/pbrisbin/bandit","last_synced_at":"2026-06-12T02:30:16.912Z","repository":{"id":3800946,"uuid":"4879901","full_name":"pbrisbin/bandit","owner":"pbrisbin","description":"Bandit helps you choose music","archived":false,"fork":false,"pushed_at":"2012-07-05T20:57:24.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-03T16:30:06.242Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pbrisbin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-04T02:47:26.000Z","updated_at":"2013-08-10T02:32:47.000Z","dependencies_parsed_at":"2022-07-15T16:47:54.378Z","dependency_job_id":null,"html_url":"https://github.com/pbrisbin/bandit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fbandit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fbandit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fbandit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fbandit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbrisbin","download_url":"https://codeload.github.com/pbrisbin/bandit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240229936,"owners_count":19768588,"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":"2024-10-08T09:44:07.817Z","updated_at":"2026-06-12T02:30:16.867Z","avatar_url":"https://github.com/pbrisbin.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bandit\n\nBandit is a simple tool inspired by the great [albumbler][] by Kyle \nKeen. Bandit uses a reward-maximizing strategy known as [multi-armed \nbandit][mab] to consistently find and play good music from your \ncollection.\n\n### How it works\n\nBandit does one thing when executed: choose and play an album.\n\n*Some of the time*, Bandit will choose an album at random (exploration).\n\nDepending on how long you let that album play before invoking Bandit \nagain, that album's \"worth\" will be adjusted.\n\n*Most of the time*, Bandit will choose the album which has the \nhighest worth at this time (exploitation).\n\nObviously, this means Bandit needs to be used for a while before you see \nany sort of intelligence emerge.\n\n### Getting started\n\n~~~ \n$ git clone https://github.com/pbrisbin/bandit\n$ cd bandit\n$ bundle install\n$ bundle exec bin/bandit  # to just try it out\n$ rake install            # to install for reals\n~~~\n\n### Configuration\n\nFor now, Bandit's behavior/strategy can be configured only by editing \n`lib/bandit/config.rb` directly.\n\nPlayer-interaction is accomplished by defining a `Player` subclass and \nassigning its instance in `config.rb`. You can see how the default \n`Players::Mpc` is written/used for guidance in writing others.\n\n### Status\n\nBandit currently *functions*, that is, he chooses albums and makes \nadjustments according to his specs.\n\nThat said, I haven't used it long enough to know if the approach \nactually *works*.\n\n[albumbler]: https://github.com/keenerd/albumbler\n[mab]:       https://en.wikipedia.org/wiki/Multi-armed_bandit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbrisbin%2Fbandit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbrisbin%2Fbandit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbrisbin%2Fbandit/lists"}