# place.stream.media.updateVideo

> Rewrite a place.stream.video record in place: retitle, redescribe or retag it, or point it at a finished upload's tracks (publishing them if the upload has none yet: the repair for a record published without tracks, or the way to point a record at a re-finalized VOD). Fields left out are kept; an empty description or tag list clears it. The caller must be the record's owner or hold livestream.manage from them; the record is written with the owner's session.

- Kind: procedure
- Authority: media.stream.place
- Lexicon: 1
- Published by [stream.place](https://lexicon.garden/identity/did:plc:rbvrr34edl5ddpuwcubjiost), not the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.media.updateVideo)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.media.updateVideo/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.media.updateVideo/analytics)

## Procedure (`place.stream.media.updateVideo`)

Type: procedure · POST

### Input (application/json)

- `description` (string)
  - Constraints: maxLength: 10000
- `tags` (array)
  - `items` (string)
    - Constraints: maxLength: 64
- `title` (string)
  - Constraints: maxLength: 1000
- `uploadId` (string): A finished upload whose tracks become the record's source and whose duration the record's.
- `uri` (string · at-uri, required): The place.stream.video record.

### Output (application/json)

- `cid` (string · cid, required)
- `uri` (string · at-uri, required)

### Errors

- `NotPermitted`: The caller is neither the owner nor a moderator with livestream.manage from them.
- `VideoNotFound`: No such video record.

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Rewrite a place.stream.video record in place: retitle, redescribe or retag it, or point it at a finished upload's tracks (publishing them if the upload has none yet: the repair for a record published without tracks, or the way to point a record at a re-finalized VOD). Fields left out are kept; an empty description or tag list clears it. The caller must be the record's owner or hold livestream.manage from them; the record is written with the owner's session.",
      "errors": [
        {
          "description": "The caller is neither the owner nor a moderator with livestream.manage from them.",
          "name": "NotPermitted"
        },
        {
          "description": "No such video record.",
          "name": "VideoNotFound"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "description": {
              "maxLength": 10000,
              "type": "string"
            },
            "tags": {
              "items": {
                "maxLength": 64,
                "type": "string"
              },
              "type": "array"
            },
            "title": {
              "maxLength": 1000,
              "type": "string"
            },
            "uploadId": {
              "description": "A finished upload whose tracks become the record's source and whose duration the record's.",
              "type": "string"
            },
            "uri": {
              "description": "The place.stream.video record.",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cid": {
              "format": "cid",
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri",
            "cid"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "place.stream.media.updateVideo",
  "lexicon": 1
}
```
