> ## Documentation Index
> Fetch the complete documentation index at: https://na-36-changelog-go-livepeer-2026-05-18.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> All official Livepeer SDKs: Studio SDK (TypeScript, Python, Go), AI SDK, and React UI Kit. Versions, install commands, and links to full reference.

export const CenteredContainer = ({children, maxWidth = "800px", padding = "0", preset = "default", width = "", minWidth = "", marginRight = "", marginBottom = "", textAlign = "", style = {}, className = "", ...rest}) => {
  const presets = {
    default: {},
    fitContent: {
      width: "fit-content",
      minWidth: "fit-content"
    },
    readable70: {
      width: "70%",
      minWidth: "fit-content"
    },
    readable80: {
      width: "80%",
      minWidth: "fit-content"
    },
    readable90: {
      width: "90%"
    },
    wide900: {
      maxWidth: "900px"
    }
  };
  const presetStyle = presets[preset] || presets.default;
  return <div className={className} style={{
    maxWidth: presetStyle.maxWidth || maxWidth,
    margin: "0 auto",
    padding: padding,
    ...presetStyle.width ? {
      width: presetStyle.width
    } : {},
    ...presetStyle.minWidth ? {
      minWidth: presetStyle.minWidth
    } : {},
    ...width ? {
      width
    } : {},
    ...minWidth ? {
      minWidth
    } : {},
    ...marginRight ? {
      marginRight
    } : {},
    ...marginBottom ? {
      marginBottom
    } : {},
    ...textAlign ? {
      textAlign
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

export const TableCell = ({children, align = "left", header = false, style = {}, className = "", ...rest}) => {
  const Component = header ? "th" : "td";
  return <Component className={className} style={{
    padding: "0.75rem 1rem",
    textAlign: align,
    border: header ? "none" : "1px solid var(--lp-color-border-default)",
    ...style
  }} {...rest}>
      {children}
    </Component>;
};

export const TableRow = ({children, header = false, hover = false, style = {}, className = "", ...rest}) => {
  const rowId = `table-row-${Math.random().toString(36).substr(2, 9)}`;
  return <>
      {hover && <style>{`
          #${rowId}:hover {
            background-color: var(--lp-color-bg-card);
          }
        `}</style>}
      <tr id={rowId} className={className} style={{
    ...header && ({
      backgroundColor: "var(--lp-color-accent-strong)",
      color: "var(--lp-color-on-accent)",
      fontWeight: "bold"
    }),
    ...style
  }} {...rest}>
        {children}
      </tr>
    </>;
};

export const StyledTable = ({children, variant = "default", style = {}, className = "", ...rest}) => {
  const wrapperVariants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)",
      overflow: "hidden"
    },
    bordered: {
      border: "2px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-page)",
      overflow: "hidden"
    },
    minimal: {
      border: "none",
      backgroundColor: "transparent",
      overflow: "visible"
    }
  };
  return <div data-docs-styled-table-shell className={className} style={{
    width: "100%",
    padding: 0,
    margin: 0,
    ...wrapperVariants[variant],
    ...style
  }} {...rest}>
      <table data-docs-styled-table style={{
    width: "100%",
    borderCollapse: "collapse",
    borderSpacing: 0,
    margin: 0,
    backgroundColor: "transparent"
  }}>
        {children}
      </table>
    </div>;
};

<CenteredContainer preset="readable90">
  <Tip>The Studio SDK (`livepeer`) covers all Livepeer resources: streams, assets, webhooks, and AI inference. Use it for new projects. The AI SDK (`@livepeer/ai`) covers AI inference only and is in alpha.</Tip>
</CenteredContainer>

***

<CustomDivider middleText="SDK Overview" />

## SDK families

Two SDK families exist. Choose based on what you are building:

<StyledTable variant="bordered">
  <thead>
    <TableRow header>
      <TableCell header>SDK</TableCell>
      <TableCell header>Package</TableCell>
      <TableCell header>Covers</TableCell>
      <TableCell header>Status</TableCell>
    </TableRow>
  </thead>

  <tbody>
    <TableRow>
      <TableCell>**Studio SDK -- TypeScript**</TableCell>
      <TableCell>`livepeer` (npm)</TableCell>
      <TableCell>Streams, assets, webhooks, signing keys, multistream, AI inference</TableCell>
      <TableCell>Stable (v3.5.0)</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**Studio SDK -- Python**</TableCell>
      <TableCell>`livepeer` (PyPI)</TableCell>
      <TableCell>Same as TypeScript SDK</TableCell>
      <TableCell>Stable</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**Studio SDK -- Go**</TableCell>
      <TableCell>`github.com/livepeer/livepeer-go`</TableCell>
      <TableCell>Same as TypeScript SDK</TableCell>
      <TableCell>Stable</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**React UI Kit**</TableCell>
      <TableCell>`@livepeer/react` (npm)</TableCell>
      <TableCell>Player component, Broadcast component, playback hooks</TableCell>
      <TableCell>Stable (v4.3.2)</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**AI SDK -- TypeScript**</TableCell>
      <TableCell>`@livepeer/ai` (npm)</TableCell>
      <TableCell>AI inference endpoints only (all 9 batch pipelines)</TableCell>
      <TableCell>Alpha</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**AI SDK -- Python**</TableCell>
      <TableCell>`livepeer-ai` (PyPI)</TableCell>
      <TableCell>AI inference endpoints only</TableCell>
      <TableCell>Alpha</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>**AI SDK -- Go**</TableCell>
      <TableCell>`github.com/livepeer/livepeer-ai-go`</TableCell>
      <TableCell>AI inference endpoints only</TableCell>
      <TableCell>Alpha</TableCell>
    </TableRow>
  </tbody>
</StyledTable>

<CustomDivider middleText="Studio SDK" />

## Studio SDK

The Studio SDK is auto-generated from the Studio OpenAPI spec by [Speakeasy](https://speakeasyapi.dev) and maintained in the official Livepeer repositories. It is the recommended choice for production applications.

### TypeScript / JavaScript

```bash theme={null}
npm install livepeer
```

* **npm:** [https://www.npmjs.com/package/livepeer](https://www.npmjs.com/package/livepeer)
* **GitHub:** [https://github.com/livepeer/livepeer-js](https://github.com/livepeer/livepeer-js)
* **Version:** 3.5.0

All Studio API resources are available under namespaced clients:

```typescript theme={null}
import { Livepeer } from 'livepeer';
const client = new Livepeer({ apiKey: process.env.LIVEPEER_API_KEY });

// Video
client.stream.create(...)
client.stream.get(streamId)
client.asset.create(...)
client.asset.get(assetId)
client.webhook.create(...)
client.signingKey.create()

// AI inference
client.generate.textToImage(...)
client.generate.imageToImage(...)
client.generate.imageToVideo(...)
client.generate.audioToText(...)
client.generate.llm(...)
```

### Python

```bash theme={null}
pip install livepeer
```

* **PyPI:** [https://pypi.org/project/livepeer/](https://pypi.org/project/livepeer/)
* **GitHub:** [https://github.com/livepeer/livepeer-python](https://github.com/livepeer/livepeer-python)

```python theme={null}
from livepeer import Livepeer
client = Livepeer(api_key=os.environ['LIVEPEER_API_KEY'])
```

### Go

```bash theme={null}
go get github.com/livepeer/livepeer-go
```

* **GitHub:** [https://github.com/livepeer/livepeer-go](https://github.com/livepeer/livepeer-go)

```go theme={null}
import livepeer "github.com/livepeer/livepeer-go"
client := livepeer.New(livepeer.WithSecurity(os.Getenv("LIVEPEER_API_KEY")))
```

<CustomDivider middleText="React UI Kit" />

## React UI Kit

```bash theme={null}
npm install @livepeer/react
```

* **npm:** [https://www.npmjs.com/package/@livepeer/react](https://www.npmjs.com/package/@livepeer/react)
* **GitHub:** [https://github.com/livepeer/ui-kit](https://github.com/livepeer/ui-kit)
* **Version:** 4.3.2

The UI Kit provides composable video primitives for React applications. Key components:

* **`Player`** -- HLS and WebRTC playback with automatic protocol selection, keyboard shortcuts, and PictureInPicture
* **`Broadcast`** -- In-browser RTMP/WebRTC broadcasting
* **`Controls`** -- Play, volume, fullscreen, and quality controls

```tsx theme={null}
import * as Player from '@livepeer/react/player';

<Player.Root src="https://livepeercdn.studio/hls/{playbackId}/index.m3u8">
  <Player.Container>
    <Player.Video />
    <Player.Controls />
  </Player.Container>
</Player.Root>
```

<CustomDivider middleText="AI SDK" />

## AI SDK (alpha)

The AI SDK is generated separately from the AI gateway OpenAPI spec. Use the Studio SDK for production applications; use the AI SDK for AI-inference-only projects or when you want a smaller dependency footprint.

### TypeScript

```bash theme={null}
npm install @livepeer/ai
```

* **npm:** [https://www.npmjs.com/package/@livepeer/ai](https://www.npmjs.com/package/@livepeer/ai)
* **GitHub:** [https://github.com/livepeer/livepeer-ai-js](https://github.com/livepeer/livepeer-ai-js)
* **Default gateway:** `https://dream-gateway.livepeer.cloud` (public, non-production)

```typescript theme={null}
import Livepeer from '@livepeer/ai';
const client = new Livepeer({ httpBearer: process.env.LIVEPEER_API_KEY });
const result = await client.generate.textToImage({ prompt: 'test' });
```

### Python

```bash theme={null}
pip install livepeer-ai
```

### Go

```bash theme={null}
go get github.com/livepeer/livepeer-ai-go
```

<CustomDivider middleText="Deprecated SDKs" />

## Deprecated SDKs

Do not use these packages in new projects:

| Package                    | Status     | Migration path                                                  |
| -------------------------- | ---------- | --------------------------------------------------------------- |
| `@livepeer/webrtmp-sdk`    | Deprecated | Use `@livepeer/react` Broadcast component                       |
| `@livepeer/react-native`   | Deprecated | Use `react-native-video` (HLS) + `react-native-webrtc` (WebRTC) |
| Old `livepeer.js` monorepo | Archived   | Migrate to `livepeer` npm v3.5.0                                |

<CustomDivider />

## Related pages

<CardGroup cols={2}>
  <Card title="SDK Integration Guide" icon="code" href="/v2/developers/build/sdk-gateway">
    Full code examples, error handling, and retry configuration for all SDKs.
  </Card>

  <Card title="APIs" icon="plug" href="/v2/developers/resources/reference/apis">
    REST API reference, OpenAPI spec, and endpoint list.
  </Card>
</CardGroup>
