# Large Untagged Library

**URL:** <https://discourse.beets.io/t/large-untagged-library/2093>\
**Category:** Help\
**Created:** [May 20, 2022, 4:36am UTC](https://discourse.beets.io/t/large-untagged-library/2093 "2022-05-20T04:36:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![timgineer69](https://avatars.discourse-cdn.com/v4/letter/t/d07c76/32.png) [@timgineer69](https://discourse.beets.io/u/timgineer69)\
**Post date:** [May 20, 2022, 4:36am UTC](https://discourse.beets.io/t/large-untagged-library/2093/1 "2022-05-20T04:36:46Z")

</div>

I have a very large, untagged, randomly named library. Filenames, for instance, might be SP1234.wav, DF4345.wav. All of the tracks are popular music, radio type plays. However, all of the metadata has been stripped. I’ve used MusicBrainz Picard in the past, but I’m hoping to do this completely in bash cli so I can later automate the process.

So, these tracks aren’t in any particular file structure either. There are no albums or artists. Just the tracks. I tried setting up adsubmit and chroma, but I’m not sure that I got it correct. I also went ahead and signed up with discogs, but that returned erroneous data. One directory only matched a handful of tracks and they were certainly all incorrect.

The idea is to import from one directory and copy to another such that artist and track only remain. I would also not mind converting the tracks to something else like ogg or flac.

Of course, I will be continuing to try to figure this out with the docs, but any help would be appreciated. Beets seems like a bit of a behemoth to tackle…

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [May 20, 2022, 2:10pm UTC](https://discourse.beets.io/t/large-untagged-library/2093/2 "2022-05-20T14:10:46Z")

</div>

Using `chroma` is the right idea! Acoustic fingerprinting is the way to recover structure from this.

I would also import all the tracks in singleton mode, i.e., with `beet import -s`. You may be able to recover album structure later, but this seems like the way to go as a first cut.

---

<div class="post-metadata">

**Author:** ![timgineer69](https://avatars.discourse-cdn.com/v4/letter/t/d07c76/32.png) [@timgineer69](https://discourse.beets.io/u/timgineer69)\
**Post date:** [May 20, 2022, 3:31pm UTC](https://discourse.beets.io/t/large-untagged-library/2093/3 "2022-05-20T15:31:42Z")

</div>

Aye, that’s not bad. It’s kind of annoying that it keeps asking me questions, but I get it. Another kind of annoying thing is that it puts tracks in `LIBRARY/Non-Album/$Artist/$Track.wav`

I would like to output like:  
`LIBRARY/$artist - $track.wav`

Fairly confident this is just a config thing.

As I was going through this, I thought it’d it would be cool:

```auto
if beet_unsure(track):
    output_dir = Path('~/unsure_tracks').expanduser()
    finish_beets_stuff(output_dir=output_dir)
else:
    finish_beets_stuff(output_dir=normal_dir)

```

whatever, something like that so I don’t have to keep pushing buttons…

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [May 20, 2022, 6:34pm UTC](https://discourse.beets.io/t/large-untagged-library/2093/4 "2022-05-20T18:34:27Z")

</div>

Fortunately, you can customize those paths to your heart’s content (you will want to change the `singleton` path):  
[https://beets.readthedocs.io/en/stable/reference/config.html#path-format-config](https://beets.readthedocs.io/en/stable/reference/config.html#path-format-config)

---

<div class="post-metadata">

**Author:** ![ctrueden](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/ctrueden/32/475_2.png) [@ctrueden](https://discourse.beets.io/u/ctrueden)\
**Post date:** [May 26, 2022, 7:02pm UTC](https://discourse.beets.io/t/large-untagged-library/2093/5 "2022-05-26T19:02:23Z")

</div>

> [@timgineer69](#):
>
> whatever, something like that so I don’t have to keep pushing buttons…

Maybe the [`--quiet` and `--quiet-fallback` flags](https://docs.beets.io/en/stable/reference/config.html#quiet) are useful, as well as the [`strong_rec_thresh` setting](https://docs.beets.io/en/stable/reference/config.html#autotagger-matching-options) of the autotagger—although I don’t know how the latter interacts (if at all) with zero-metadata chroma-only type matches.

I am not a beets super-expert, but I am confident you can get beets to do your imports in a way that never prompts you for confirmation, and sorts results into three categories/directories: tagged correctly (i.e. strong recommendation), tagged but possibly incorrectly (i.e. non-strong recommendation), and unknown (i.e. no fingerprint match).

---

<div class="post-metadata">

**Author:** ![RollingStar](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/rollingstar/32/728_2.png) [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Post date:** [May 29, 2022, 4:24pm UTC](https://discourse.beets.io/t/large-untagged-library/2093/6 "2022-05-29T16:24:03Z")

</div>

> [@ctrueden](#):
>
> [`strong_rec_thresh`](https://docs.beets.io/en/stable/reference/config.html#autotagger-matching-options)

My config has some examples on how to tweak the autotagger. I can’t guarantee it works. (And don’t just copy paste the whole thing.)

> <https://github.com/RollingStar/dial-beets/blob/master/config.yaml#L22>

---

<div class="post-metadata">

**Author:** ![timgineer69](https://avatars.discourse-cdn.com/v4/letter/t/d07c76/32.png) [@timgineer69](https://discourse.beets.io/u/timgineer69)\
**Post date:** [May 30, 2022, 1:25am UTC](https://discourse.beets.io/t/large-untagged-library/2093/7 "2022-05-30T01:25:08Z")

</div>

> [@RollingStar](#):
>
> I can’t guarantee it works. (And don’t just copy paste the whole thing.)

I certainly wouldn’t just copy-pasta such a complex config. However, it is jam packed with notes and lots of helpful hints. Thanks for that.

(Also, as a matter of personal principal, I never copy-pasta anything. Even if I want that exact bit of code, I still hand type it out. Makes me think very carefully about every line.)
