Skip to content

Vermillio Music SDK Reference

Vermillio Music AI Detect Client

The VermillioMusicAIDetect client is the primary interface for interacting with the Music AI Detect Service.

Bases: VermillioBasePipelineClient

__init__

__init__(config: Optional[VermillioConfig] = None)

Initializes the Music AI Detection Client.

Parameters:

Name Type Description Default
config Optional[VermillioConfig]

An optional configuration object. If None, it attempts to load configuration from environment variables.

None

load

Loads a list of audio sources into the AI detection pipeline. Processing occurs asynchronously.

Parameters:

Name Type Description Default
sources Union[list[AIDetectExternalSource], list[str]]

The external audio sources, or paths to a file, to analyze.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None

Returns:

Type Description
Optional[list[AIDetectPipelineSource]]

Optional[AIDetectPipelineSource]: An AI Detect Pipeline Source entry, if was loaded successfully.

load_results

load_results(
    sources: Union[list[AIDetectExternalSource], list[str]],
    context: Optional[str] = None,
    wait: bool = True,
) -> Optional[list[AIDetectPipelineResults]]

Loads a list of audio sources into the AI detection pipeline and returns results.

Parameters:

Name Type Description Default
sources Union[list[AIDetectExternalSource], list[str]]

The external audio sources, or paths to a file, to analyze.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
wait bool

Whether to wait until each source has finished processing before returning.

True

Returns:

Type Description
Optional[list[AIDetectPipelineResults]]

Optional[list[AIDetectPipelineResults]]: Detection results for each loaded source.

pipeline

pipeline() -> AIDetectPipeline

Retrieves the configuration or definition of the current AI detection pipeline.

Returns:

Name Type Description
AIDetectPipeline AIDetectPipeline

An object containing the pipeline definition.

results

results(
    id_or_source_id: str,
    context: Optional[str] = None,
    wait: bool = False,
) -> Optional[AIDetectPipelineResults]

Retrieves the AI detection analysis results for a specific source.

Parameters:

Name Type Description Default
id_or_source_id str

The unique identifier of the source to get results for.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
wait bool

Optionally wait until the source is in a done state by retrying on a response indicating incomplete.

False
timeout int
required

Returns:

Type Description
Optional[AIDetectPipelineResults]

Optional[AIDetectPipelineResults]: An object containing the AI vs. Real probability scores and analysis metadata.

run

run(
    source: Union[AIDetectExternalSource, str],
    context: Optional[str] = None,
    timeout: float = 60,
    poll_rate: float = 1,
) -> Optional[AIDetectPipelineSource]

Loads a source and waits (within a timeout) for the AI detection analysis to complete.

Parameters:

Name Type Description Default
source Union[AIDetectExternalSource, str]

The external audio source, or path to a file, to analyze.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
timeout float

Optional maximum time in seconds to wait for the analysis.

60
poll_rate float

Optional frequency in seconds at which to poll for updates.

1

Returns:

Type Description
Optional[AIDetectPipelineSource]

Optional[list[AIDetectPipelineSource]]: The list of processed sources upon completion.

run_results

run_results(
    source: Union[AIDetectExternalSource, str],
    context: Optional[str] = None,
    timeout: float = 60,
    poll_rate: float = 1,
) -> Optional[AIDetectPipelineResults]

Loads a source and waits for completion, returning detailed AI detection analysis results.

Parameters:

Name Type Description Default
source Union[AIDetectExternalSource, str]

The external audio source, or path to a file, to analyze.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
timeout float

Maximum time in seconds to wait for results.

60
poll_rate float

Frequency in seconds at which to poll for results.

1

Returns:

Type Description
Optional[AIDetectPipelineResults]

Optional[AIDetectPipelineResults]: A list containing detection scores, confidence levels, and AI-generated probability markers.

source

source(
    id_or_source_id: str, context: Optional[str] = None
) -> Optional[AIDetectPipelineSource]

Fetches details for a specific audio source.

Parameters:

Name Type Description Default
id_or_source_id str

The unique identifier or source ID to retrieve.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None

Returns:

Type Description
Optional[AIDetectPipelineSource]

Optional[AIDetectPipelineSource]: The source object if found.

sources

