Upload videos from a URL

Uploads a video to Stream from a provided URL.

/accounts/{account_identifier}/stream/copy

post

Stream Videos

stream-videos-upload-videos-from-a-url

Debug "planAvailability"

null

Debug "tokenPermissions"

null

Debug "parameters"

[
  {
    "in": "path",
    "name": "account_identifier",
    "required": true,
    "schema": {
      "description": "The account identifier tag.",
      "example": "023e105f4ecef8ad9ca31a8372d0c353",
      "maxLength": 32,
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "Upload-Creator",
    "schema": {
      "description": "A user-defined identifier for the media creator.",
      "example": "creator-id_abcde12345",
      "maxLength": 64,
      "type": "string"
    }
  },
  {
    "in": "header",
    "name": "Upload-Metadata",
    "schema": {
      "description": "Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded.\nSupported keys: `name`, `requiresignedurls`, `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`.",
      "example": "name aGVsbG8gd29ybGQ=, requiresignedurls, allowedorigins ZXhhbXBsZS5jb20sdGVzdC5jb20=",
      "type": "string"
    }
  }
]

Debug "requestBody"

{
  "content": {
    "application/json": {
      "schema": {
        "properties": {
          "allowedOrigins": {
            "description": "Lists the origins allowed to display the video. Enter allowed origin domains in an array and use `*` for wildcard subdomains. Empty arrays allow the video to be viewed on any origin.",
            "example": [
              "example.com"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "creator": {
            "description": "A user-defined identifier for the media creator.",
            "example": "creator-id_abcde12345",
            "maxLength": 64,
            "type": "string"
          },
          "meta": {
            "description": "A user modifiable key-value store used to reference other systems of record for managing videos.",
            "example": {
              "name": "video12345.mp4"
            },
            "type": "object"
          },
          "requireSignedURLs": {
            "default": false,
            "description": "Indicates whether the video can be a accessed using the UID. When set to `true`, a signed token must be generated with a signing key to view the video.",
            "example": true,
            "type": "boolean"
          },
          "scheduledDeletion": {
            "description": "Indicates the date and time at which the video will be deleted. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion. If specified, must be at least 30 days from upload time.",
            "example": "2014-01-02T02:20:00Z",
            "format": "date-time",
            "type": "string"
          },
          "thumbnailTimestampPct": {
            "default": 0,
            "description": "The timestamp for a thumbnail image calculated as a percentage value of the video's duration. To convert from a second-wise timestamp to a percentage, divide the desired timestamp by the total duration of the video.  If this value is not set, the default thumbnail image is taken from 0s of the video.",
            "example": 0.529241,
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "url": {
            "description": "A video's URL. The server must be publicly routable and support `HTTP HEAD` requests and `HTTP GET` range requests. The server should respond to `HTTP HEAD` requests with a `content-range` header that includes the size of the file.",
            "example": "https://example.com/myvideo.mp4",
            "format": "uri",
            "type": "string"
          },
          "watermark": {
            "properties": {
              "uid": {
                "description": "The unique identifier for the watermark profile.",
                "example": "ea95132c15732412d22c1476fa83f27a",
                "maxLength": 32,
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "url"
        ]
      }
    }
  },
  "required": true
}

Debug "responses"

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "allOf": [
            {
              "allOf": [
                {
                  "properties": {
                    "errors": {
                      "example": [],
                      "items": {
                        "properties": {
                          "code": {
                            "minimum": 1000,
                            "type": "integer"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "uniqueItems": true
                      },
                      "type": "array"
                    },
                    "messages": {
                      "example": [],
                      "items": {
                        "properties": {
                          "code": {
                            "minimum": 1000,
                            "type": "integer"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "uniqueItems": true
                      },
                      "type": "array"
                    },
                    "result": {
                      "anyOf": [
                        {
                          "type": "object"
                        },
                        {
                          "items": {},
                          "type": "array"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "success": {
                      "description": "Whether the API call was successful",
                      "enum": [
                        true
                      ],
                      "example": true,
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success",
                    "errors",
                    "messages",
                    "result"
                  ],
                  "type": "object"
                },
                {
                  "properties": {
                    "result": {
                      "anyOf": [
                        {
                          "type": "object"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  }
                }
              ],
              "type": "object"
            },
            {
              "properties": {
                "result": {
                  "properties": {
                    "allowedOrigins": {
                      "description": "Lists the origins allowed to display the video. Enter allowed origin domains in an array and use `*` for wildcard subdomains. Empty arrays allow the video to be viewed on any origin.",
                      "example": [
                        "example.com"
                      ],
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "created": {
                      "description": "The date and time the media item was created.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "creator": {
                      "description": "A user-defined identifier for the media creator.",
                      "example": "creator-id_abcde12345",
                      "maxLength": 64,
                      "type": "string"
                    },
                    "duration": {
                      "description": "The duration of the video in seconds. A value of `-1` means the duration is unknown. The duration becomes available after the upload and before the video is ready.",
                      "type": "number"
                    },
                    "input": {
                      "properties": {
                        "height": {
                          "description": "The video height in pixels. A value of `-1` means the height is unknown. The value becomes available after the upload and before the video is ready.",
                          "type": "integer"
                        },
                        "width": {
                          "description": "The video width in pixels. A value of `-1` means the width is unknown. The value becomes available after the upload and before the video is ready.",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "liveInput": {
                      "description": "The live input ID used to upload a video with Stream Live.",
                      "example": "fc0a8dc887b16759bfd9ad922230a014",
                      "maxLength": 32,
                      "type": "string"
                    },
                    "maxDurationSeconds": {
                      "description": "The maximum duration in seconds for a video upload. Can be set for a video that is not yet uploaded to limit its duration. Uploads that exceed the specified duration will fail during processing. A value of `-1` means the value is unknown.",
                      "maximum": 21600,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "meta": {
                      "description": "A user modifiable key-value store used to reference other systems of record for managing videos.",
                      "example": {
                        "name": "video12345.mp4"
                      },
                      "type": "object"
                    },
                    "modified": {
                      "description": "The date and time the media item was last modified.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "playback": {
                      "properties": {
                        "dash": {
                          "description": "DASH Media Presentation Description for the video.",
                          "example": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.mpd",
                          "type": "string"
                        },
                        "hls": {
                          "description": "The HLS manifest for the video.",
                          "example": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.m3u8",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "preview": {
                      "description": "The video's preview page URI. This field is omitted until encoding is complete.",
                      "example": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/watch",
                      "format": "uri",
                      "type": "string"
                    },
                    "readyToStream": {
                      "description": "Indicates whether the video is playable. The field is empty if the video is not ready for viewing or the live stream is still in progress.",
                      "example": true,
                      "type": "boolean"
                    },
                    "readyToStreamAt": {
                      "description": "Indicates the time at which the video became playable. The field is empty if the video is not ready for viewing or the live stream is still in progress.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "requireSignedURLs": {
                      "default": false,
                      "description": "Indicates whether the video can be a accessed using the UID. When set to `true`, a signed token must be generated with a signing key to view the video.",
                      "example": true,
                      "type": "boolean"
                    },
                    "scheduledDeletion": {
                      "description": "Indicates the date and time at which the video will be deleted. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion. If specified, must be at least 30 days from upload time.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "size": {
                      "description": "The size of the media item in bytes.",
                      "example": 4190963,
                      "type": "number"
                    },
                    "status": {
                      "description": "Specifies a detailed status for a video. If the `state` is `inprogress` or `error`, the `step` field returns `encoding` or `manifest`. If the `state` is `inprogress`, `pctComplete` returns a number between 0 and 100 to indicate the approximate percent of completion. If the `state` is `error`, `errorReasonCode` and `errorReasonText` provide additional details.",
                      "properties": {
                        "errorReasonCode": {
                          "description": "Specifies why the video failed to encode. This field is empty if the video is not in an `error` state. Preferred for programmatic use.",
                          "example": "ERR_NON_VIDEO",
                          "type": "string"
                        },
                        "errorReasonText": {
                          "description": "Specifies why the video failed to encode using a human readable error message in English. This field is empty if the video is not in an `error` state.",
                          "example": "The file was not recognized as a valid video file.",
                          "type": "string"
                        },
                        "pctComplete": {
                          "description": "Indicates the size of the entire upload in bytes. The value must be a non-negative integer.",
                          "maximum": 100,
                          "minimum": 0,
                          "type": "string"
                        },
                        "state": {
                          "description": "Specifies the processing status for all quality levels for a video.",
                          "enum": [
                            "pendingupload",
                            "downloading",
                            "queued",
                            "inprogress",
                            "ready",
                            "error"
                          ],
                          "example": "inprogress",
                          "type": "string"
                        }
                      }
                    },
                    "thumbnail": {
                      "description": "The media item's thumbnail URI. This field is omitted until encoding is complete.",
                      "example": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/thumbnails/thumbnail.jpg",
                      "format": "uri",
                      "type": "string"
                    },
                    "thumbnailTimestampPct": {
                      "default": 0,
                      "description": "The timestamp for a thumbnail image calculated as a percentage value of the video's duration. To convert from a second-wise timestamp to a percentage, divide the desired timestamp by the total duration of the video.  If this value is not set, the default thumbnail image is taken from 0s of the video.",
                      "example": 0.529241,
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "uid": {
                      "description": "A Cloudflare-generated unique identifier for a media item.",
                      "example": "ea95132c15732412d22c1476fa83f27a",
                      "maxLength": 32,
                      "type": "string"
                    },
                    "uploadExpiry": {
                      "description": "The date and time when the video upload URL is no longer valid for direct user uploads.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "uploaded": {
                      "description": "The date and time the media item was uploaded.",
                      "example": "2014-01-02T02:20:00Z",
                      "format": "date-time",
                      "type": "string"
                    },
                    "watermark": {
                      "properties": {
                        "created": {
                          "description": "The date and a time a watermark profile was created.",
                          "example": "2014-01-02T02:20:00Z",
                          "format": "date-time",
                          "type": "string"
                        },
                        "downloadedFrom": {
                          "description": "The source URL for a downloaded image. If the watermark profile was created via direct upload, this field is null.",
                          "example": "https://company.com/logo.png",
                          "type": "string"
                        },
                        "height": {
                          "description": "The height of the image in pixels.",
                          "type": "integer"
                        },
                        "name": {
                          "default": "",
                          "description": "A short description of the watermark profile.",
                          "example": "Marketing Videos",
                          "type": "string"
                        },
                        "opacity": {
                          "default": 1,
                          "description": "The translucency of the image. A value of `0.0` makes the image completely transparent, and `1.0` makes the image completely opaque. Note that if the image is already semi-transparent, setting this to `1.0` will not make the image completely opaque.",
                          "example": 0.75,
                          "maximum": 1,
                          "minimum": 0,
                          "type": "number"
                        },
                        "padding": {
                          "default": 0.05,
                          "description": "The whitespace between the adjacent edges (determined by position) of the video and the image. `0.0` indicates no padding, and `1.0` indicates a fully padded video width or length, as determined by the algorithm.",
                          "example": 0.1,
                          "maximum": 1,
                          "minimum": 0,
                          "type": "number"
                        },
                        "position": {
                          "default": "upperRight",
                          "description": "The location of the image. Valid positions are: `upperRight`, `upperLeft`, `lowerLeft`, `lowerRight`, and `center`. Note that `center` ignores the `padding` parameter.",
                          "example": "center",
                          "type": "string"
                        },
                        "scale": {
                          "default": 0.15,
                          "description": "The size of the image relative to the overall size of the video. This parameter will adapt to horizontal and vertical videos automatically. `0.0` indicates no scaling (use the size of the image as-is), and `1.0 `fills the entire video.",
                          "example": 0.1,
                          "maximum": 1,
                          "minimum": 0,
                          "type": "number"
                        },
                        "size": {
                          "description": "The size of the image in bytes.",
                          "example": 29472,
                          "type": "number"
                        },
                        "uid": {
                          "description": "The unique identifier for a watermark profile.",
                          "example": "ea95132c15732412d22c1476fa83f27a",
                          "maxLength": 32,
                          "type": "string"
                        },
                        "width": {
                          "description": "The width of the image in pixels.",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            }
          ]
        }
      }
    },
    "description": "Upload videos from a URL response"
  },
  "4XX": {
    "content": {
      "application/json": {
        "schema": {
          "properties": {
            "errors": {
              "allOf": [
                {
                  "example": [],
                  "items": {
                    "properties": {
                      "code": {
                        "minimum": 1000,
                        "type": "integer"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "uniqueItems": true
                  },
                  "type": "array"
                }
              ],
              "example": [
                {
                  "code": 7003,
                  "message": "No route for the URI"
                }
              ],
              "minLength": 1
            },
            "messages": {
              "allOf": [
                {
                  "example": [],
                  "items": {
                    "properties": {
                      "code": {
                        "minimum": 1000,
                        "type": "integer"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "uniqueItems": true
                  },
                  "type": "array"
                }
              ],
              "example": []
            },
            "result": {
              "enum": [
                null
              ],
              "nullable": true,
              "type": "object"
            },
            "success": {
              "description": "Whether the API call was successful",
              "enum": [
                false
              ],
              "example": false,
              "type": "boolean"
            }
          },
          "required": [
            "success",
            "errors",
            "messages",
            "result"
          ],
          "type": "object"
        }
      }
    },
    "description": "Upload videos from a URL response failure"
  }
}

Debug "security"

[
  {
    "api_email": [],
    "api_key": []
  }
]