<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ShazamKit",
  "identifier" : "/documentation/ShazamKit/SHCustomCatalog",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ShazamKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SHCustomCatalog"
  },
  "title" : "SHCustomCatalog"
}
-->

# SHCustomCatalog

An object for storing the reference signatures for custom audio recordings and their associated metadata.

```
class SHCustomCatalog
```

## Overview

Create a custom catalog by adding reference signatures that you generate from audio that you provide. You also add the associated metadata for each signature. Save your custom catalog and share it with others. You can also load a saved catalog.

## Topics

### Creating a custom catalog object

[`init()`](/documentation/ShazamKit/SHCustomCatalog/init())

Creates a new custom catalog object for storing reference audio signatures and their associated metadata.

[`+ (instancetype) new;`](/documentation/ShazamKit/SHCustomCatalog/new)

Creates a new custom catalog object for storing reference audio signatures and their associated metadata.

### Adding a signature to the catalog

[`func addReferenceSignature(SHSignature, representing: [SHMediaItem]) throws`](/documentation/ShazamKit/SHCustomCatalog/addReferenceSignature(_:representing:))

Adds a reference signature and its associated metadata to a catalog.

### Loading and saving a custom catalog

[`func add(from: URL) throws`](/documentation/ShazamKit/SHCustomCatalog/add(from:))

Loads a saved custom catalog from a file.

[`func write(to: URL) throws`](/documentation/ShazamKit/SHCustomCatalog/write(to:))

Saves the custom catalog to a local file.

### Getting the content type

  <doc://com.apple.documentation/documentation/UniformTypeIdentifiers/UTType-swift.struct/shazamCustomCatalog>

  <doc://com.apple.documentation/documentation/UniformTypeIdentifiers/UTType-c.class/SHCustomCatalogContentType>

### Initializers

[`init(dataRepresentation: Data) throws`](/documentation/ShazamKit/SHCustomCatalog/init(dataRepresentation:))

Load a @c SHCustomCatalog from data

### Instance Properties

[`var dataRepresentation: Data`](/documentation/ShazamKit/SHCustomCatalog/dataRepresentation)

The data representation of this file, it can be written to disk

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Sendable`](/documentation/Swift/Sendable)

### Inherits From

[`SHCatalog`](/documentation/ShazamKit/SHCatalog)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)