Create an advanced audio batch (command line)


Overview

Use this method to deposit audio files along with additional supporting files containing technical and structural metadata about your audio – such as ADL audio decision lists, AES-57 technical metadata files and AES-60 structural files (playlists) for governing audio playback.


If you don't need to deposit these additional files with your audio, use the procedures described in the sections on Manually Build Audio Objects from Template and Automatically Build Audio Objects from Template to deposit your audio instead. If you want to deposit only audio files and corresponding AES-60 playlists, you may do so using the Audio genre and Text genre in Batch Builder GUI. First deposit the audio and then deposit the playlists as a separate Text object batch. See Manually build audio objects from template and Automatically build audio objects from template for depositing simple audio and Creating Text Object Batches for depositing audio playlists as text objects.


Note that BB2 in advanced mode is COMMAND LINE ONLY. Required and optional metadata such as deposit settings, object and file metadata is supplied using special configuration files.

Default audio properties

Default audio properties for advanced audio are stored in the “/conf/advanced/audio” directory of Batch Builder install directory. These files are never changed under normal circumstances. They govern default metadata assignments for advanced audio. Most default assignments can be overwritten by object-specific, and file-specific properties files.

The following default audio properties files are present in the “/conf/advanced/audio” directory:

  • archival_directory.properties
  • default.properties
  • deliverable_directory.properties
  • misc_directory.properties
  • playlists_directory.properties
  • production_directory.properties

The following settings are set in each file:

archival_directory.properties

  • #properties for the archival directory
  • usageClass=LOWUSE
  • isFirstGenerationInDrs=yes
  • role=ARCHIVAL_MASTER

default.properties

  • #directories to scan for content. Each directory could have a
  • # corresponding _directory.properties file
  • dirs=archival,production,deliverable,misc
  • cmid=CMID-2.0

deliverable_directory.properties

  • #properties for the deliverable directory
  • usageClass=HIGHUSE
  • isFirstGenerationInDrs=no
  • role=DELIVERABLE

misc_directory.properties

  • #properties for the misc directory
  • usageClass=LOWUSE
  • isFirstGenerationInDrs=unspecified

playlists_directory.properties

  • #properties for the playlists directory
  • usageClass=HIGHUSE
  • isFirstGenerationInDrs=unspecified

production_directory.properties

  • #properties for the production directory
  • usageClass=LOWUSE
  • isFirstGenerationInDrs=no
  • role=PRODUCTION_MASTER

Command Line Syntax

The existing Batch Builder Windows bat and Unix shell scripts are used to launch Batch Builder in advanced mode. The syntax is:

  • On PC: batchbuildercli –advanced audio –d [object directory path]
    • Use Windows style directory separator '\'
  • On Mac or Linux: ./batchbuildersli.sh -advanced audio –d [object directory path]
    • use UNIX style directory separator '/'

Note that by default the object directory name serves as the object Owner Supplied Name (you can override that in audio.properties file).

Example 1 (Windows): batchbuildercli –advanced audio –d "C:\mybatch\004390909"

Example 2 (Mac / Linux): ./batchbuildersli.sh -advanced audio -d /mybatch/004390909

Additional command line optional properties

All command line optional properties for deposit settings, object settings and file settings that are available for "simple CLI" in Batch Builder are also now available in advanced CLI. See more here: https://harvardwiki.atlassian.net/wiki/x/xw2VAg

Procedure

Arrange the content in the directory structure required by Batch Builder

Below is a sample directory structure created in preparation for use with Batch Builder. Underlined directories must be named as shown. Other directories can exist in the directory structure but Batch Builder will ignore them.

