---
title: "Make an adaptive (HLS) stream for an existing video"
method: POST
path: "/v1/assets/{id}/adaptive-stream"
tags: ["Assets"]
---

# Make an adaptive (HLS) stream for an existing video

`POST /v1/assets/{id}/adaptive-stream`

## Request

- Base URL: `https://api.picsha.ai`
- URL: `https://api.picsha.ai/v1/assets/{id}/adaptive-stream`
- Auth: HTTP bearer

Submits the same AWS MediaConvert job an upload with `config.adaptive_stream: true` runs, for a video that was uploaded without it. Only the transcode runs; no other processing is repeated. When the job finishes, GET /v1/assets/:id/stream/playlist.m3u8 serves the stream and `metadata.hls_status` becomes `ready`. A video that already has a stream (recorded, or found in storage, which also records it), or whose job is still running, is left alone unless `force` is true.

## Path parameters

- `id` string, required

## Request body

- object, nullable
  - `force` boolean: Submit a new job even when a stream exists or a job is running.

## Response `200`

Default Response

- object
  - `id` string, required
  - `status` 'ready', required
  - `message` string, required

## Other responses

- `202`: Default Response
- `400`: Default Response
- `404`: Default Response
- `409`: Default Response
- `503`: Default Response

---

[API](https://skmtc.dev/picsha/apis/picsha-ai-api.md) · [All operations](https://skmtc.dev/picsha/apis/picsha-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/picsha/apis/picsha-ai-api/revisions/f77c6ac40e70?raw)
