Skip to main content
POST
/
api
/
clip-projects
/
{projectId}
/
update-visibility
cURL
curl --request POST \
  --url https://api.opus.pro/api/clip-projects/{projectId}/update-visibility \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "visibility": "PUBLIC"
}
'
{
  "id": "P0000000demo",
  "userId": "google-oauth2|100000000000000000001",
  "orgId": "org_Example00000001",
  "isDeleted": false,
  "isPurged": false,
  "projectId": "P0000000demo",
  "sourcePlatform": "YOUTUBE",
  "sourceId": "YT_tEXaoozFRes",
  "labels": [],
  "productTier": "PRO",
  "stage": "QUEUED",
  "storageSize": 0,
  "storageStatus": "TEMPORARY",
  "storageExpireAt": "2024-12-19T08:17:42.832Z",
  "createdAt": "2024-11-19T08:17:42.832Z",
  "updatedAt": "2024-11-19T08:17:42.860Z",
  "clusterJobId": "FP.P0000000demo:20241119081742853.FP",
  "cluster": "gold",
  "visibility": "DEFAULT",
  "permissions": [
    "PROJECT_SHARE",
    "PROJECT_EDIT",
    "PROJECT_VIEW"
  ],
  "promptRecommendations": [
    "Foo",
    "Boo"
  ],
  "sourceUri": null,
  "model": "ClipBasic",
  "error": null,
  "stallCount": null,
  "workerUrl": null,
  "curationPref": {
    "range": {
      "startSec": 28,
      "endSec": 636
    },
    "clipDurations": [
      [
        0,
        90
      ]
    ],
    "topicKeywords": [
      "OpusClip"
    ],
    "genre": "Auto"
  },
  "renderPref": {
    "enableSplitLayout": true,
    "enableFitLayout": false,
    "enableFillLayout": false,
    "enableScreenLayout": true,
    "enableThreeLayout": true,
    "enableFourLayout": true,
    "enableAutoLayout": false,
    "fitLayoutCropRatio": "4:3",
    "enableCrop": true,
    "layoutAspectRatio": "portrait",
    "enableVisualHook": false,
    "enableCaption": true,
    "enableHighlight": true,
    "enableEmoji": true,
    "enableUppercase": true,
    "highlightColor": {
      "primary": "#04f827",
      "secondary": "#FFFD03"
    },
    "font": {
      "id": null,
      "type": null,
      "name": null,
      "path": null,
      "size": "Large",
      "numericalSize": 50,
      "color": "#ffffff",
      "style": [
        "900"
      ],
      "textDecoration": "",
      "family": "Komika-axis",
      "stroke": {
        "enabled": true,
        "color": "#000000FF",
        "width": 16
      },
      "shadow": {
        "enabled": true,
        "color": "#FFFFFFFF",
        "x": 2,
        "y": 2,
        "blur": 16,
        "useWordHighlightColor": false
      }
    },
    "enableBroll": null,
    "enableWatermark": false
  },
  "refundStatus": null,
  "importPref": {
    "sourceLang": "en"
  }
}
👆Use above tools to generate API request code snippets.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

projectId
string
required

Body

application/json
visibility
enum<string>
required

The visibility of the project. DEFAULT: Team members can open, edit and export the project. PUBLIC: Anyone can open, edit and export the project.

Available options:
DEFAULT,
PUBLIC
Example:

"PUBLIC"

Response

200 - application/json
id
string
required

The unique identifier of the project.

Example:

"P0000000demo"

userId
string
required

The unique identifier of the user.

Example:

"google-oauth2|100000000000000000001"

orgId
string
required

The unique identifier of the organization.

Example:

"org_Example00000001"

isDeleted
boolean
required

Indicates whether the project is deleted.

Example:

false

isPurged
boolean
required

Indicates whether the project is purged.

Example:

false

projectId
string
required

The unique identifier of the project.

Example:

"P0000000demo"

