beetbox / beetbox/beets

Re-import album track as singleton

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

Description

### Problem

Running `beet modify album::^$ singleton=` does not work. It always suggests to change to the value that it already was, ignoring user choice. I have tried all types of typing true and false, with capitals and quotes.

Also, running `beet import -sq -L album::^$` does not important them as singletons.

Running this command in verbose (`-vv`) mode:

```sh
➜ $ beet -vv modify album::^$ singleton=false
user configuration: /home/ambientsinewave/.config/beets/config.yaml
data directory: /home/ambientsinewave/.config/beets
plugin paths:
Sending event: pluginload
library database: /chompsky/library/musiclibrary.db
library directory: /chompsky/library/files
Sending event: library_opened
Modifying 80 items.
009 Sound System - - Dreamscape
singleton: True
Aesop Rock - - Daylight
singleton: True
Afrojack - - Ten Feet Tall (feat. Wrabel)
singleton: True
Amon Amarth - - Twilight Of The Thunder God
singleton: True
Asura - - Golgotha
singleton: True
Ayla - - Ayla (DJ Taucher Mix)
singleton: True
Bill Withers - - Ain't No Sunshine
singleton: True
Black Lips - - O Katrina!
singleton: True
Bob Dylan - - The Times They Are A-Changin'
singleton: True
Buddy Miles - - Them Changes
singleton: True
Clams Casino - - All I Need
singleton: True
Clams Casino - - I'm God
singleton: True
Clams Casino - - Numb
singleton: True
deadmau5 - - Polaris (Original Mix)
singleton: True
deadmau5 - - Snowcone
singleton: True
Death Grips - - The Fever (Aye Aye)
singleton: True
Deep Purple - - Smoke On The Water
singleton: True
Eric Prydz - - Opus
singleton: True
Fleetwood Mac - - The Chain
singleton: True
Galantis - - Kill ’Em With the Love
singleton: True
Galantis - - Runaway (U & I)
singleton: True
Glenn Underground - - City People
singleton: True
Halou - - Honeythief
singleton: True
Halou - - Stone Fruit
singleton: True
Helvetic Nerds - - Stormwatch (Chris Reece & Dinka Old Fashion Mix)
singleton: True
Ibibio Sound Machine - - Sunray (Eyio)
singleton: True
Koda - - Invitation to Love
singleton: True
Koda - - Leaving
singleton: True
Koda - - Staying
singleton: True
Lana Del Rey - - Summertime Sadness
singleton: True
Macklemore & Ryan Lewis - - Starting Over (feat. Ben Bridwell)
singleton: True
Madvillain - - Raid (ft. M.E.D.)
singleton: True
Matt Lange - - Sixty Six
singleton: True
MF DOOM - - Saffron
singleton: True
Miss Peppermint - - Let Me Hear The DJ
singleton: True
Nathan Fake - - Outhouse (Fluffy Mix)
singleton: True
Nathan Fake - - Outhouse (Original Mix)
singleton: True
Of Monsters And Men - - Dirty Paws
singleton: True
Paul Oakenfold & Cassandra Fox - - Touch Me (Perfecto Club Mix)
singleton: True
Petter - - All Together
singleton: True
Ramin Djawadi - - Light of the Seven
singleton: True
Rihanna - - We Found Love (feat. Calvin Harris)
singleton: True
Safri Duo - - Played-A-Live (The Bongo Song)
singleton: True
Salt Tank - - Pacific Diva
singleton: True
Santana - - Soul Sacrifice (live at Woodstock)
singleton: True
Santana - - Tales of Kilimanjaro
singleton: True
Science Department - - Repercussion (Original Mix)
singleton: True
Sex Bob-Omb - - Garbage Truck
singleton: True
Sex Bob-Omb - - Summertime
singleton: True
Sex Bob-Omb - - Threshold
singleton: True
Sex Bob-Omb - - We Are Sex Bob-Omb
singleton: True
Soulforge - - Dreamfast (Original Laidback Mix)
singleton: True
Subliminal Cuts - - Le Voie Le Soleil (Way Out West Summer Of Love Remix)
singleton: True
Sylvan Esso - - Coffee
singleton: True
Synthek - - Disambiguation
singleton: True
Talaboman - - Loser's Hymn
singleton: True
The Avalanches - - Because I’m Me
singleton: True
The Doors - - Light My Fire
singleton: True
The Magician - - I Follow Rivers (Lykke Li)
singleton: True
The MFA - - The Difference It Makes (Original Mix)
singleton: True
The Rolling Stones - - Paint It, Black
singleton: True
The Samuel Jackson Five - - Coalesce
singleton: True
Tiësto - - Chasing Summers
singleton: True
Tiësto - - Pair of Dice
singleton: True
Tiësto - - Paradise (Coldplay)
singleton: True
Tiësto - - Ten Seconds Before Sunrise
singleton: True
Tiësto - - Young Blood (The Naked and Famous)
singleton: True
Tom Day - - All For You
singleton: True
Tom Day - - Crystal Beach
singleton: True
Tom Day - - Departures
singleton: True
Tom Day - - Going Home
singleton: True
Tom Day - - Goodbye Friends
singleton: True
Tom Day - - My Last Year
singleton: True
Tom Day - - Never Give Up (Remaster)
singleton: True
Tom Day - - Our World
singleton: True
Tom Day - - Out Of My Depth
singleton: True
Tom Day - - Reflections
singleton: True
Valer den Bit - - Meteor 15 (ArcHouse Remix)
singleton: True
Vessel - - Red Sex
singleton: True
Yo La Tengo - - Green Arrow
singleton: True
Really modify, move and write tags? (Yes/no/select) no

Sending event: cli_exit

```
### Setup

