1 : START & GET DETECT TEXT (OCR) (ASYNC)
================================
ACTION DESCRIPTION
--------------------------------
DETECT TEXT from a video file returns a list of text annotations. For each, it returns the segment, start and stop timestamps, number of frames in which the annotation has been detected, the bounding box coordinates, and the confidence rate.
Asynchronous request mode, useful for large files and time-insensitive application.
STEP-BY-STEP SETUP
--------------------------------
If you intend to store your files in Google Cloud Storage, please refer to the instructions of "GOOGLE STORAGE DROPZONE & UTILITIES" plugin (
https://bubble.io/plugin/google-storage-dropzone--utilities-1616855011494x235332313714262000) first to setup your bucket. Then follow the instructions below.
The steps from 0) to 1) can be automatically performed by logging in into your Google Cloud Console, opening the Cloud Shell (top right corner of your page) and copy pasting this command and press enter:
wget -q
https://storage.googleapis.com/bubblegcpdemo/demo-assets/wiseable-gcp-video.py && python3 wiseable-gcp-video.py
Otherwise, follow these manual steps:
0) Set-up a project from Google Cloud Console :
https://cloud.google.com/video-intelligence/docs/common/auth#enabling_the_api - Create or select a project
- Enable the CLOUD VIDEO INTELLIGENCE API for that project
- Create a service account
- Download a private key as JSON.
1) Open the private key JSON file with a text editor, copy/paste the following parameters from your file to the Plugin settings:
- CLIENT_EMAIL
- PROJECT_ID
- PRIVATE_KEY, including the -----BEGIN PRIVATE KEY-----\n prefix and \n-----END PRIVATE KEY-----\n suffix.
2) Set up the action "START DETECT TEXT (OCR) IN VIDEO OPERATION" in the workflow.
Inputs Fields :
- VIDEO FILE : .MOV, .MPEG4, .MP4, .AVI, or any ffmpeg decodable video file from the Bubble.io uploader, or a Protocol-relative URLs (//server/video.mov), or a HTTPS video URL (
https://server/video.mov), or a Google Storage URL (gs://bucket/video.mov). See Performance Considerations in the documentation.
- LANGUAGE CODE : The language identification tag (BCP-47 code) of the media to analyse. The supported language are specified here:
https://cloud.google.com/speech-to-text/docs/languages.
Example : en-US
Output Fields :
- OPERATION NAME : ID of the operation, to be reused in the "GET DETECT TEXT (OCR) IN VIDEO RESULT".
3) Set up the action "GET DETECT TEXT (OCR) IN VIDEO RESULT" in a recurring workflow ('Do every x seconds'), to poll the operation completion status on a regular basis.
Configure this recurring workflow to retrieve the results once the operation DONE status is 'YES', using Only When' Event Condition,
Inputs Fields :
- OPERATION NAME : ID of the operation to poll, returned by "START DETECT TEXT (OCR) IN VIDEO OPERATION" action.
- OUTPUT TYPE : Returned type, must always be set to "RESULT (VIDEO)".
Output Fields :
- RESULT: Returns the operation progress rate, done status and the list of transcriptions text annotations. For each, it returns the segment, start and stop timestamps, number of frames in which the annotation has been detected, the bounding box coordinates, and the confidence rate.
IMPLEMENTATION EXAMPLE
======================
Feel free to browse the app editor in the Service URL for an implementation example.
ADDITIONAL INFORMATION
======================
> Supported video formats :
https://cloud.google.com/video-intelligence/docs/supported-formats> Supported Languages :
https://cloud.google.com/vision/docs/languages> GOOGLE VIDEO-INTELLIGENCE service limits :
https://cloud.google.com/video-intelligence/quotasTROUBLESHOOTING
================
Any plugin related error will be posted to the the Logs tab, "Server logs" section of your App Editor.
Make sure that "Plugin server side output" and "Plugin server side output" is selected in "Show Advanced".
> Server Logs Details:
https://manual.bubble.io/core-resources/bubbles-interface/logs-tab#server-logsPERFORMANCE CONSIDERATIONS
===========================
GENERAL
-------------
This implementation posts the file data to GOOGLE VIDEO INTELLIGENCE for non-Google Storage URLs (e.g: non-gs://).
Therefore, the maximum allowable file size depends both on the bandwidth between Bubble.io & GOOGLE VIDEO INTELLIGENCE, the highest limit being capped by Bubble.io's Workflow Action maximum execution time to perform this transfer operation.
QUESTIONS ?
===========
Contact us at
[email protected] for any additional feature you would require or support question.