livepeer / livepeer/livepeer-python-gateway

Add SSE/chunked streaming support to the SDK

Open
#26 1 comment 0 reactions 1 assignee View on GitHub

@rickstaa is already working on this.

Since Jun 15, 2026.

Dominant language
Python
Stars
1
Forks
7
PR merge metrics
No merged PRs in 30d

Description

## 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 livepeer/livepeer-python-gateway#25 (builds on the live-runner work in #20).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.