* OS: Arch linux
* Python version: 3.6.3
* beets version: 1.4.5
* Turning off plugins made problem go away (yes/no): Did not test

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

```yaml

plugins: chroma fetchart edit convert web
directory: /chompsky/library/files
library: /chompsky/library/musiclibrary.db

paths:
default: $albumartist - $album%if{$year, [$year]}/$disc-$track $artist - $title
singleton: Tracks/$artist%if{$year, [$year]} - $title
album::^$: Tracks/$artist%if{$year, [$year]} - $title
convert:
formats:
ogg: ffmpeg -i $source -y -vn -acodec libvorbis -aq 8 $dest
aac:
command: ffmpeg -i $source -y -vn -acodec aac -aq 1 $dest
extension: m4a
alac:
command: ffmpeg -i $source -y -vn -acodec alac $dest
extension: m4a
flac: ffmpeg -i $source -y -vn -acodec flac $dest
mp3: ffmpeg -i $source -y -vn -aq 2 $dest
opus: ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest
wma: ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest
dest: /chompsky/library/transcode
format: ogg
never_convert_lossy_files: yes
pretend: no
threads: 8
max_bitrate: 500
auto: no
tmpdir:
quiet: no
embed: yes

paths: {}
copy_album_art: no
album_art_maxwidth: 0
fetchart:
auto: yes
minwidth: 0
maxwidth: 0
enforce_ratio: no
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
sources:
- filesystem
- coverart
- itunes
- amazon
- albumart
google_key: REDACTED
google_engine: 001442825323518660753:hrh5ch1gjzm
fanarttv_key: REDACTED
store_source: no
web:
host: 127.0.0.1
port: 8337
cors: ''
reverse_proxy: no
include_paths: no
chroma:
auto: yes
edit:
albumfields: album albumartist
itemfields: track title artist album
ignore_fields: id path

```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with `beet modify album::^$ singleton=false` and `beet import -sq -L album::^$`, using the supplied configuration and verbose output. Compare behavior with plugins enabled and disabled, then verify that explicit singleton values are honored and the import command treats matching tracks as singletons.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.