beetbox / beetbox/beets

beet modify uses an object string representation instead of the user-defined value when using the 'select' option

Open
#7,019 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

Hi! New to beets. Tried renaming a bunch of album artists at once, the search results were too broad however. Using the 'select' option after to narrow down the albums resulted in a stringified object being used as the album artist name. I can't re-do this command since I accepted the changes thinking it was just a bug on the UI side, but it did in fact change the artist in the data as well.

### Problem

```sh
$ beet modify -a 'Ye' albumartist='Kanye West'
```

Led to this problem:

```
[...]
Ye - 808s & Heartbreak
albumartist: Ye -> Kanye West

[...]
Really modify, move and write tags? (Yes/no/select) select

[...]
Ye - 808s & Heartbreak
albumartist: Ye -> ModifyOperation(operator=None, value='Kanye West')
```
### Setup

* OS: macOS Tahoe
* Python version: 3.14.7
* beets version: 2.13.1
* Turning off plugins made problem go away (yes/no): no

My configuration (output of `beet config`) is:

```yaml
directory: ~/music-beets
# --------------- Main ---------------

library: ~/beets-data/musiclibrary.db

import:
move: yes

# --------------- Plugins ---------------

plugins:
- musicbrainz
- chroma
- autobpm
- fromfilename
- lyrics
disabled_plugins: []
musicbrainz:
search_limit: 5
data_source_mismatch_penalty: 0.5
search_query_ascii: no
genres: no
genres_tag: genre
external_ids:
discogs: no
bandcamp: no
spotify: no
deezer: no
tidal: no
extra_tags: []
aliases_as_credits: no
chroma:
search_limit: 5
data_source_mismatch_penalty: 0.5
auto: yes
autobpm:
auto: yes
force: no
quiet: no
beat_track_kwargs: {}
lyrics:
auto: yes
auto_ignore:
translate:
api_key: REDACTED
from_languages: []
to_language:
dist_thresh: 0.11
google_API_key: REDACTED
google_engine_ID: REDACTED
genius_api_key: REDACTED
lrcmux:
url: https://api.lrcmux.dev
sources: []
fallback:
force: no
keep_synced: no
local: no
print: no
rest_directory:
synced: no
sources:
- lrclib
- google
- genius
- lrcmux
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with `beet modify -a 'Ye' albumartist='Kanye West'`, then choose `select` and inspect the `beet modify` path that handles the selection. Done means the selected album shows and stores `Kanye West`, rather than the `ModifyOperation` string representation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.