Figure 1: Sample Directory Structure
/batch/
audio.properties  (required)
 relationships.csv   (required for derivative  relationships)
 mods.xml  (optional;
descriptive metadata for the object)  
/batch/object/
archival/  (required if there are archival master files)
  digiprov.xml  (optional process history for object)
         sub_dir1_Media/ (“_Media” is an optional suffix)
              file1.wav
              file1.xml (AES57 metadata for file1.wav)
              file1.properties (DRS metadata for file1.wav)                
              file2.wav
              file2.xml  (AES57 metadata for file2.wav)
              file2.properties (DRS metadata for file2.wav)
         sub_dir2_Media/ (“_Media” is an optional suffix)
              file1.wav
              file1.xml  (AES 57 metadata for file1.wav)
              file1.properties (DRS metadata for file1.wav)
              file2.wav
              file2.xml  (AES57 metadata for file2.wav)
              file2.properties (DRS metadata forfile2.wav)
    sub_dir1.adl  (ADL for *.wav files in sub_dir1)
    sub_dir2.adl  (ADL for *.wav files in sub_dir2)
      deliverable/  (required if have deliverable files)
         performances/  (required if have deliverable files)
            file1.mp3
            file1.xml  (AES57 metadata for file1.mp3)
            file1.properties  (DRS metadata for file1.mp3)
            file2.mp3
            file2.xml  (AES57 metadata for file2.mp3)
            file2.properties  (DRS metadata for file2.mp3)
         playlists/  (required for playlists)
            playlist1.xml  (AES60 file)
            playlist2.xml  (AES60 file)
      misc/  (optional; contains any # of files in any format)
      original/  (optional)
         audio_object.xml(optional AES57 metadata for original item)
      production/  (required if have production master files)
         sub_dir1_Media/ (“_Media” is an optional suffix)
              file1.wav
              file1.xml  (AES57 metadata for file1.wav)
              file1.properties  (DRS metadata for file1.wav)
              file2.wav
              file2.xml  (AES57 metadata for file2.wav)
              file2.properties  (DRS metadata for file2.wav)
         sub_dir2_Media/ (“_Media” is an optional suffix)
              file1.wav
              file1.xml  (AES57 metadata for file1.wav)
              file1.properties  (DRS metadata for file1.wav)
              file2.wav
              file2.xml  (AES57 metadata for file2.wav)
              file2.properties  (DRS metadata for file2.wav)
         sub_dir1.adl  (ADL for *.wav files in sub_dir1)
         sub_dir2.adl  (ADL for *.wav files in sub_dir2)
      workspace/  (optional; can contain any # of files in any format)

Create the required audio.properties configuration file

This file should be put into the root of the batch directory. The file contains all required batch level and object level settings. The format of it must be:

  • US-ASCII text
  • Each line in "property=value" format
  • Lines can be commented out by starting the line with the '#' symbol.
  • Can't use reserved XML characters (see the table below for full list). 
  • Table of properties. The table below lists the properties that can be specified in this file. An example audio.properties file is shown in Figure 2.

 

Property

Valid Values

Example

Meaning

accessFlag

one of: P,R,N

R

The default access flag to use for this object's files. Can be overridden by the access flag specified in file level properties files.

adminCategoryA comma-delimited list of one or more Wordshack URIsadminCategory=http\://id.lib.harvard.edu/wordshack/adminCategory/12345Administrative categories to associate with the object

alephID

a valid Aleph or Alma Identifier

009513791

or

990086637850203941

Aleph or Alma Number for MODS import

http://drs2-qa.hul.harvard.edu:9037/drs2_webadmin/object?objectId=1000340

authorityPath

a valid NRS authority path

FHCL.Loeb

Authority path for any URNs that will be created for this object's files

batchName

100 character limit; Valid values: ASCII alpha-numeric characters, / "-" / "." / "_" / "~"/

The following reserved XML characters should be excluded:
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" sub-delims = "!" / "$" / "&" / "'" / "(" / ")"/ "*" / "+" / "," / ";" / "=" /

Valid value examples: Project_137_4a~5.1a
Batch-123_23yux-a.21

Invalid values examples:
batch&&<<>>><!
project清代盐政与盐稅

Name for the batch

billingCode

a valid Billing Code

FHCL.MUSI.MUS_004

Billing code for the object

depositAgent

a valid 8 digit HUID

xxxxxxxx

Person depositing the object.

depositAgentEmail

a valid email addressjohn_harvard@harvard.eduEmail of person depositing the object. This email has to exactly match a depositor's Wordshack entry email.

objectOSN

A unique value within the content's Owner Code

A299ff

Name for the object

ownerCode

a valid Owner Code

FHCL.MUSI

Owning unit of the object

resourcePattern

an NRS resource pattern, see Section 7. Assigning File URN Resource Name Patterns

{n}

Resource name pattern for any URNs created for this object's files

role

currently no roles for audio object are used

 

One or more roles for the object (not likely to be used - included to support future uses)

failureEmail

one or more valid email addresses separated by commas

example1@fas.harvard.edu, example2@fas.harvard.edu

People who will be sent failed loader reports

successEmail

one or more valid email addresses separated by commas

example1@fas.harvard.edu, example2@fas.harvard.edu

People who will be sent successful loader reports

successMethod

one of: EMAIL, DROPBOX, ALL

EMAIL

Distribution method for the loader reports

embargoDuration

 

 

Embargo duration value in days, months or years

embargoBasis

 

 

One of the controlled values: 

  • Harvard policy
  • license
  • risk assessment
  • statute

copyright

embargoLicense

 

 

URN of the DRS license object – corresponds to BB GUI field Documentation

embargoLicenseTerms

 

 

Corresponds to BB GUI field Documentation Note

embargoGrantStart

 

 

Corresponds to BB GUI field Start Date

embargoGrantEnd

 

 

Corresponds to BB GUI field End Date

harvardPolicy

 

 

URN of an existing Harvard policy object in DRS

license

 

 

URN of an existing license object in DRS

metsLabel

METS Label display value (currently displays in citation label of PDS Document objects)

 

 

methodology

Object methodology

 

 

nonPublicNote

Value for the non-public note field

 

Value for the non-public note field

producer

A comma-delimited list of one or more Wordshack URIs – You can alternatively use the same string formatting used in the BB GUI

 

Object producer – controlled value from Word Shack

relatedLinks

Related links values – displays in PDS

relatedLinks="Relationship=value --- URI=value"
Example:
relatedLinks="Relationship=some website --- URI=http://library.harvard.edu/lts"

 

Related link to any URL

harvardMetadataLinks

harvardMetadataLinks="Type=LinkType --- Identifier=value --- Label=DisplayLabel”
Example:
harvardMetadataLinks="Type=Aleph --- Identifier=000012345 --- Label=HOLLIS”
 
The LinkType value for harvardMetadataLinks comes from a controlled list. The following are valid link types (case sensitive):

Aleph

Alma

Finding Aid

Gale

HLSL

HULPR

Local

OCLC

RLIN

URI

DASH

Shared Shelf

harvardMetadataLinks=Type\=Finding Aid --- Identifier\=13527824 --- Label\=Finding Aid,Type\=Aleph --- Identifier\=13527824 --- Label\=HOLLIS,Type\=Alma --- Identifier\=90086637850203941 --- Label\=HOLLIS_ALMA

 

Harvard Metadata Link to a cataloging and discovery system

has_documentation

Object URN of a related Documentation object in DRS

 

 

has_methodology

Object URN of a related Methodology object in DRS

 

 

 

Figure 2: Sample audio.properties file
#properties for the object
alephID=009513791
urnAuthorityPath=FHCL.Loeb
batchName=Project_137_4a
billingCode= FHCL.MUSI.MUS_004
depositAgent=12345678
depositAgentEmail=john_harvard@harvard.edu
failureEmail=example1@fas.harvard.edu,example2@fas.harvard.edu
objectOSN= A299ff
ownerCode=FHCL.MUSI
resourcePattern={n}
successEmail=example1@fas.harvard.edu,example2@fas.harvard.edu
successMethod=EMAIL

Place the audio.properties file at the root of the batch directory, e.g.:

…/my_batch-19a326/
    audio.properties
 

Create relationships.csv file.

Put this file at the root of the batch directory.

This must be a comma-separated file named
relationships.csv, supplying relationships between files in the object, and/or between this object and existing DRS objects, and/or between files in this object and existing DRS files or objects.

The file paths inside the file need to be in the form supported by the OS on which you are running Batch Builder (POSIX for MAC/Linux and DOS-style for Windows).

The syntax must be:

[Source_filePath],[relationship_name],[target_type],[target]

where

    • Source_filePath:
      • for files in this object: relative path to the source file from the object directory for this object

    • relationship_name, one of:
      • HAS_SOURCE (indicates derivative relationships between files in this object)
      • HAS_DOCUMENTATION (for pointing from files or the object to DRS-stored documentation files or objects)
      • HAS_METHODOLOGY (for pointing from the object to a DRS-stored methodology object)
      • HAS_RIGHTS (for pointing from files or the object to DRS-stored rights files or objects)
    • target_type, one of:
      • RELATIVE_PATH (used for a relative file path)
      • HUL_DRS_OBJECT_URN (used for the URN of a DRS object)
        For example: urn-3:HUL.DRS.OBJECT:175616
        These are persistent IDs new to DRS2 given to all objects that always have a HUL.DRS.OBJECT authority path
      • OBJECT_OSN (used for the owner supplied name of a DRS object having the same owner code as this object) Note that the object ingest service needs to be updated to support handing relationships using OBJECT_OSN
      • HUL_DRS_OBJECT_ORACLE – DRS ID of the target object
      • HUL_DRS_FILE_ORACLE – DRS ID of the target file
    • Target: relative path to a file, DRS object URN or DRS object owner supplied name

      Lines can be commented out by starting the line with the '#' symbol

      Sample relationships.csv file. The paths need to be in the form supported by OS you are running Batch Builder on.

      #Derivative audio content relationships:
      deliverable\performances\file1.mp3,HAS_SOURCE,RELATIVE_PATH,production\sub_dir1\file1.wav
      deliverable\performances\file2.mp3,HAS_SOURCE, RELATIVE_PATH,production\sub_dir1\file1.wav
      deliverable\performances\file3.mp3,HAS_SOURCE, RELATIVE_PATH,production\sub_dir1\file2.wav
      deliverable\performances\file4.mp3,HAS_SOURCE, RELATIVE_PATH,production\sub_dir1\file2.wav

      Place this file at the root of the batch directory, e.g.:
      …/my_batch-19a326/
              audio.properties
          relationships.csv

      Note that the following relationships are automatically determined by Batch Builder and should not be listed in the relationships.csv file:
      • HAS_DOCUMENTATION relationships between audio files and audio decision lists deposited at the same time 
      • HAS_PRESENTATION relationships between audio deliverable files and AES60 playlist objects deposited at the same time.

Create MODS file for description metadata (optional)

If manually supplying descriptive metadata, create a MODS file called mods.xml complying with MODS schema versions 3.4 or earlier. See http://www.loc.gov/standards/mods/ for more information about MODS metadata and schemas.

Place this file at the root of the batch directory, e.g.:

…/my_batch-19a326/              
    audio.properties         
    mods.xml         
    relationships.csv

Note that as an alternative to supplying a MODS file, descriptive metadata can be imported from HOLLIS by Batch Builder by providing an Aleph or Alma ID in the audio.properties file.

Provide technical metadata for files in AES-57 format

Optionally provide technical metadata for files in the batch in the AES57 format.

These files should be named the same as the files they describe, except with an xml file extension. For example in Figure 1 above, the file at

      my_batch-19a326/my_object-A299ff/archival/sub_dir1/file1.xml

contains technical metadata for the file at

      my_batch-19a326/my_object-A299ff/archival/sub_dir1/file1.wav

Batch Builder will read in and use the technical metadata supplied by these files but will supplement it with format metadata supplied by FITS (see http://fits.googlecode.com).

Provide file-level properties files for each file

Optionally provide file-level properties files for files in the batch to override Batch Builder-configured metadata values. These files can contain any file-level batch Builder properties. Each properties file contains properties for a specific audio file. It needs to be placed in the same directory with the audio file the properties of which it is listing. The properties that can be provided in the file-level properties files are shown in the Table below.

 

Property

Valid values

Example

Meaning

fileAccessFlag

one of: P,R,N

P

Access level of file

fileAdminCategory 

A comma-delimited list of one or more Wordshack IDs in parentheses  

(id=12345)

Administrative categories to associate with the file

filemethodology

(any text)

 

Notes about the methods performed and/or tools used in the creation, processing or preparation of the content prior to DRS deposit

filerole

comma-delimited list of one or more of#:
ARCHIVAL_MASTER, CONTAINER, DELIVERABLE, DOCUMENTATION, LICENSE, LOG, ORIGINAL_ORDER, PAGE_COORDINATES, PAGE_IMAGE, PAGE_TEXT, PRODUCTION_MASTER, STYLE_SHEET, TARGET_DESCRIPTION, TARGET_IMAGE, THUMBNAIL, AUDIO_DECISION_LIST, PROCESS_FILES, PROCESS_HISTORY

DELIVERABLE

 

fileosn

Alpha-numeric ASCII

34561-a7-bach

Name for the file (not necessarily unique)

isFirstGenerationInDrs

one of: yes, no, unspecified

yes

whether or not the file is the closest version in the DRS to the original capture or creation

isPreferredDeliverableSource

one of: yes, no, unspecified

yes

whether or not the file is the recommended file to use for generating future deliverables

processing

comma-delimited list of one or more of:
CROPPED, BIT_REDUCED, BRIGHTNESS_ADJUSTED,
COLOR_CORRECTED, CONTRAST_ADJUSTED, DENOISED,
DESKEWED, DOWN_MIXED, DYNAMIC_RANGE_COMPRESSED,
EQUALIZED, GAMMA_CORRECTED, LEVEL_ADJUSTED, PHASE_INVERTED, PROCESSED, SAMPLERATE_CONVERTED, SHARPENED

BIT_REDUCED, DENOISED

Key actions taken on the file before it was deposited to the DRS

quality

one of: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

5

Locally-defined measure of quality

usageClass

One of: HIGHUSE, LOWUSE

LOWUSE

Estimate of how frequently the file will be accessed by library users

downloadProhibited
(for audio files)

yes

yes

Audio file must be streamed - direct download will not be permitted. Note that you need to include this property only if value is set to 'yes'. If the value is set to 'no' simply do not include the property. It is set at 'no' by default. If the property is provided and set to 'yes' you also need to set the downloadProhibitedBasis property listed below.

downloadProhibitedBasis* (for audio files)

One of: Harvard policy, license, risk assessment, statute, copyright.

license

Basis for the restrictions or terms of use.

*Required if downloadProhibited property is supplied.

downloadProhibitedLicense
(for audio files)

DRS object URN of the license object

urn-3:HUL.DRS.OBJECT:197548

ID of the documentation within the DRS, e.g. a deposited donor agreement

downloadProhibitedLicenseTerms
(for audio files)

(any text)

90 year policy

A note about the documentation, e.g. the applicable section

downloadProhibitedGrantStart
(for audio files)

A date/timestamp

yyyy-mm-dd
yyyy-mm
yyyy
schema date and schema dateTime formats

Embargo start date

downloadProhibitedGrantEnd
(for audio files)

A date/timestamp

yyyy-mm-dd
yyyy-mm
yyyy
schema date and schema dateTime formats

Embargo end date


Note that because of the way the support for PREMIS rights is implemented in the advanced workflow properties files, you can also set object level embargo and secure storage rights in the audio.properties files. You just need to use the appropriate property names.

These files should be named the same as the files they describe, except with a properties file extension. For example the file at

my_batch-19a326/my_object-A299ff/archival/sub_dir1/file1.properties

would contain metadata for the file at

my_batch-19a326/my_object-A299ff/archival/sub_dir1/file1.wav

Process the batch

See "Batch Builder Execution" section below for batch processing syntax

Batch Builder Execution

Syntax: ./batchbuildercli.sh -advanced audio -d path-to-object-directory
where the path-to-object-directory is a relative or absolute path to the directory containing the content needed to build a single audio object.

For example: 

./batchbuildercli.sh -advanced audio -d /home/prod/content/my_batch-19a326/obj-994533

The program will:

  • Create a directory at workspace/moved_content
  • Put a copy of the files that were in the misc directory in the workspace/moved_content directory
  • Zip up the contents of the misc directory and name it misc_files.zip
  • Create the object descriptor for the audio content
    • The AES57 file at original/?.xml will be interpreted as technical metadata for the original item to be stored in a <sourceMD> element in the descriptor
    • If any AES60 files were included in the playlist directory:
    • Build separate Text objects for each playlist
      • The file name will be used as the object owner-supplied-name
      • Create the object descriptor for each object
      • The descriptor will be named {object-OSN}_descriptor.xml and will be written to the batch directory
      • (Relationships between the playlist object and audio deliverable files will be automatically created by the DRS Loader.)

After executing Batch Builder the following changes should be visible in the batch directory:

/my_batch-19a326/

     batch.xml  (DRS batch loading file)   
     descriptor.xml  (object descriptor for the audio object)   
     my_object-A299ff/      
          misc/         
               misc_files.zip  (files that were in the misc directory)      
          workspace/      
          moved_content/  (contains content in the misc directory)   
     playlist1-A299ff_descriptor.xml  (descriptor for playlist object containing playlist1-A299ff.xml)   
     playlist2-A299ff_descriptor.xml  (descriptor for playlist object containing playlist2-A299ff.xml)

Depositing to the DRS

After executing the script, copy the following portion of the directory structure to your DRS dropbox.

/my_batch-19a326/  (example batch directory)      
     batch.xml      
     descriptor.xml      
     my_object-A299ff/  (example object directory)            
          archival/            
          deliverable/             
          misc/            
          original/            
          production/            
          playlist1-A299ff_descriptor.xml  (example descriptor for a playlist object)            
          playlist2-A299ff_descriptor.xml  (example descriptor for a playlist object)

The DRS loader will not automatically delete any files or directories that are uploaded to a dropbox but that aren't referenced in the object descriptors. These files and directories should be filtered out as part of the transfer process; otherwise they will need to be manually deleted from the dropbox. These include:

  • Any other subdirectories in the object directory (e.g. pre-archival, workspace)
  • Properties files (audio.properties)
  • AES57 files used to indicate metadata for the original item or for audio content files (*.xml)
  • MODS file (mods.xml)
  • Relationships file (relationships.csv)

Notes:

  • Object owner-supplied-names (Object OSNs)

    Object OSNs are required in DRS 2 and must be unique within a Owner Code. Please keep that in mind when explicitly assigning objects names, for example in the audio.properties file; or implicitly for example, by the file names of the AES60 playlists.
  • URNs
    • An object-level URN is automatically given to all objects. These URNs will have a HUL.DRS.OBJECT authority path, e.g.urn-3:HUL.DRS.OBJECT:175844
    • File-level URNs are automatically given to files with the role DELIVERABLE. These URNs will have a local authority path, e.g.urn-3:FHCL.Loeb.Faids:mus00023

On this page: