Basic Usage

Core Functionality

Authenticate

The first step is to initialize the SDK client with the credentials that have been provided to you:

circle-info

Note: If you are both a Search: Pex Registry and Search: Custom Database customer, each product will require a separate set of credentials.

# AUTHENTICATE CLIENT
client = pex.PexSearchClient("CLIENT_ID", "CLIENT_SECRET")
circle-info

Note: There might be a slight delay the first time you authenticate as the SDK downloads and installs necessary updates

Generate Fingerprint

Before performing any searches you need to generate a fingerprint from a media file:

# CREATE AN AUDIO FINGERPRINT FROM MEDIA FILE
ft = client.fingerprint_file(
    "/path/to/file.mp3",
    pex.FingerprintType.AUDIO
)

# CREATE A MELODY + PHONETIC FINGERPRINT FROM MEDIA FILE
ft = client.fingerprint_file(
    "/path/to/file.mp3",
    pex.FingerprintType.MELODY | pex.FingerprintType.PHONETIC
)

# CREATE A CLASSIFICATION FINGERPRINT FROM MEDIA FILE
ft = client.fingerprint_file(
    "/path/to/file.mp3",
    pex.FingerprintType.CLASSIFICATION
)

Alternatively, a fingeprint can be created from a byte buffer holding a media file

circle-info

Note: When creating audio fingerprints, the SDK uses a single CPU. For melody fingerprints, the SDK uses two CPUs, if available.

If you need to process larger volumes of files, running computations in parallel is recommended. This can significantly improve processing capacity.

Search Functionality

Initiate Search (With Fingerprint)

Once the fingerprint has been generated, you are ready to initiate a search:

circle-info

A search combines a fingerprint type (how your file is analyzed) with a search type (what kind of lookup is performed). The combination you choose determines the results you’ll see. Refer to Search Types & Use Cases for examples of common use cases and suggested combinations.

Initiate Search (With ISRC)

If you know the ISRC of the query file you would like to search with, you can prepare a search with the ISRC instead of a fingerprint. If a corresponding asset is found associated with the ISRC, the search will initiate as usual.

circle-info

If a corresponding asset cannot be resolved with the provided ISRC, the SDK returns a NOT_FOUND error (for example: NOT_FOUND: isrc not found). In this case, the request is rejected and no search is started. Your application should catch/handle this error and decide whether to prompt for a different ISRC, skip the lookup request, or log/report the failure

Retrieve Search Results

Once a search is complete, you can retrieve the results of the search:

Interpret Search Results

To view details on what's contained in a search response, please see the following section: Search Response

Last updated