# Path configuration for Naming Vinyl tracks according to MB track column labels

**URL:** <https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436>\
**Category:** Help\
**Created:** [August 1, 2018, 11:35am UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436 "2018-08-01T11:35:10Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matt07211](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Matt07211](https://discourse.beets.io/u/Matt07211)\
**Post date:** [August 1, 2018, 11:35am UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/1 "2018-08-01T11:35:11Z")

</div>

I’ve got a few Vinyl rips I am importing with beets, an example is [https://musicbrainz.org/release/b3d3f70c-5a87-4a5d-9d74-8aa0fa5a4a4b](https://musicbrainz.org/release/b3d3f70c-5a87-4a5d-9d74-8aa0fa5a4a4b)

Which ends up with the following in my music directory

```bash
matt07211@fbi-hq /mnt/3TB-Drive-01/Audio/Music/The Prodigy $ ls -R \(1997\)\ The\ Fat\ Of\ The\ Land\ \[Vinyl\]/
'(1997) The Fat Of The Land [Vinyl]/':
'Disc 01' 'Disc 02'

'(1997) The Fat Of The Land [Vinyl]/Disc 01':
'01. Smack My Bitch Up.flac' '03. Diesel Power.flac' cover.jpg
'02. Breathe.flac' '04. Funky Shit.flac'

'(1997) The Fat Of The Land [Vinyl]/Disc 02':
'01. Serial Thrilla.flac' '03. Narayan.flac' '05. Climbatize.flac'
'02. Mindfields.flac' '04. Firestarter.flac' '06. Fuel My Fire.flac'

```

And I want the End result to look like

```bash
matt07211@fbi-hq /mnt/3TB-Drive-01/Audio/Music/The Prodigy $ ls -R \(1997\)\ The\ Fat\ Of\ The\ Land\ \[Vinyl\]/
'(1997) The Fat Of The Land [Vinyl]/':
'Vinyl 1' 'Vinyl 2'

'(1997) The Fat Of The Land [Vinyl]/Vinyl 1':
'A1. Smack My Bitch Up.flac' 'B1. Diesel Power.flac' cover.jpg
'A2. Breathe.flac' 'B2. Funky Shit.flac'

'(1997) The Fat Of The Land [Vinyl]/Vinyl 2':
'C1. Serial Thrilla.flac' 'C3. Narayan.flac' 'D2. Climbatize.flac'
'C2. Mindfields.flac' 'D1. Firestarter.flac' 'D3. Fuel My Fire.flac'

```

So my questions are;

- Is beets able to get the exact contents of the # column on the MusicBrainz Website.
- Is beets able to get the Disc Title Label from the site and use it as the folder name?
- If the answer is yes to at least one of those questions, how would I go about doing that/making use of that data?

My config

```auto
############################################################################
## Beets Configuration file.
## ~./config/beets/config.yaml
#############################################################################

### Global Options
library: /mnt/3TB-Drive-01/Audio/.musiclibrary.db
directory: /mnt/3TB-Drive-01/Audio/
plugins:
    # Autotagger Extensions
    - fromfilename
    # Metadata Plugins
    - edit
    - fetchart
    - embedart
    - ftintitle
    - lastgenre
    # Path Format Plugins
    - inline
    # Interoperability
    - badfiles
    - play
    # Miscellaneous Plugins
    - convert
    - duplicates
    - export
    - fuzzy
    - info
    - missing
    - random
    - web
    # Other/External Plugins
    - copyartifacts
    #- check

per_disc_numbering: true

# General Configuration
ui:
    color: yes

import:
    write: yes
    copy: yes
    move: no
    resume: ask
    incremental: yes
    quiet_fallback: skip
    log: /mnt/3TB-Drive-01/Audio/.beet.log
    bell: yes

# Done in order listed. Default is special and will always go at the end.
# e.g. If I had an album with the albumtype $soundtrack and $compilation
# Then the path that matchs first takes precedence.
paths:
    default: Music/$albumartist/($year) $album%aunique{,media mastering label catalognum albumdisambig}%if{$ep,%upper{ [$albumtype]}}%if{$single,%title{ [$albumtype]}}%if{$live,%title{ [$albumtype]}} %if{$mediav,[Vinyl]}%if{$mediav2,[Vinyl]}/%if{$multidisc,Disc $disc/}$track. $title
    albumtype:soundtrack: Music/Original Sound Tracks (OST)/$album%aunique{,media mastering label catalognum albumdisambig} ($year) %if{$mediav,[Vinyl]}%if{$mediav2,[Vinyl]}/%if{$multidisc,Disc $disc/}$track. %if{$multiartist,$artist -} $title
    christmas:1: Christmas Music Collection/$artist - $title
    singleton: Music/Non-Album/$artist/$title
    comp: Music/Compilations/$album%aunique{,media mastering label catalognum albumdisambig} ($year) %if{$mediav,[Vinyl]}%if{$mediav2,[Vinyl]}/%if{$multidisc,Disc $disc/}$track. $artist - $title
    albumtype:other: Other/$albumartist/$album%aunique{,media mastering label catalognum albumdisambig} %if{$ep,%upper{[$albumtype]}}%if{$single,%title{[$albumtype]}}%if{$live,%title{[$albumtype]}} %if{$mediav,[Vinyl]}%if{$mediav2,[Vinyl]}($year)/%if{$multidisc,Disc $disc/}$track. $title
    albumtype:audiobook: Audiobooks/$artist/$album%aunique{}/%if{$multidisc,Disc $disc/}$track. $title

# Plugin Configurations
fetchart:
    store_source: yes

embedart:
    # I dont want album art auto-embedded
    auto: no

convert:
# auto: yes
    copy_album_art: yes
    album_art_maxwidth: 600
    dest: /mnt/3TB-Drive-01/Audio/Music [Mobile version]/
    embed: yes
    never_convert_lossy_files: yes
    format: opus
    formats:
        opus:
            command: ffmpeg -i $source -y -vn -acodec libopus -ab 128k $dest
            extension: opus.ogg
            # Above is to work around android media scanner, opus is included 
            # in the file extension for making it easier on me in the future
            # when android media scanner picks up opus extensions properly

copyartifacts:
    extensions: .cue .CUE .log .LOG .jpg .jpeg .png .accurip
    print_ignored: yes

lastgenre:
    count: 5

item_fields:
    multidisc: 1 if disctotal > 1 else 0
    mediav: 1 if media == '12" Vinyl' else 0
    mediav2: 1 if media == 'Vinyl' else 0
# multiartist: 1 if albumartist =='Various Artists' else 0
    ep: 1 if albumtype == 'ep' else 0
    single: 1 if albumtype == 'single' else 0
    live: 1 if albumtype == 'live' else 0

play:
    command: /usr/bin/deadbeef

```

or the question phrased a different way, how fine grained level of control can I achieve with the current beets software?

---

<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:** [August 1, 2018, 12:36pm UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/2 "2018-08-01T12:36:44Z")

</div>

> [@Matt07211](#):
>
> - Is beets able to get the exact contents of the # column on the MusicBrainz Website.
> - Is beets able to get the Disc Title Label from the site and use it as the folder name?

- Perhaps you’d be interested in `$track_alt`, as implemented in [#2363](https://github.com/beetbox/beets/pull/2363)?
- Similarly, we have a `$disctitle` field. Have you checked whether that contains the information you’re after?

---

<div class="post-metadata">

**Author:** ![Matt07211](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Matt07211](https://discourse.beets.io/u/Matt07211)\
**Post date:** [August 1, 2018, 12:47pm UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/3 "2018-08-01T12:47:44Z")

</div>

Those both look like a exactly what I was asking about, that’s awesome!

But that kind of information bwas lacking from the documentation, [https://beets.readthedocs.io/en/latest/reference/pathformat.html](https://beets.readthedocs.io/en/latest/reference/pathformat.html) , which makes finding these useful values more difficult.

After modifying my path correctly, would the best course of action ve beet move, or would beets need to pull data from musicbrainz again before the beeg move command for `$disctitle`

---

<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:** [August 1, 2018, 1:28pm UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/4 "2018-08-01T13:28:40Z")

</div>

Great! Any chance we can enlist your help in improving the docs? It’s always hard to keep that list of fields up to date…

---

<div class="post-metadata">

**Author:** ![Matt07211](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Matt07211](https://discourse.beets.io/u/Matt07211)\
**Post date:** [August 2, 2018, 10:04am UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/5 "2018-08-02T10:04:47Z")

</div>

I can definitely give it a crack some time next week once I get my current pile of work out of the way.

---

<div class="post-metadata">

**Author:** ![Matt07211](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Matt07211](https://discourse.beets.io/u/Matt07211)\
**Post date:** [August 15, 2018, 8:58am UTC](https://discourse.beets.io/t/path-configuration-for-naming-vinyl-tracks-according-to-mb-track-column-labels/436/6 "2018-08-15T08:58:55Z")

</div>

Oh yea for any [future users](https://xkcd.com/979/) the following inline block works the best

```auto
item_fields:
    vinyl: 1 if media in ['12" Vinyl', 'Vinyl'] else 0

```
