Supported embedded metadata when importing into Myriad Playout v6

Modified on Thu, 26 Jun at 3:32 PM

Myriad Metadata Import Documentation

Overview

When importing an audio file into the MediaWall, Myriad Playout v6 attempts to reads metadata from various audio file formats and populate the Media Item with the extracted information. This document describes the complete metadata extraction process, supported formats, and the specific tag field mappings that users can utilize when preparing audio files for import into Myriad.

The metadata import process operates in multiple phases, extracting information from different sources within the audio files, including standard ID3/tag data, broadcast-specific chunks, and embedded timing information.

Supported File Formats

Primary Audio Formats

  • WAV - Full metadata support including CART, BEXT, and SCOT chunks
  • MP3 - ID3v1, ID3v2 tag support and APE tag extensions
  • FLAC - Comprehensive Vorbis comment metadata support
  • OGG - Vorbis comment metadata
  • OPUS - Custom metadata tag support with XML embedding
  • MP2 - Basic tag metadata support
  • AAC/M4A - iTunes-style metadata support

Special File Types

  • SS32 Rotator Files - Scott Studios playlist/rotator files
  • RadioHost Files - Files with embedded cue point data
  • Media Foundation Compatible - Windows Media Foundation supported formats for less common audio formats

Metadata Extraction Process

The process follows a hierarchical approach to metadata extraction:

  1. File Format Detection - Determines audio format from file extension
  2. Audio Properties - Extracts duration, sample rate, and audio format
  3. Primary Metadata - Standard tag information (TagLib)
  4. Extended Metadata - Format-specific chunks and extensions
  5. Timing Information - Broadcast cues, markers, and timing data
  6. Adjacent Files - Companion metadata files

Standard Tag Field Mappings

The following table shows which specific tag fields are read from audio files and how they map to MediaItem properties:

ID3v1/ID3v2 Tags (MP3)

Tag FieldMediaItem PropertyDescriptionProcessing Notes
TIT2 (Title)ItemTitleSong/track titleSanitized, invalid characters removed
TPE1 (Artist)Artists collectionPrimary performing artist(s)Creates ArtistInfo objects with ID=0
TPE2 (Album Artist)Artists collectionAlbum artist (fallback)Used if no TPE1 performers found
TALB (Album)AlbumTitleAlbum nameSanitized string
TIT3 (Subtitle)ItemDescriptionContent description/subtitleSanitized string
COMM (Comment)Notes collectionGeneral commentsAdded as Presenter-type note
TCOM (Composer)Copyright.ComposerMusic composer(s)Sanitized string
TPUB (Publisher)Copyright.PublisherMusic publisherSanitized string
TCOP (Copyright)Copyright.LicenseCopyright informationSanitized string
TSRC (ISRC)Copyright.ISRCInternational Standard Recording CodeSanitized string
TYER/TDRC (Year)FirstReleaseYearRelease year
TCON (Genre)IngestCategoryNameGenre/categoryUsed for category assignment
UFID (MusicBrainz)MusicBrainzIdMusicBrainz track IDWhen unique ID contains musicbrainz.org

Vorbis Comments (FLAC/OGG)

Tag FieldMediaItem PropertyDescriptionProcessing Notes
TITLEItemTitleTrack titleSanitized string
ARTISTArtists collectionPerforming artist(s)Creates ArtistInfo objects
ALBUMARTISTArtists collectionAlbum artist (fallback)Used if no ARTIST found
ALBUMAlbumTitleAlbum nameSanitized string
DESCRIPTIONItemDescriptionTrack descriptionSanitized string
COMMENTNotes collectionCommentsAdded as Presenter-type note
COMPOSERCopyright.ComposerMusic composerSanitized string
PUBLISHERCopyright.PublisherPublisher informationSanitized string
COPYRIGHTCopyright.LicenseCopyright textSanitized string
ISRCCopyright.ISRCInternational Standard Recording CodeSanitized string
DATE/YEARFirstReleaseYearRelease year
GENREIngestCategoryNameMusical genreUsed for category assignment
MUSICBRAINZ_TRACKIDMusicBrainzIdMusicBrainz track identifierSanitized string

iTunes/MP4 Tags (AAC/M4A)

