Skip to content

Converter API

SUPPORTED_SOURCE_EXTENSIONS

Tuple of common FFmpeg-readable source extensions discovered by default.

DEFAULT_SOURCE_EXTENSIONS

Alias for the default source extension tuple used by CLI discovery.

ConversionResult

Result dataclass returned by conversion functions.

Field Type
source Path
output Optional[Path]
success bool
error Optional[str]

find_audio_files(input_dir, extensions=DEFAULT_SOURCE_EXTENSIONS)

Recursively finds source audio files under input_dir.

Pass extensions=None to return every regular file and let FFmpeg decide whether each input is decodable.

convert_file(source, dest, config)

Converts one source file to one destination path.

Returns ConversionResult instead of raising for file-level failures such as:

  • missing source file
  • missing FFmpeg binary
  • FFmpeg conversion failure
  • invalid existing output that cannot be replaced

convert_batch(input_dir, output_dir, config=None, source_files=None)

Converts all discovered or supplied source files and mirrors the input directory structure under output_dir.

Example:

from pathlib import Path

from audio_prep import ConversionConfig, build_manifest, convert_batch, validate_output, write_manifest

config = ConversionConfig(num_workers=4)
results = convert_batch(
    Path("data/raw_mp3"),
    Path("data/wav16k"),
    config,
)
validations = {
    result.output: validate_output(result.output, config)
    for result in results
    if result.success and result.output is not None
}
records = build_manifest(results, validations)
write_manifest(records, Path("data/manifest.jsonl"))