9 votes

How do you organize your downloaded music library?

Recently, this post was brought back to the front page with some fresh replies and it got me wondering how those of you with large (digital) music libraries organize them?

I'm not very tech savvy so I primarily just have my modestly sized library saved in folders by artist, but that leads to some folders only having one song in them which can be annoying to navigate when I need to. I have been thinking about just having all my songs dumped into one folder, since I'm able to filter them by artist/album in Foobar anyway.

13 comments

  1. [2]
    hungariantoast
    Link
    I just organize the files and folders like this: Artist folder Album folder Song file If I have more than one copy of a particular song, then I will add a folder with the name of the song, and...

    I just organize the files and folders like this:

    • Artist folder
      • Album folder
        • Song file

    If I have more than one copy of a particular song, then I will add a folder with the name of the song, and have each song file stored in that.

    I organize everything by hand (and even posted about it not too long ago), but in the future I am absolutely going to be interested in automating the organization of my files.

    I read about another user's workflow, I think it was @Bauke, and they used tags and a custom script to organize everything automatically. I think I would like to do something similar.

    @Akir recommended to me this neat software called MusicBrainz Picard. Aside from the cool name, the program also seems really powerful, and it works for Linux. I'll probably check that out first and see how well it works out for what I want to accomplish.

    5 votes
    1. Bauke
      (edited )
      Link Parent
      Yeah, uh, my setup is a little overkill, I don't recommend it unless it's worth your time. If I downloaded a new song and wanted to add it, this would be the process: I download the song to a...

      Yeah, uh, my setup is a little overkill, I don't recommend it unless it's worth your time. If I downloaded a new song and wanted to add it, this would be the process:

      1. I download the song to a directory called Raw Unsorted, the song in question could be any kind of audio or video file, it doesn't matter as the script will convert it to Opus anyway (more on that later).
      2. When I have the time and patience to format and sort the song, I will change the filename to something like this (though it supports multiple artists, (multiple) featured artists and remixes too): The Artist - The Song Title [The Album] {The Index}.
      3. Once done I dump this file into another directory called Raw Sorted, this is where it will live until I come up with a worse better system (at the moment there are 922 files in there).
      4. Then I run the script and it will do its thing:
        1. Validate the filename, sometimes I fuck it up.
        2. Extract all the data from the filename and put it in a data structure that's easier to use (see SongInfo below).
        3. Create a directory structure in Opus like Opus/Artist/Album/.
        4. Convert the file (again, which can be whatever, as long as ffmpeg can convert it) to Opus (see command below, it's some awful JavaScript string handling :P) and save it to that directory as Index Artist - Title.opus.
      5. And done.

      That should be a brief overview of it, I was initially planning on making it public but it's such a mess lol. Maybe I should give it another rewrite or 2 and then release it. :P

      Technical Detail Stuff
      // The validation regex for filenames that I just stumbled across while reading the code.
      // I have no memory of writing this, but I must have done it and it seems to do the trick.
      /.+ - .+\[.+](?: {.+})?\..+/
      
      // SongInfo data structure.
      // Properties marked with ? are optional.
      SongInfo {
        album?: string;
        albumIndex?: number;
        artists: string[];
        directoryPath: string;
        featuredArtists?: string[];
        filePath: string;
        remixArtists?: string[];
        title: string;
        isAlbum: boolean;
        isMix: boolean;
        isRemix: boolean;
        isSingle: boolean;
      }
      
      // The ffmpeg call to convert the file to Opus, a masterpiece of shit.
      const {stderr} = await execa(
        `ffmpeg -loglevel quiet -stats -i "${join(
          song.directoryPath,
          song.filePath
        )}" ` +
          '-c:a libopus -b:a 128K ' +
          `-metadata title="${
            song.title
          }" -metadata artist="${song.formatArtists()}" ` +
          `-metadata album="${song.album!}" -metadata track="${song.albumIndex!}" ` +
          `"${join(path, songPath)}"`,
        {shell: true}
      );
      log(stderr);
      
      Sample Tree
      Raw Sorted
      ├── Anathema - Internal Landscapes [Weather Systems] {9}.mkv
      ├── Anathema - Lightning Song [Weather Systems] {4}.mkv
      ├── Anathema - Sunlight [Weather Systems] {5}.mkv
      ├── Anathema - The Beginning And The End [Weather Systems] {7}.webm
      ├── Anathema - The Gathering Of The Clouds [Weather Systems] {3}.webm
      ├── Anathema - The Lost Child [Weather Systems] {8}.mkv
      ├── Anathema - The Storm Before The Calm [Weather Systems] {6}.mkv
      ├── Anathema - Untouchable Part 1 [Weather Systems] {1}.mkv
      └── Anathema - Untouchable Part 2 [Weather Systems] {2}.webm
      
      Opus/Anathema
      └── Weather Systems
          ├── 1 Anathema - Untouchable Part 1.opus
          ├── 2 Anathema - Untouchable Part 2.opus
          ├── 3 Anathema - The Gathering Of The Clouds.opus
          ├── 4 Anathema - Lightning Song.opus
          ├── 5 Anathema - Sunlight.opus
          ├── 6 Anathema - The Storm Before The Calm.opus
          ├── 7 Anathema - The Beginning And The End.opus
          ├── 8 Anathema - The Lost Child.opus
          └── 9 Anathema - Internal Landscapes.opus
      
      3 votes
  2. herson
    Link
    Artist Name 19XX - Album Name 01 - Song Name 02 - Song Name 03 - Song Name 20XX - Album Name 01 - Song Name 02 - Song Name 03 - Song Name I use Kid3 on mac to organize the ID3 tags. Back when...
    Artist Name
        19XX - Album Name
            01 - Song Name
            02 - Song Name
            03 - Song Name
        20XX - Album Name
            01 - Song Name
            02 - Song Name
            03 - Song Name
    

    I use Kid3 on mac to organize the ID3 tags. Back when windows was my main OS, I used AIMPTools for the task, it was one of my favorite software ever to use.

    2 votes
  3. [2]
    DanBC
    Link
    Music on my MP3 player is correctly tagged and named. Music on hard drives is split into 3 groups. 1) Correctly tagged and named, and nicely organised into directories. 2) Correctly named but...

    Music on my MP3 player is correctly tagged and named.

    Music on hard drives is split into 3 groups. 1) Correctly tagged and named, and nicely organised into directories. 2) Correctly named but poorly tagged, or poorly named but correctly tagged, and nicely organised into directories 3) a big mess of stuff that is poorly named, or poorly tagged, or both, and scattered across a few different directories.

    My directory structure is fairly simple: name of band, name of album, files. Some directories are just name of band and then a list of files.

    I don't have a huge collection, it's only 80 GB or so.

    I found MusicBrainz Picard to be really useful to tag files.

    2 votes
    1. tomf
      Link Parent
      If your files are correctly named and you have a good, consistent structure, you could bulk-tag these using Foobar2000. e.g. The Beatles/1965 Rubber Soul/01 Drive My Car.flac would use...

      If your files are correctly named and you have a good, consistent structure, you could bulk-tag these using Foobar2000.

      e.g. The Beatles/1965 Rubber Soul/01 Drive My Car.flac would use %artist%\%year% %album%\%tracknumber% %title%

      Picard is also great, but I found that it isn't always as consistent as I had expected.

      1 vote
  4. Whom
    Link
    /Music/Artist, The/Album/Song.flac

    /Music/Artist, The/Album/Song.flac

    1 vote
  5. tomf
    (edited )
    Link
    For me, Artist/Year Album/Track Title If it’s Various Artists, then I have the artist in brackets after the title. The Year is the original release year. edit: for those using foobar, this is my...

    For me,

    Artist/Year Album/Track Title
    

    If it’s Various Artists, then I have the artist in brackets after the title.

    The Year is the original release year.

    edit: for those using foobar, this is my DUI album list

    $swapprefix(%<album artist>%)|%date% %album%|[[%discnumber% ]%tracknumber% ][%track artist% - ]%title%
    

    The only difference between this and file view is that file view doesn't have the prefix swapped. Otherwise, everything is identical.

  6. musa_totter
    Link
    I listen to mostly soundtracks, so I organize it by album, and that's it. Each album gets its own folder, and singles go together in a different folder. That way, every time I download a new...

    I listen to mostly soundtracks, so I organize it by album, and that's it. Each album gets its own folder, and singles go together in a different folder. That way, every time I download a new album, I make a folder, pop the files in there, and I'm done.

    I would caution against putting everything in the same folder together. Duplicate filenames might be rare in practice, but the possibility would bug me. You might be better suited by software that can organize it for you. I can't name any off the top of my head, though (does anyone know if mp3tag can do that?)

  7. DougM
    Link
    Artist / Album / Track on foobar2000.

    Artist / Album / Track on foobar2000.

  8. culturedleftfoot
    Link
    In terms of directory structure, everything is in two huge folders, Sorted Music and To Be Sorted. The sorted stuff mostly goes Broad music genre or category/Album artist - Album (Album...

    In terms of directory structure, everything is in two huge folders, Sorted Music and To Be Sorted. The sorted stuff mostly goes Broad music genre or category/Album artist - Album (Album year)/Track number. Track title to organize my full albums. I have a LOT of loosies, though, much of which was only released as singles or 7", or have different edits between the white label promo/single/album. I typically save those in the top-level genre folder by Artist - Track title (Relevant factor) and let tags take care of the rest of the details. My setup's a work-in-progress but this has worked well for me so far.

    For all your tagging needs, I highly, highly recommend TagScanner if you're on Windows. It's lightweight, customizable, flexible, imports info from databases like Discogs/MusicBrainz/various Amazon domains, automates file management, and lots of other neat stuff. I think it even supports some light scripting.

  9. asoftbird
    Link
    Artist name - Album name in the Music folder. Then added into WinMedia Player with proper labeling/album art/etc since it's simple to edit things and I don't require much more. Currently I don't...

    Artist name - Album name in the Music folder. Then added into WinMedia Player with proper labeling/album art/etc since it's simple to edit things and I don't require much more.

    Currently I don't have much (3 artists!) because most is on the streaming service I use, but certain bands only have their hifi files on Bandcamp so I use WinMP for those.

  10. Staross
    (edited )
    Link
    I don't organize them at all, I just put all albums in a folder as they comes (about 18'000 files). Then I import it in foobar and if I need to locate or modify files I use foobar to do it. I...

    I don't organize them at all, I just put all albums in a folder as they comes (about 18'000 files). Then I import it in foobar and if I need to locate or modify files I use foobar to do it. I don't think baking a structure into the files hierarchy has much value, you better add tags and create playlists and stuff like that, it's more flexible and robust.

  11. Hidegger
    Link
    Music/Source or some other random folder name/Artist - Album (year) [MediaFormat] [cat#] [any other special notes the cat# doesn't fully solve] Source is where I DL'd it from. Year is the original...

    Music/Source or some other random folder name/Artist - Album (year) [MediaFormat] [cat#] [any other special notes the cat# doesn't fully solve]
    Source is where I DL'd it from. Year is the original release year, since the cat# basically covers any type of re-issue or remaster. MediaFormat would be something like [WEB FLAC], [WEB MP3 V0], [Vinyl FLAC], [Tape FLAC]. Special notes are usually simple things [RE, RM, DLX ED, Bonus Tacks] but is rarely used.

    There is no need to organize the folder structure because MediaMonkey alphabetizes the list and has options for sorting out specific things if needed. Also the program Everything lets me search my entire PC pretty quickly for files and folders if I am looking for something specific. I also use foobar2000 for transcoding to mp3 but haven't bothered to figure out how to fully customize it to my liking, where MM seems to do a fine job and looks good almost out of the box.