Tag FieldMediaItem PropertyDescriptionProcessing Notes
©namItemTitleTrack titleSanitized string
©ARTArtists collectionArtist nameCreates ArtistInfo objects
aARTArtists collectionAlbum artist (fallback)Used if no ©ART found
©albAlbumTitleAlbum nameSanitized string
descItemDescriptionDescriptionSanitized string
©cmtNotes collectionCommentsAdded as Presenter-type note
©wrtCopyright.ComposerComposerSanitized string
©pubCopyright.PublisherPublisherSanitized string
cprtCopyright.LicenseCopyrightSanitized string
----:com.apple.iTunes:ISRCCopyright.ISRCISRC codeSanitized string
©dayFirstReleaseYearRelease date/year
©genIngestCategoryNameGenreUsed for category assignment
----:com.apple.iTunes:MusicBrainz Track IdMusicBrainzIdMusicBrainz IDSanitized string

Embedded Artwork

SourceMediaItem PropertySupported FormatsProcessing
APIC (ID3v2)TemporaryImageFilesJPEG, PNG, BMP, GIFExtracted to temporary files
PIC (ID3v1)TemporaryImageFilesJPEG, PNG, BMP, GIFExtracted to temporary files
Vorbis METADATA_BLOCK_PICTURETemporaryImageFilesJPEG, PNG, BMP, GIFBase64 decoded and extracted
MP4 covrTemporaryImageFilesJPEG, PNGExtracted to temporary files

Extended Metadata Sources

APE Tags (Advanced Audio Coding)

APE tags provide broadcast-specific timing and metadata information primarily used by professional radio automation systems:

APE TagMediaItem PropertyDescriptionUnit
SegueDbValidation flagIndicates professional timing dataBoolean
CueMediaLength.StartMedia start time/cue pointMilliseconds
SegueExtro.StartSegue/outro start timeMilliseconds
IntroIntro.EndIntro end time (relative to cue)Milliseconds
HookStartHook.StartHook/refrain start timeMilliseconds
HookLenHook.EndHook length (calculated as start + length)Milliseconds
EAN/UPCCopyright.RecordingNumberProduct identification codeString
ISRCCopyright.ISRCInternational Standard Recording CodeString
LabelCopyright.RecordLabelRecord label informationString
WriterCopyright.LyricistSongwriter/lyricistString
ComposerCopyright.ComposerMusic composerString
PublisherCopyright.PublisherMusic publisherString

WAV File Chunks

CART Chunk (Broadcast Wave)

Professional broadcast metadata chunk containing comprehensive information:

CART FieldMediaItem PropertyDescription
TitleItemTitleTitle from CART chunk
ArtistArtists collectionArtist from CART chunk
CategoryItem type assignmentContent category
ClassificationIngestCategoryNameGenre/classification
CutIDCutIdCart identification
ClientIDProcessing useClient information
URLCustomFields[5]Associated URL
StartDate/StartTimeStartDateTimeBroadcast start date/time
EndDate/EndTimeEndDateTimeBroadcast end date/time
ProducerAppIDProcessing flagSource application identifier
OutCueOutCueEnd cue text
PostTimer[n]Various timing propertiesBroadcast timing markers
UserDefColors, ending typeUser-defined settings
TagTextVariousXML or legacy metadata

PostTimer Mappings (CART Chunk)

Timer UsageMediaItem PropertyDescription
AUDsMediaLength.StartAudio start point
AUDeMediaLength.EndAudio end point
INTsIntro.StartIntro start
INTmIntro.MiddleIntro middle point
INTeIntro.EndIntro end
SEG1Extro.StartSegue/outro start
MRK + timer valueHook or LoopsHook points or loop markers

BEXT Chunk (Broadcast Extension)

Basic broadcast metadata:

BEXT FieldMediaItem PropertyDescription
DescriptionItemTitle (if empty)Broadcast description
OriginatorNotes (Technical)Creator/originator
OriginatorReferenceNotes (Technical)Reference identifier
OriginationDate/OriginationTimeNotes (Technical)Creation timestamp
VersionRevisionVersion number
CodingHistoryNotes (Technical)Audio processing history

SCOT Chunk (Scott Studios)

Legacy format support for Scott Studios systems:

SCOT FieldMediaItem PropertyDescription
NameItemTitleItem name
ArtistArtists collectionArtist information
TriviaItemDescriptionDescription/trivia
SDateStartDateTimeSchedule start date
KDateEndDateTimeKill/end date
StartTimeMediaLength.StartAudio start time
EndTimeMediaLength.EndAudio end time
IntroIntro.EndIntro timing
eomstrtExtro.StartEnd of message start
EndEndingEnding type
YearFirstReleaseYearRelease year

RadioHost File Support

Specialized cue point data for RadioHost systems:

