Metadata-Version: 2.4
Name: navig-media-core
Version: 0.2.0
Summary: The shared media engine NAVIG's media packages run on — media types and the generator registry, the generation service, the refs library, the variant store, the provider key catalog, and the ffmpeg primitives (audio edit, video edit, frames, fx). A library: no commands of its own, runs without navig.
Author-email: NAVIG Development Team <opensource@navig.run>
License-Expression: Apache-2.0
Project-URL: Homepage, https://navig.run
Project-URL: Documentation, https://navig.run/docs
Keywords: navig,cli,agent,automation,plugin,media,ffmpeg,generation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: navig-sdk>=2.13.0
Dynamic: license-file

# navig-media-core

<!-- navig:plugin-card:start -->
<!-- Generated by scripts/gen_plugin_catalog.py — edit the plugin's pyproject.toml, not this block. -->

> The shared media engine NAVIG's media packages run on — media types and the generator registry, the generation service, the refs library, the variant store, the provider key catalog, and the ffmpeg primitives (audio edit, video edit, frames, fx). A library: no commands of its own, runs without navig.

**A navig library** — a shared engine package; install it as a dependency, no commands of its own · v0.2.0 · [PyPI](https://pypi.org/project/navig-media-core/)

**Install**

```bash
pip install navig-media-core
```

It is a library, not a program: there is nothing to run — navig and the packages that use it pull it in as a dependency.

<!-- navig:plugin-card:end -->

**The shared media engine** NAVIG's media packages run on — extracted from `navig-generate`
so generate, audio, text and pipeline share one copy instead of reaching into a sibling
plugin.

A **library**: no commands of its own, no navig dependency at import time, and nothing to
configure — you install it because something else needs it (`navig`, `navig-generate`,
`navig-audio`, `navig-pipeline`).

## What lives here

| Module | What it is |
|---|---|
| `navig_media_core.media.types` | `MediaModality` + the generator registry (`register_generator`) every facet plugs into |
| `navig_media_core.media.refs_library` | the append-only refs ledger (prompt, provider, seed, context, license) |
| `navig_media_core.generated_media` | the SQLite mirror of that ledger (History gallery, short-id lookups) |
| `navig_media_core.media.context_builder` | project context injected into every prompt (palette, style note, placement) |
| `navig_media_core.tools.media_providers` | the provider catalog and `resolve_media_key` (env vars first, then the vault) |
| `navig_media_core.media.audio_edit` | ffmpeg audio primitives: cut, concat, speed, excerpt, probe |
| `navig_media_core.media.video_edit` | ffmpeg video primitives: join, captions, vertical fit, still, mix |
| `navig_media_core.media.frames` | frame / scene extraction and probing |
| `navig_media_core.media.fx` | glitch / punch-in effects driven by the beat grid |

**What is `navig-generate`'s:** the generation service (generate / iterate / process —
`navig_generate.media.generation_service`), the image/video/audio generator clients, beats,
tonality, the pixel pipeline (`processing`), the deck routes and the CLI. This package never
imports `navig_generate` (ADR-0002, enforced by `tests/test_layering.py`) —
`navig-generate` depends on this package, not the other way round.
`navig_media_core.media.generation_service` is a deprecated identity alias of the service.

## Public paths did not change

`navig.media.types`, `navig.media.generation_service`, `navig.media.audio_edit`,
`navig.store.generated_media`, `navig.tools.media_providers` — every public import path is
still exactly what it was; the core shims alias the modules here (and
`navig.media.generation_service` the one in `navig-generate`). Existing tests that patch those modules by dotted path keep patching
the same (single) module object.

## Install

Normally you never install it directly — `pip install navig` or `pip install navig-generate`
pulls it in. On its own:

```bash
pip install navig-media-core
```
