---
title: "Initialize the resumable upload of a video"
method: POST
path: "/api/v1/videos/upload-resumable"
tags: ["Video", "Video Upload"]
---

# Initialize the resumable upload of a video

`POST /api/v1/videos/upload-resumable`

Uses [a resumable protocol](https://github.com/kukhariev/node-uploadx/blob/master/proto.md) to initialize the upload of a video

## Headers

- `X-Upload-Content-Length` number, required
- `X-Upload-Content-Type` string, mimetype, required

## Request body

- VideoUploadRequestResumable
  - `category` integer — category id of the video (see [/videos/categories](#operation/getCategories))
  - `channelId` integer, required — Channel id that will contain this video
  - `commentsEnabled` boolean — Enable or disable comments for this video
  - `description` string — Video description
  - `downloadEnabled` boolean — Enable or disable downloading for this video
  - `language` string — language id of the video (see [/videos/languages](#operation/getLanguages))
  - `licence` integer — licence id of the video (see [/videos/licences](#operation/getLicences))
  - `name` string, required — Video name
  - `nsfw` boolean — Whether or not this video contains sensitive content
  - `originallyPublishedAt` string, date-time — Date when the content was originally published
  - `previewfile` string, binary — Video preview file
  - `privacy` 1 | 2 | 3 | 4 — privacy id of the video (see [/videos/privacies](#operation/getPrivacyPolicies))
  - `scheduleUpdate` VideoScheduledUpdate
    - `privacy` 1 | 2 | 3 | 4 — privacy id of the video (see [/videos/privacies](#operation/getPrivacyPolicies))
    - `updateAt` string, date, required — When to update the video
  - `support` string — A text tell the audience how to support the video creator
  - `tags` string[] — Video tags (maximum 5 tags each between 2 and 30 characters)
  - `thumbnailfile` string, binary — Video thumbnail file
  - `waitTranscoding` boolean — Whether or not we wait transcoding before publish the video
  - `filename` string, filename, required — Video filename including extension

## Response `200`

file already exists, send a [`resume`](https://github.com/kukhariev/node-uploadx/blob/master/proto.md) request instead

## Other responses

- `201` — created
- `413` — Disambiguate via `type`: - `max_file_size_reached` for the absolute file size limit - `quota_reached` for quota limits whether daily or global
- `415` — video type unsupported

---

[API](https://skmtc.net/cpy/apis/peertube.md) · [All operations](https://skmtc.net/cpy/apis/peertube/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cpy/peertube/versions/efe11b159e43/schema)