Cue Point TypeMediaItem PropertyDescription
TalkTimeStartIntro.StartTalk/vocal start
TalkTimeEndIntro.EndTalk/vocal end
TalkTimeIntro.EndGeneral talk point
RefrainStartHook.StartRefrain/hook start
RefrainEndHook.EndRefrain/hook end
ExtroOffsetExtro.StartOutro timing offset
EndForce fade pointEnd marker

OPUS Format Extensions

OPUS files support embedded XML metadata:

Metadata TypeMediaItem PropertyDescription
MediaItemXmlComplete objectFull MediaItem XML structure
Standard Vorbis tagsVariousStandard tag mappings (see Vorbis table)

Special File Types

SS32 Rotator Files

Scott Studios playlist files are automatically detected and converted:

  • Detection Method: SCOT chunk with rotator bit flags
  • Content Type: Automatically changed to MediaListRotate
  • Related Items: Playlist members extracted from data chunk
  • Description: Automatically set to " SS32 Rotator "
  • Processing: Audio data marked as invalid, metadata-only import


Metadata Processing Rules

String Sanitization

All text fields undergo sanitisation:

  • Encoding normalization to handle international characters
  • Null and empty string handling

Priority Handling

When multiple sources provide the same information (highest to lowest priority):

  1. XML Files - Complete MediaItem XML overrides everything - see this article for more information.
  2. CART Chunk - Professional broadcast metadata
  3. APE Tags - Broadcast timing and extended metadata
  4. Standard Tags - ID3, Vorbis, iTunes metadata
  5. BEXT/SCOT Chunks - Legacy broadcast formats
  6. Adjacent Files - BCX, CSV companion files - see this article for more information.
  7. Filename Parsing - Last resort extraction from filename

Error Handling

  • Individual metadata extraction errors don't fail the entire process
  • Malformed tags are logged but don't prevent import
  • Missing companion files are handled gracefully
  • Invalid timing data is constrained to valid ranges

Content Validation

  • Timing markers are validated against audio duration
  • ISRC codes are format-validated
  • Date fields are parsed with error tolerance
  • Embedded images are validated for supported formats

Processing Examples

Standard MP3 File with ID3v2Input: song.mp3

ID3v2 Tags Found:

  • TIT2 (Title): "Example Song"
  • TPE1 (Artist): "Example Artist"
  • TALB (Album): "Example Album"
  • TDRC (Year): "2023"
  • TCON (Genre): "Rock"
  • TSRC (ISRC): "US1234567890"
  • APIC: Embedded JPEG image

Result: SimpleMetadata MediaItem Properties:

  • ItemTitle = "Example Song"
  • Artists[0] = ArtistInfo(0, "Example Artist")
  • AlbumTitle = "Example Album"
  • FirstReleaseYear = 2023
  • IngestCategoryName = "Rock"
  • Copyright.ISRC = "US1234567890"
  • TemporaryImageFiles[0] = "temp_image.jpg"

    WAV File with CART ChunkInput: broadcast.wav

    CART Chunk Data:
  • Title: "News Bulletin"
  • Artist: "News Team"
  • Category: "News"
  • PostTimer[0]: AUDs = 12000 samples (0.5s at 24kHz)
  • PostTimer[1]: SEG1 = 600000 samples (25.0s at 24kHz)
  • UserDef: "BackColor=&HFF0000&"
  • TagText: "Breaking News"

Result: AdvancedMetadata
MediaItem Properties:

  • ItemTitle = "News Bulletin"
  • Artists[0] = ArtistInfo(0, "News Team")
  • ItemDescription = "Breaking News"
  • MediaLength.Start = 00:00:00.500
  • Extro.Start = 00:00:25.000
  • BackColor = Red
  • UseCustomColors = True

    FLAC File with Vorbis Comments + BCXInput: track.flac + track.bcx

    Vorbis Comments:
  • TITLE: "Classical Piece"
  • ARTIST: "Orchestra"
  • COMPOSER: "Famous Composer"
  • MUSICBRAINZ_TRACKID: "abc-123-def"

BCX File Content:

  • Auto Start Point: 1500 (1.5 seconds)
  • Intro: 15000 (15 seconds)
  • Auto Out Point: 180000 (3 minutes)

Result: SimpleMetadata (upgraded from BCX) MediaItem Properties:

  • ItemTitle = "Classical Piece"
  • Artists[0] = ArtistInfo(0, "Orchestra")
  • Copyright.Composer = "Famous Composer"
  • MusicBrainzId = "abc-123-def"
  • MediaLength.Start = 00:00:01.500
  • Intro.End = 00:00:15.000
  • Extro.Start = 00:03:00.000

    File Preparation Guidelines

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article