Client SDK with BYOC release (livepeer-client)
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- python
調査の方向性
リンクされている client-sdk.md 仕様から始め、実装に触れる前に3つのブロッカーPRを確認してください。次に、packages/livepeer-client、packages/livepeer-runner、packages/livepeer-trickle のレイアウトと、既存の start_lv2v エントリポイントを調べてください。ブロッカーの取り込み後に、記載されている Gateway の動詞、async バリアント、パッケージング、サンプル、リリースワークフローが実装されていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Outcome
Ship the v1 livepeer-client SDK so callers can request any Livepeer capability — not just live video-to-video — using one of three idiomatic verbs (run / stream / live) without having to understand orchestrators, discovery, trickle, or local payment signing.
The same call a developer runs in the Developer Dashboard playground is the call that ships into their app.
Spec
Design lives in livepeer-specs / client-sdk.md. Update the spec rather than this issue body when the design moves.
Key shape (see spec for full details):
Gateway(token=…, signer_url=…, …)— config carrier, reused across N callsgw.run(capability, *, input=, model=)→ plain return value (Replicate / fal idiom)gw.stream(capability, …)→StreamResponseyieldingStreamEvent(OpenAI / Anthropic idiom)gw.live(capability, …)→LiveSessionwith publish / subscribe / control / events (LiveKit idiom)- Async variants (
run_async,stream_async) first-class - Three-distribution packaging:
livepeer-client,livepeer-runner,livepeer-trickleunderlivepeer.*PEP 420 namespace
Blockers
The v1 release is gated on the following PRs landing:
- livepeer/go-livepeer#3869 — Adds remote signing for BYOC to go-livepeer
- livepeer/go-livepeer#3914 — Adds stream-based payment tracking, needed for the remote signer above
- livepeer/livepeer-python-gateway#6 — Adds BYOC support to the SDK (foundation for
Gateway/run/stream/live)
Work checklist (post-blocker)
Public API
-
Gatewayconfig carrier with token / signer / discovery / orch precedence rules -
gw.live(capability, ...)→LiveSession(delegates to existingstart_lv2vforlive-video-to-video) -
gw.run(...)skeleton (raisesNotImplementedErroruntil BYOC HTTP routing on orch) -
gw.stream(...)skeleton (raisesNotImplementedErroruntil BYOC SSE routing on orch) -
StreamEvent/StreamResponse/AsyncStreamResponsetypes -
run_async/stream_asyncvariants - Wire
gw.runto BYOC HTTP route once upstream lands - Wire
gw.streamto BYOC SSE route once upstream lands
Packaging (paired with #8 C12)
- Move repo to
uvworkspace —packages/livepeer-client,packages/livepeer-runner,packages/livepeer-trickle - PEP 420 namespace: no
__init__.pyatsrc/livepeer/; CI check to enforce -
livepeer-gatewaydeprecation shim re-exports public names withDeprecationWarning - PyPI publish workflow per package
Docs / examples
- Migrate examples from
start_lv2v(...)toGateway(...).live(...) - One worked example per verb (
run,stream,live) - README quickstart matching Replicate / fal / OpenAI style
Open questions
See the Open questions before implementation section in the spec — primarily around BYOC HTTP / SSE routing path on the orchestrator and publish / subscribe lazy vs. eager creation.
Out of scope for v1
| Item | Why deferred |
|---|---|
Gateway.submit(...) handle pattern (.wait / .cancel / .id) |
Needs orch-side reattach + cancel semantics designed first |
| Non-video live capabilities (raw trickle fallback) | No non-video live capability exists upstream yet |
Sync wrapper for live() |
Live jobs are inherently async; a sync wrapper would mask that |
Related
- Spec: client-sdk.md
- Companion epic: #8 (Pipeline SDK — deploy-side)
- Initial implementation: #6
Status
Blocked on the three upstream PRs listed above. Design locked.
- 主要言語
- Python
- スター
- 1
- フォーク
- 8
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
livepeer/livepeer-python-gateway のほかの issue
-
call_runner rejects a top-level JSON array, so a runner cannot pass one through対応中かも @rickstaa が 55 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
livepeer/livepeer-python-gateway#64 · コメント 1 件 ·
-
Align pricing terminology: pixels_per_unit -> pricing_unit_size (track go-livepeer #3942)再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンImprovement
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
livepeer/livepeer-python-gateway#27 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
trickle_publisher: `_resolve_next_seq` fallback drops first video segment + logs noisy warning再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
livepeer/livepeer-python-gateway#12 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
livepeer/livepeer-python-gateway#70 · コメント 2 件 ·
livepeer/livepeer-python-gateway の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
gradio-app/gradio#13964 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 93/100
BSData/horus-heresy-3rd-edition#3232 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
jbacalso24/mimry#123 ·
メンテナーはふだん 1 日以内に返信
-
p:3-mid pydanty:bug pydanty:is-working
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
pydantic/pydantic-ai#10153 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
good first issue priority: medium size: S testing
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
cubrid-lab/cubrid-cookbook-python#316 ·
メンテナーはふだん 1 日以内に返信