Metadata-Version: 2.4
Name: janus-recordplay-plugin
Version: 3.0.0
Summary: Typed async client for the Janus Record&Play plugin
Author-email: Leydotpy <leydotpy.dev@gmail.com>
License-Expression: MIT
Project-URL: Documentation, https://janus.conf.meetecho.com/docs/recordplay.html
Project-URL: Recordings, https://janus.conf.meetecho.com/docs/recordings.html
Project-URL: JanusGateway, https://janus.conf.meetecho.com/
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: janus-api-core<4,>=3
Requires-Dist: pydantic<3,>=2.12
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: build>=1.2; extra == "test"

# janus-recordplay-plugin

Typed, independently installable bindings for `janus.plugin.recordplay`. This
distribution depends on `janus-api-core` and no other named Janus plugin.

```python
from janus_api.models.base import Jsep
from janus_recordplay_plugin import RecordPlayPlugin

media = RecordPlayPlugin(session=session)
await media.attach()

# Recording: the browser offers and Janus answers.
recording = await media.record("demo", Jsep(type="offer", sdp=offer_sdp))

# Playback: Janus offers first, then the browser answers.
preparing = await media.play(recording_id=1234)
await media.start(Jsep(type="answer", sdp=answer_sdp))
```

The client deliberately encodes the asymmetric JSEP state machine: `record`
requires an offer, `play` rejects JSEP entirely, and `start` requires an
answer. It also preserves Janus's synchronous/asynchronous split: `list`,
`update`, and `configure` wait for immediate plugin data; media-state requests
wait for their event.

The schemas include the current `update` recording and `restart` playback
options in Janus, plus the exact hyphenated wire keys used by `configure`.
See the official [Record&Play API](https://janus.conf.meetecho.com/docs/recordplay.html)
and [recordings format](https://janus.conf.meetecho.com/docs/recordings.html).

