What
Add SSE / chunked streaming support to call_runner in the Python SDK, so callers can consume live runner responses incrementally instead of waiting for the full body.
http.open_stream() — opens an HTTP request and hands back the live (session, response) without reading the body. Caller owns both. No total timeout (streams run indefinitely); only connect/first-byte are bounded. Raises LivepeerHTTPError on >= 400.
LiveRunnerCallStream — returned by call_runner(..., stream=True). Owns the aiohttp session/response, is an async context manager (or call aclose()), and exposes the body via aiter_bytes() / aiter_lines() plus status/headers/content_type/runner.
- Payment — streaming reuses the existing per-call 402 challenge/retry path;
open_stream raises before any body, so the payment retry catches it exactly like the non-streaming path.
- Export
LiveRunnerCallStream from the package root.
Why
Live runner apps that stream output (token-by-token LLM responses, progressive media) need an incremental response path in the SDK, without standing up the trickle/lv2v continuous-payment flow. This SSE path is one job, one upfront payment.
Implementation
Implemented in #25 (builds on the live-runner work in #20).
What
Add SSE / chunked streaming support to
call_runnerin the Python SDK, so callers can consume live runner responses incrementally instead of waiting for the full body.http.open_stream()— opens an HTTP request and hands back the live(session, response)without reading the body. Caller owns both. No total timeout (streams run indefinitely); only connect/first-byte are bounded. RaisesLivepeerHTTPErroron>= 400.LiveRunnerCallStream— returned bycall_runner(..., stream=True). Owns the aiohttp session/response, is an async context manager (or callaclose()), and exposes the body viaaiter_bytes()/aiter_lines()plusstatus/headers/content_type/runner.open_streamraises before any body, so the payment retry catches it exactly like the non-streaming path.LiveRunnerCallStreamfrom the package root.Why
Live runner apps that stream output (token-by-token LLM responses, progressive media) need an incremental response path in the SDK, without standing up the trickle/lv2v continuous-payment flow. This SSE path is one job, one upfront payment.
Implementation
Implemented in #25 (builds on the live-runner work in #20).