Skip to content
Start here

Clip videos given a start and end time

client.Stream.Clip.New(ctx, params) (*Clip, error)
POST/accounts/{account_id}/stream/clip

Clips a video based on the specified start and end times provided in seconds.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Stream Write
ParametersExpand Collapse
params ClipNewParams
AccountID param.Field[string]

Path param: The account identifier tag.

maxLength32
ClippedFromVideoUID param.Field[string]

Body param: The unique video identifier (UID).

maxLength32
EndTimeSeconds param.Field[int64]

Body param: Specifies the end time for the video clip in seconds.

StartTimeSeconds param.Field[int64]

Body param: Specifies the start time for the video clip in seconds.

AllowedOrigins param.Field[[]AllowedOrigins]optional

Body param: 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.

Creator param.Field[string]optional

Body param: A user-defined identifier for the media creator.

maxLength64
MaxDurationSeconds param.Field[int64]optional

Body param: 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.

maximum36000
minimum1
RequireSignedURLs param.Field[bool]optional

Body param: 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.

ThumbnailTimestampPct param.Field[float64]optional

Body param: 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.

maximum1
minimum0
Watermark param.Field[ClipNewParamsWatermark]optional

Body param

UID stringoptional

The unique identifier for the watermark profile.

maxLength32
ReturnsExpand Collapse
type Clip struct{…}
AllowedOrigins []AllowedOriginsoptional

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.

ClippedFromVideoUID stringoptional

The unique video identifier (UID).

maxLength32
Created Timeoptional

The date and time the clip was created.

formatdate-time
Creator stringoptional

A user-defined identifier for the media creator.

maxLength64
EndTimeSeconds int64optional

Specifies the end time for the video clip in seconds.

MaxDurationSeconds int64optional

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.

maximum36000
minimum1
Meta unknownoptional

A user modifiable key-value store used to reference other systems of record for managing videos.

Modified Timeoptional

The date and time the live input was last modified.

formatdate-time
Playback ClipPlaybackoptional
Dash stringoptional

DASH Media Presentation Description for the video.

Hls stringoptional

The HLS manifest for the video.

Preview stringoptional

The video's preview page URI. This field is omitted until encoding is complete.

formaturi
RequireSignedURLs booloptional

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.

StartTimeSeconds int64optional

Specifies the start time for the video clip in seconds.

Status ClipStatusoptional

Specifies the processing status for all quality levels for a video.

One of the following:
const ClipStatusPendingupload ClipStatus = "pendingupload"
const ClipStatusDownloading ClipStatus = "downloading"
const ClipStatusQueued ClipStatus = "queued"
const ClipStatusInprogress ClipStatus = "inprogress"
const ClipStatusReady ClipStatus = "ready"
const ClipStatusError ClipStatus = "error"
const ClipStatusLiveInprogress ClipStatus = "live-inprogress"
ThumbnailTimestampPct float64optional

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.

maximum1
minimum0
Watermark ClipWatermarkoptional
UID stringoptional

The unique identifier for the watermark profile.

maxLength32

Clip videos given a start and end time

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/stream"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  clip, err := client.Stream.Clip.New(context.TODO(), stream.ClipNewParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    ClippedFromVideoUID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    EndTimeSeconds: cloudflare.F(int64(0)),
    StartTimeSeconds: cloudflare.F(int64(0)),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", clip.ClippedFromVideoUID)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "allowedOrigins": [
      "example.com"
    ],
    "clippedFromVideoUID": "023e105f4ecef8ad9ca31a8372d0c353",
    "created": "2014-01-02T02:20:00Z",
    "creator": "creator-id_abcde12345",
    "endTimeSeconds": 0,
    "maxDurationSeconds": 1,
    "meta": {
      "name": "video12345.mp4"
    },
    "modified": "2014-01-02T02:20:00Z",
    "playback": {
      "dash": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.mpd",
      "hls": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.m3u8"
    },
    "preview": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/watch",
    "requireSignedURLs": true,
    "startTimeSeconds": 0,
    "status": "inprogress",
    "thumbnailTimestampPct": 0.529241,
    "watermark": {
      "uid": "ea95132c15732412d22c1476fa83f27a"
    }
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "allowedOrigins": [
      "example.com"
    ],
    "clippedFromVideoUID": "023e105f4ecef8ad9ca31a8372d0c353",
    "created": "2014-01-02T02:20:00Z",
    "creator": "creator-id_abcde12345",
    "endTimeSeconds": 0,
    "maxDurationSeconds": 1,
    "meta": {
      "name": "video12345.mp4"
    },
    "modified": "2014-01-02T02:20:00Z",
    "playback": {
      "dash": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.mpd",
      "hls": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.m3u8"
    },
    "preview": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/watch",
    "requireSignedURLs": true,
    "startTimeSeconds": 0,
    "status": "inprogress",
    "thumbnailTimestampPct": 0.529241,
    "watermark": {
      "uid": "ea95132c15732412d22c1476fa83f27a"
    }
  }
}