beetbox / beetbox/beets

Autotag increments filename when set to no

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

Description

When importing an album that already exists, beets seems to increment and add `.1` to the filename. Is it supposed to do that even when incremential is turned off? This only happens if i set `autotag` to `no`. If set to yes it works as expected.

I have one big folder with all my music (`/mnt/Music/Library/`) and then i have Lidarr add music to that folder.

### Problem

```sh
$ beet -vv import /mnt/Music/Library/YELLOW\ MAGIC\ ORCHESTRA/YMO/
user configuration: /home/christian/.config/beets/config.yaml
data directory: /home/christian/.config/beets
plugin paths:
Sending event: pluginload
library database: /home/christian/.config/beets/library.db
library directory: /mnt/Music/Library
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
/mnt/Music/Library/YELLOW MAGIC ORCHESTRA/YMO
0 of 15 items replaced
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: import_task_files
Sending event: album_imported
Sending event: import
Sending event: cli_exit

$ beet ls --path yellow magic
/mnt/Music/Library/Yellow Magic Orchestra/YMO/01 Firecracker.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/02 Cosmic Surfin’.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/03 La Femme Chinoise.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/04 Tong Poo.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/05 Day Tripper.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/06 Behind the Mask.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/07 Rydeen.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/08 Tighten Up (Japanese Gentlemen Stand Up Please!).m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/09 U T.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/10 1000 Knives.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/11 Mass.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/12 Camouflage.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/13 Light in Darkness.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/14 Epilogue.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/15 Key.m4a

$ ls -al /mnt/Music/Library/YELLOW\ MAGIC\ ORCHESTRA/YMO/
total 171504
drwxr-xr-x 2 christian media 0 Dec 7 15:58 .
drwxr-xr-x 2 christian media 0 Dec 7 12:51 ..
-rwxr-xr-x 1 christian media 12541726 Dec 7 15:06 '01 Firecracker.m4a'
-rwxr-xr-x 1 christian media 11585621 Dec 7 15:06 '02 Cosmic Surfin’.m4a'
-rwxr-xr-x 1 christian media 14970226 Dec 7 15:06 '03 La Femme Chinoise.m4a'
-rwxr-xr-x 1 christian media 16027504 Dec 7 15:06 '04 Tong Poo.m4a'
-rwxr-xr-x 1 christian media 7537006 Dec 7 15:06 '05 Day Tripper.m4a'
-rwxr-xr-x 1 christian media 9415674 Dec 7 15:06 '06 Behind the Mask.m4a'
-rwxr-xr-x 1 christian media 11538057 Dec 7 15:06 '07 Rydeen.m4a'
-rwxr-xr-x 1 christian media 9783722 Dec 7 15:06 '08 Tighten Up (Japanese Gentlemen Stand Up Please!).m4a'
-rwxr-xr-x 1 christian media 11727140 Dec 7 15:06 '09 U T.m4a'
-rwxr-xr-x 1 christian media 13749436 Dec 7 15:06 '10 1000 Knives.m4a'
-rwxr-xr-x 1 christian media 11465758 Dec 7 15:06 '11 Mass.m4a'
-rwxr-xr-x 1 christian media 11689930 Dec 7 15:06 '12 Camouflage.m4a'
-rwxr-xr-x 1 christian media 9543985 Dec 7 15:06 '13 Light in Darkness.m4a'
-rwxr-xr-x 1 christian media 11265766 Dec 7 15:06 '14 Epilogue.m4a'
-rwxr-xr-x 1 christian media 12009765 Dec 7 15:06 '15 Key.m4a'
-rwxr-xr-x 1 christian media 1802 Dec 5 11:32 album.nfo
-rwxr-xr-x 1 christian media 736808 Dec 5 11:32 folder.jpg

$ beet -vv import /mnt/Music/Library/YELLOW\ MAGIC\ ORCHESTRA/YMO/
user configuration: /home/christian/.config/beets/config.yaml
data directory: /home/christian/.config/beets
plugin paths:
Sending event: pluginload
library database: /home/christian/.config/beets/library.db
library directory: /mnt/Music/Library
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
/mnt/Music/Library/YELLOW MAGIC ORCHESTRA/YMO
0 of 15 items replaced
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: import_task_files
Sending event: album_imported
Sending event: import
Sending event: cli_exit

$ beet ls --path yellow magic
/mnt/Music/Library/Yellow Magic Orchestra/YMO/01 Firecracker.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/01 Firecracker.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/02 Cosmic Surfin’.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/02 Cosmic Surfin’.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/03 La Femme Chinoise.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/03 La Femme Chinoise.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/04 Tong Poo.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/04 Tong Poo.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/05 Day Tripper.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/05 Day Tripper.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/06 Behind the Mask.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/06 Behind the Mask.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/07 Rydeen.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/07 Rydeen.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/08 Tighten Up (Japanese Gentlemen Stand Up Please!).m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/08 Tighten Up (Japanese Gentlemen Stand Up Please!).1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/09 U T.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/09 U T.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/10 1000 Knives.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/10 1000 Knives.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/11 Mass.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/11 Mass.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/12 Camouflage.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/12 Camouflage.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/13 Light in Darkness.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/13 Light in Darkness.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/14 Epilogue.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/14 Epilogue.1.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/15 Key.m4a
/mnt/Music/Library/Yellow Magic Orchestra/YMO/15 Key.1.m4a

$ ls -al /mnt/Music/Library/YELLOW\ MAGIC\ ORCHESTRA/YMO/
total 171504
drwxr-xr-x 2 christian media 0 Dec 7 15:58 .
drwxr-xr-x 2 christian media 0 Dec 7 12:51 ..
-rwxr-xr-x 1 christian media 12541726 Dec 7 15:06 '01 Firecracker.1.m4a'
-rwxr-xr-x 1 christian media 11585621 Dec 7 15:06 '02 Cosmic Surfin’.1.m4a'
-rwxr-xr-x 1 christian media 14970226 Dec 7 15:06 '03 La Femme Chinoise.1.m4a'
-rwxr-xr-x 1 christian media 16027504 Dec 7 15:06 '04 Tong Poo.1.m4a'
-rwxr-xr-x 1 christian media 7537006 Dec 7 15:06 '05 Day Tripper.1.m4a'
-rwxr-xr-x 1 christian media 9415674 Dec 7 15:06 '06 Behind the Mask.1.m4a'
-rwxr-xr-x 1 christian media 11538057 Dec 7 15:06 '07 Rydeen.1.m4a'
-rwxr-xr-x 1 christian media 9783722 Dec 7 15:06 '08 Tighten Up (Japanese Gentlemen Stand Up Please!).1.m4a'
-rwxr-xr-x 1 christian media 11727140 Dec 7 15:06 '09 U T.1.m4a'
-rwxr-xr-x 1 christian media 13749436 Dec 7 15:06 '10 1000 Knives.1.m4a'
-rwxr-xr-x 1 christian media 11465758 Dec 7 15:06 '11 Mass.1.m4a'
-rwxr-xr-x 1 christian media 11689930 Dec 7 15:06 '12 Camouflage.1.m4a'
-rwxr-xr-x 1 christian media 9543985 Dec 7 15:06 '13 Light in Darkness.1.m4a'
-rwxr-xr-x 1 christian media 11265766 Dec 7 15:06 '14 Epilogue.1.m4a'
-rwxr-xr-x 1 christian media 12009765 Dec 7 15:06 '15 Key.1.m4a'
-rwxr-xr-x 1 christian media 1802 Dec 5 11:32 album.nfo
-rwxr-xr-x 1 christian media 736808 Dec 5 11:32 folder.jpg
```

### Setup

* OS: Debian 11.6
* Python version: 3.9.2
* beets version: 1.6.0
* Turning off plugins made problem go away (yes/no): no

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

```yaml
library: ~/.config/beets/library.db
directory: /mnt/Music/Library

paths:
default: $albumartist/$album/$track $title
singleton: $artist/Non-Album/$title
albumtype:soundtrack: Soundtracks/$album/$track $title
comp: Compilations/$album/$track $title

original_date: yes
per_disc_numbering: yes
threaded: yes
asciify_path: yes
clutter: [
.DS_Store,
Thumbs.DB
]

plugins: [
duplicates,
spotify
]

import:
copy: yes
write: yes
move: yes
group_albums: no
default_action: skip
duplicate_action: skip
quiet_fallback: skip
log: ~/.config/beets/import.log
incremental: no
incremental_skip_later: no
detail: no
timid: no
autotag: no
```

Contributor guide

Open the contributing guide

Research direction

Start with the beet import command and reproduce the two consecutive imports using the verbose output and paths shown. Compare behavior when autotag is set to no versus yes, with incremential disabled. Done means the second import does not create .1 filename copies when that setting is off, with the existing import behavior still covered.

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
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.