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
    • 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)
  • Possibility to use the CUE file to split large FLAC files
  • Possibility to detect which attachments are meant to exist and those that are clutter

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