The Busby MAM System is a lightweight MAM system, with a flexible item hierarchy, an out of the box user interface, and full integration with the wider Busby ecosystem (e.g. scripting helper functions, API).
It is built on top of the Busby Resource Groups service, meaning it also has hooks into Busby Resource Group Indexers for fast searching of any metadata in the system, full audit trails and version history and out of the box database syncrhonisation and service failover.
To get started, you will need to add a Busby MAM Service to your system. This can be found in the Busby Configuration Editor under Services. Click the plus icon to add a new service, and select Media Asset Management Service and click add service.
Once you have added your MAM service, assign it to run on one or more Busby hosts.
Adding a Busby MAM Service will also add a MAM Service Resource Group, which you will see under Resource Groups in the left hand side of the configuration editor. You will also need to assign this to run on one or more Busby hosts.
The Busby MAM System allows you to use and customise the appropriate item types for your use case. For example you might have a simple clip handling database with a flat item structure, or you might need a more complex hierarchy like series --> episode --> version. These are customisable in the configuration of the Busby MAM Service.
You need to configure at least one item type to use the Busby MAM System. To do this, in the MAM service configuration, click "Add item" and fill in the form that pops up.
The Resource type ID is the ID that you will refer to the item type by. This will be used when referencing the item type in Busby Scripts, Nano Services, UI configuration etc. The Resource type display name is the display name for the item type, and will be displayed in the MAM UI and Resource UI (if configured). In this example we will add a series --> episode --> version hierarchy.
Once the item types have been added, the hierarcy can be set and the item types can be configured. To configure the hierarchy, select the item type's parent from the drop down. You can then add one or more ID types, which will be used for searching and identifying assets. This is useful if you have a mixture of ID types in house (for example legacy MAM/scheduling system IDs). For each ID type you can decide if this is a required value, and you can select the default ID.
Busby items have a set metadata schema (which can be extended by adding custom user metadata). Please see xxx for more information.
There are also some general setup options for the Busby MAM System:
All items in the Busby MAM System can have metadata added to them. Various metadata fields are implemented out of the box, but is also possible to add custom fields by using user metadata forms. It is possible to have one form (schema) for items and one form (schema) for instances.
Forms are selected in the top part of the configuration screen for the Busby MAM Service. You can also click the icon next to the drop down to make a new form. Note that you must select "Simple Busby Form" as the form type.
The Mam search service provides a convenient way to query the MAM
The Mam search service comes with a number of built-in search types. These are always available to search against. This can be achieved by using the search
call on the service. This takes in an array of search parameters.
For example to search for all vresions that have an ID that starts ABC you would use the following call
busby.services.mamSearchService.search({
"parameters": [
{type: 'id', value: 'ABC*'},
{type: 'itemType', value: 'version'}
]
}
)
The following table shows all the standard search types that are available.
Type | Description | Example |
---|---|---|
freetext | Search for matching text across title, synopsis and ids. Wildcards can be added as describedhere | {type: 'freetext', value: 'fred*'} |
id | Search for items with specific IDs | {type: 'id', value: '5917'} |
title | Search for items with matching titles on a particular itemType | {value: 'FRED FANNAKAPAN', type: 'title', subType: 'track'} |
location | Search for items with instances on a location | {value: 'server', type: 'location'} |
genre | Search for items with a productionMetadata genre | {value: 'Commercial', type: 'genre'} |
itemType | Search for items with a particular itemType | {value: 'episode', type: 'itemType'} |
As well as standard search types it is possible to define your own fields to search for, these are called search facets. These facets are defined on the Mam search service configuration. Facets are defined by the field they link to in the Mam search indexer, and their data type.
Type | Description | Example |
---|---|---|
text | Search based on the text value of a field | {type: 'mytextfield', value: ['fred*']} |
date | Search based on the date range of a field. The range is presented as {fromDate}_{toDate} | {type: 'mydatefield', value: '2022-10-01T10:00:00_2023-10-01T10:00:00'} |
boolean | Search based on a boolean field | {type: 'id', value: true} |
In order for facet searching to work the facets need to be configured in the mam search service. Below is some example config showing how this works.
"facets": {
"location": {
"icon": "location-circle",
"field": "item.instances.fileMetadata.location.location"
},
"genre": {
"field": "item.productionMetadata.genre",
"icon": "shapes"
},
"airedOn": {
"field": "item.airedOnMetadata.airedOn.dateTime.date",
"facetType": "date",
"icon": "calendar-lines-pen"
},
"channel": {
"field": "item.airedOnMetadata.airedOn.channelName",
"icon": "triangle"
}
}
For information about configuring and using the Busby MAM Interface please see here
For information about using inxers with the Busby MAM please see here
For information about the busby.mam scripting object please see here