---
title: "Update a draft VOD's editable metadata. Server-authoritative fields (source, durationMs, status) are preserved. Editing is allowed in any status, so the user can pre-fill metadata while processing. All fields except uri are optional (partial update)."
method: POST
path: "/xrpc/place.stream.vod.updateDraft"
tags: ["place.stream.vod"]
---

# Update a draft VOD's editable metadata. Server-authoritative fields (source, durationMs, status) are preserved. Editing is allowed in any status, so the user can pre-fill metadata while processing. All fields except uri are optional (partial update).

`POST /xrpc/place.stream.vod.updateDraft`

## Request body

- object
  - `uri` string, required — The ats:// URI of the draft to update.
  - `title` string
  - `description` string
  - `descriptionFacets` PlaceStreamRichtextVideoFacet[]
    - `index` AppBskyRichtextFacetByteSlice, required — Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.
      - `byteEnd` integer, required
      - `byteStart` integer, required
    - `features` union[], required
      - union
        - AppBskyRichtextFacetMention — Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.
          - `did` string, did, required
        - AppBskyRichtextFacetLink — Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.
          - `uri` string, uri, required
  - `thumb` string, binary
  - `activity` union
    - PlaceStreamDefsActivityGame — A game from the gamesgamesgamesgames catalog, identified by its AT URI.
      - `uri` string, uri, required
      - `name` string — Cached display name of the game.
    - PlaceStreamDefsActivityLabel — A non-game activity with a well-known label.
      - `label` string, required
  - `tags` string[]
  - `contentWarnings` PlaceStreamMetadataContentWarnings — Content warnings for a stream.
    - `warnings` string[]
  - `contentRights` PlaceStreamMetadataContentRights — Content rights and attribution information.
    - `creator` string — Name of the creator of the work.
    - `copyrightNotice` string — Copyright notice for the work.
    - `copyrightYear` integer — Year of creation or publication.
    - `license` string — License URL or identifier.
    - `creditLine` string — Credit line for the work.

## Response `200`

Success

- object
  - `draft` PlaceStreamVodDraftDefsDraftView, required — A draft VOD with its ats:// URI and CID, for list/get responses.
    - `uri` string, required — The ats:// URI of the draft record.
    - `cid` string, required — CID (sha256 of CBOR record bytes, base32) of the draft record.
    - `record` unknown, required

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/streamplace/apis/generated-lexicon-api-schema.md) · [All operations](https://skmtc.net/streamplace/apis/generated-lexicon-api-schema/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/streamplace/generated-lexicon-api-schema/versions/8e2ce7f5d85b/schema)
