Skip to content
Jonathan Thomas edited this page Oct 24, 2013 · 25 revisions

Here, we'll design the oft-requested attachments feature (see #111).

Important use cases

Upon import of audio files into the Beets library, users may wish to...

  • Move the accompanying .log file into the same directory as the imported audio files.
  • Move the accompanying .CUE file into the same directory as the imported audio files.
  • Move album artwork associated with the audio files.
    • There could be multiple image files.
  • Have the ability to move arbitrary files associated with the audio files, by way of a prompt questioning the user whether or not to import 'file-x.x' or by way of user declaration in an optional command, "include files of .xx".
  • Declare a white list of file extensions they wish to import with the audio files.
  • Support sub-directories
  • Be able to query the database to see all albums with attachments and those without. ie. Find all albums without a .log file (so a user can re-rip those albums, for example).
  • Track the attachments in the database as well as move them
    • Could open up possibilities to use the CUE file to split large FLAC files
    • Possibility to detect which attachments are meant to exist and those that are clutter
    • Ability to query the database to see which attachments exist and where

Optional use cases

  • Incorporate a log checker function to be able to see a list of all "100% Accurate Rip" Logs and those that aren't 100%.
  • Convert cue sheets / log files to UTF-8.
  • If a log or cue file is found, rename the file to $artist - $album.cue/log or other given variables names.
  • If several images are present in the original folder, put them in an "artwork" directory in the new library folder (front.jpg, back.jpg, cd.jpg)

Beets functionality

Beets would need new functionality to cover the above use cases, this is a list of what Beets would need to do.

  • Upon import, Beets would need to be able to analyse a folder and prompt the user that additional attachments exist.
  • Beets would need to be able to offer options to the user when importing, ie. beets import --attachments=log,cue ...

Beets attach queries

TBC...

Clone this wiki locally