sourcePlatform
enum<string>
required

The platform from which the video is sourced.

Available options:
YOUTUBE,
UPLOADED,
YTDLP_LINK,
GDRIVE,
ZOOM,
STREAM_YARD
Example:

"YOUTUBE"

sourceId
string
required

The unique identifier for the video on the source platform.

Example:

"YT_tEXaoozFRes"

labels
string[]
required

Labels associated with the project.

Example:
[]
productTier
string
required

The product tier of the project.

Example:

"PRO"

stage
enum<string>
required

The current stage of the project.

Available options:
PENDING,
QUEUED,
IMPORT,
CURATE,
REFINE,
RENDER,
UPLOAD,
COMPLETE,
STALLED
Example:

"QUEUED"

storageSize
number
required

The total size of the project in bytes.

Example:

0

storageStatus
string
required

The storage status of the project.

Example:

"TEMPORARY"

storageExpireAt
string
required

The expiration date of the project storage.

Example:

"2024-12-19T08:17:42.832Z"

createdAt
string<date-time>
required

The date and time when the project was created.

Example:

"2024-11-19T08:17:42.832Z"

updatedAt
string<date-time>
required

The date and time when the project was last updated.

Example:

"2024-11-19T08:17:42.860Z"

clusterJobId
string
required

The unique identifier of the cluster job processing the project.

Example:

"FP.P0000000demo:20241119081742853.FP"

cluster
string
required

The cluster on which the project is running.

Example:

"gold"

visibility
enum<string>
required

The visibility of the project.

Available options:
DEFAULT,
PUBLIC,
PUBLIC_VIEW
Example:

"DEFAULT"

permissions
string[]
required

Permissions associated with the project.

Example:
[
"PROJECT_SHARE",
"PROJECT_EDIT",
"PROJECT_VIEW"
]
promptRecommendations
string[]
required

Recommendations for project prompts.

Example:
["Foo", "Boo"]
sourceUri
string

The URI of the source video.

Example:

null

model
enum<string>

The AI clipping model used for the project.

Available options:
ClipAnything,
ClipBasic
Example:

"ClipBasic"

error
string

Error message, if any.

Example:

null

stallCount
number

The number of times the project has stalled.

Example:

null

workerUrl
string

The URL of the worker processing the project.

Example:

null

curationPref
object

Preferences for advanced curation of the video.

Example:
{
"range": { "startSec": 28, "endSec": 636 },
"clipDurations": [[0, 90]],
"topicKeywords": ["OpusClip"],
"genre": "Auto"
}
renderPref
object

Preferences for rendering the video, including layout and overlay options.

Example:
{
"enableSplitLayout": true,
"enableFitLayout": false,
"enableFillLayout": false,
"enableScreenLayout": true,
"enableThreeLayout": true,
"enableFourLayout": true,
"enableAutoLayout": false,
"fitLayoutCropRatio": "4:3",
"enableCrop": true,
"layoutAspectRatio": "portrait",
"enableVisualHook": false,
"enableCaption": true,
"enableHighlight": true,
"enableEmoji": true,
"enableUppercase": true,
"highlightColor": {
"primary": "#04f827",
"secondary": "#FFFD03"
},
"font": {
"id": null,
"type": null,
"name": null,
"path": null,
"size": "Large",
"numericalSize": 50,
"color": "#ffffff",
"style": ["900"],
"textDecoration": "",
"family": "Komika-axis",
"stroke": {
"enabled": true,
"color": "#000000FF",
"width": 16
},
"shadow": {
"enabled": true,
"color": "#FFFFFFFF",
"x": 2,
"y": 2,
"blur": 16,
"useWordHighlightColor": false
}
},
"enableBroll": null,
"enableWatermark": false
}
refundStatus
string

The refund status of the project.

Example:

null

importPref
object

Preferences for importing the video, such as source language.

Example:
{ "sourceLang": "en" }