storage-label-videos/extension.yaml (183 lines of code) (raw):

name: storage-label-videos version: 0.1.3 specVersion: v1beta displayName: Label Videos with Cloud Video AI description: Extracts labels from videos and saves to Cloud Storage using Cloud Video Intelligence API. license: Apache-2.0 icon: icon.png tags: [ ai, cloud-video, video-recognition, video-classification, google-ai, video-intelligence-api, ] author: authorName: Google Cloud url: https://cloud.google.com/ contributors: - authorName: Invertase email: oss@invertase.io url: https://github.com/invertase sourceUrl: https://github.com/GoogleCloudPlatform/firebase-extensions/tree/main/storage-label-videos releaseNotesUrl: https://github.com/GoogleCloudPlatform/firebase-extensions/tree/main/storage-label-videos/CHANGELOG.md billingRequired: true apis: - apiName: videointelligence.googleapis.com reason: Powers all Video Intelligence tasks performed by the extension. resources: - name: labelVideo type: firebaseextensions.v1beta.function description: Listens to incoming Storage documents that are videos and executes video labelling detection on them. properties: location: ${param:LOCATION} availableMemoryMb: 128 eventTrigger: eventType: google.storage.object.finalize resource: projects/_/buckets/${param:INPUT_VIDEOS_BUCKET} runtime: nodejs20 params: - param: LOCATION label: Cloud Functions location description: >- Cloud region where annotation should take place. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations). type: select # Only these locations are available see: # https://cloud.google.com/video-intelligence/docs/reference/rpc/google.cloud.videointelligence.v1#annotatevideorequest options: - label: South Carolina (us-east1) value: us-east1 - label: Oregon (us-west1) value: us-west1 - label: Belgium (europe-west1) value: europe-west1 - label: Taiwan (asia-east1) value: asia-east1 default: us-east1 required: true immutable: true - param: INPUT_VIDEOS_BUCKET label: Cloud Storage bucket where videos should be picked up and processed. description: > Cloud Storage bucket where videos should be picked up and processed. type: string example: my-project-12345.appspot.com validationRegex: ^([0-9a-z_.-]*)$ validationErrorMessage: Invalid storage bucket default: ${STORAGE_BUCKET} required: true - param: OUTPUT_BUCKET label: Cloud Storage bucket where the ouput json from a processed videos should be stored. description: > Cloud Storage bucket where videos should be process to. type: string example: my-project-12345.appspot.com validationRegex: ^([0-9a-z_.-]*)$ validationErrorMessage: Invalid storage bucket default: ${STORAGE_BUCKET} required: true - param: INPUT_VIDEOS_PATH label: Input videos path description: > A Storage path in the input video bucket that the extension should process videos from. type: string example: /video_annotation_input/ validationRegex: ^\/([0-9a-zA-Z_\/\-]*\/){0,1}$ validationErrorMessage: Invalid storage folder name default: /video_annotation_input/ required: true - param: OUTPUT_PATH label: Output videos path description: > A Storage path in the output video bucket that the output json should be stored. type: string example: /video_annotation_output/ validationRegex: ^\/([0-9a-zA-Z_\/\-]*\/){0,1}$ validationErrorMessage: Invalid storage folder name default: /video_annotation_output/ required: true - param: LABEL_DETECTION_MODE label: Label detection mode description: > What labels should be detected with LABEL_DETECTION, in addition to video-level labels or segment-level labels. If unspecified, defaults to SHOT_MODE. type: select options: - label: Detect shot-level labels value: SHOT_MODE - label: Detect frame-level labels value: FRAME_MODE - label: Detect both shot-level and frame-level labels value: SHOT_AND_FRAME_MODE default: SHOT_MODE required: true - param: VIDEO_CONFIDENCE_THRESHOLD label: Video confidence threshold description: > The confidence threshold we perform filtering on the labels from video-level and shot-level detections. If not set, it is set to 0.3 by default. The valid range for this threshold is [0.1, 0.9]. Any value set outside of this range will be clipped. Note: for best results please follow the default threshold. We will update the default threshold everytime when we release a new model. example: 0.3 validationRegex: ^[01]\.[0-9] validationErrorMessage: Must be a value >= 0.0 and <= 1.0 default: 0.3 required: true - param: FRAME_CONFIDENCE_THRESHOLD label: Frame confidence threshold description: > The confidence threshold we perform filtering on the labels from frame-level detection. If not set, it is set to 0.4 by default. The valid range for this threshold is [0.1, 0.9]. Any value set outside of this range will be clipped. Note: for best results please follow the default threshold. We will update the default threshold everytime when we release a new model. example: 0.4 validationRegex: ^[01]\.[0-9] validationErrorMessage: Must be a value >= 0.0 and <= 1.0 default: 0.4 required: true - param: MODEL label: Model description: > Model to use for label detection. type: select example: builtin/stable options: - label: Stable value: builtin/stable - label: Latest value: builtin/latest default: builtin/stable required: true - param: STATIONARY_CAMERA label: Stationary Camera description: > Whether the video has been shot from a stationary (i.e. non-moving) camera. When set to true this might improve detection accuracy for moving objects. Will default to false if LABEL_DETECTION_MODE has been set to SHOT_AND_FRAME_MODE. type: select options: - label: Yes value: true - label: No value: false default: true required: true roles: - role: storage.objectAdmin reason: Allows the extension to write to your Cloud Storage.