sources(
    context: Optional[str] = None,
    after_id: Optional[str] = None,
    limit: int = 10,
) -> Optional[list[AIDetectPipelineSource]]

Lists previously loaded audio sources with pagination support.

Parameters:

Name Type Description Default
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
after_id Optional[str]

The optional ID to start listing after for pagination.

None
limit int

The maximum number of sources to return.

10

Returns:

Type Description
Optional[list[AIDetectPipelineSource]]

Optional[list[AIDetectPipelineSource]]: A list of source objects if found.

status

status(
    context: Optional[str] = None,
) -> AIDetectPipelineStatus

Checks the health or operational status of the AI Detection service.

Parameters:

Name Type Description Default
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None

Returns:

Name Type Description
AIDetectPipelineStatus AIDetectPipelineStatus

An object indicating the current state of the pipeline.

upload_and_load

upload_and_load(
    file_paths: list[str],
    titles: list[str],
    context: Optional[str] = None,
) -> Optional[list[AIDetectPipelineSource]]

Uploads audio files as assets and loads them into the AI detection pipeline. Processing occurs asynchronously.

Parameters:

Name Type Description Default
file_paths list[str]

Local file paths of audio files to upload.

required
titles list[str]

Titles for each uploaded asset.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None

Returns:

Type Description
Optional[list[AIDetectPipelineSource]]

Optional[list[AIDetectPipelineSource]]: The loaded pipeline source entries.

upload_and_load_results

upload_and_load_results(
    file_paths: list[str],
    titles: list[str],
    context: Optional[str] = None,
    wait: bool = True,
) -> Optional[list[AIDetectPipelineResults]]

Uploads audio files as assets, loads them into the AI detection pipeline, and returns results.

Parameters:

Name Type Description Default
file_paths list[str]

Local file paths of audio files to upload.

required
titles list[str]

Titles for each uploaded asset.

required
context Optional[str]

An optional context, uses AIDetectPipeline.default_context if missing.

None
wait bool

Whether to wait until each source has finished processing before returning.

True

Returns:

Type Description
Optional[list[AIDetectPipelineResults]]

Optional[list[AIDetectPipelineResults]]: Detection results for each loaded source.

Music AI Detect Model Classes

These Pydantic models represent the inputs and outputs of the Music AI Detect Service.

AIDetectExternalSource pydantic-model

Bases: ExternalSource

Fields:

Validators:

  • require_source

path pydantic-field

path: Optional[str] = None

An accessible url to download the track from, we support http(s)://, public gs://, public s3://, etc.

AIDetectLoadRequest pydantic-model

Bases: PipelineLoadRequest

Fields:

sources pydantic-field

List of external sources (or paths) to run AI Detection on.

AIDetectPipelineResults pydantic-model

Bases: PipelineResults

Fields:

results pydantic-field

results: Optional[AIDetectResults] = None

The AI Detection results, if the execution was successful.

AIDetectPipelineSource pydantic-model

Bases: PipelineSource

Fields:

path pydantic-field

path: Optional[str]

An accessible url to download the track from, we support http(s)://, public gs://, public s3://, etc.

AIDetectResults pydantic-model

Bases: BaseCamelModel

Fields:

detections pydantic-field

detections: list[AIDetectSegment] = []

List of detection segments

AIDetectRunRequest pydantic-model

Bases: PipelineRunRequest

Fields:

source pydantic-field

The external source, or path of the fule to run AI Detection on.

AIDetectSegment pydantic-model

Bases: BaseCamelModel

Fields:

confidence pydantic-field

confidence: Optional[float] = None

Confidence in the result.

label pydantic-field

label: Literal['real_music', 'ai_music']

Whether or not this segment is real or ai.

query_segment pydantic-field

query_segment: AudioSegment

The times in the original source file that this result is associated with.

source_id pydantic-field

source_id: str

The source (if available) of labelled 'ai_music', if unknown will be 'ai_music'. 'real_music' if labelled as real music.

AudioSegment pydantic-model

Bases: BaseCamelModel

Fields:

end pydantic-field

end: float

The end time (inclusive) in seconds of the segment.

start pydantic-field

start: float

The start time (inclusive) in seconds of the segment.