Official Content

Sends a video to be processed in order to be analyzed later by Analyze procedure. This task is performed asynchronously due to the processing latency.



The following table resumes the configuration properties (access credentials) you must set in order to use this AI task.

ProviderType Key KeySecret Account
Alibaba 内容安全 app-key 用户AccessKey 用户AccessKey
Amazon  - - -
Baidu  视频内容分析 视频内容分析  
Google  Video Intelligence API - -
IBM  - - -
Microsoft  Video Indexer - Azure Connect
SAP  - - -
Tencent  - - -


This section describes two alternatives for processing a video: synchronously or asynchronously. Once processed, you can get the analysis made by the provider. In other words, you need to use both Process and Analyze tasks.

Synchronous processing

The way you process a video synchronously is by polling for the processing status. The example below shows how you can do it.

&callbackObject = "" // It's not necessary to indicate a callback object for this strategy
&VideoId = GeneXusAI.Video.Process(&video,&locale,&callbackObject,&provider,&Messages) 
if &Messages.Count > 0 
   do while True
      &outputAnalysis = GeneXusAI.Video.Analyze(&videoId,&provider,&Messages) // Polling
      if &outputAnalysis.Completed OR &Messages.Count > 0 
         exit // Exit from the loop
     &x = Sleep(30) // Wait 30 seconds until poll again
   if &Messages.Count > 0

Note that for large video files this strategy may take a long time. Consider using asynchronous strategy in these cases.

Asynchronous processing

The way you process a video asynchronously is by indicating a callback-object to this task.

For example, you can write a code as follows:

&callbackObject = Link(VideoHandler) // It gets the object name mantaining a reference to it
&VideoId = GeneXusAI.Video.Process(&video,&locale,&callbackObject,&provider,&Messages)
if &Messages.Count > 0

Where VideoHandler is a Procedure object with Expose as Web Service property = True, and defined as follows:

   parm(in:&videoId); // Mandatory :: video identifier
   &OutputAnalysis = GeneXusAI.Video.Analyze(&videoId,&provider,&Messages)
   if &Messages.Count > 0

Alternatively, instead of getting the analysis in this object, you can send a notification and call the Analyze procedure on a Panel for Web or Smart Devices. This can be done by using Server.Socket external object for Web, or Notification Provider API for Smart Devices.

Warning: For testing your asynchronous solution, your application must be accessible for the external provider (e.g. your IP must be remotely accessible, or you can host your application on a real server -- Deploy To Cloud option can be a good alternative).


  • For the asynchronous strategy, the callback-object must include a Parm rule with the incoming video identifier.
  • Special considerations
    • For Microsoft:
      • To get the Key/Account, please refer to this document.
      • Despite no region is filled up on the 'Faces' field items (top, left, width, height fields are zero -- or empty), you will have a property with 'thumbnail' key whose value is a cropped image of the identified face.
    • For Baidu:
      • Only supports synchronous mode (not callback-url is available).


Generators .NET.NET FrameworkJavaAppleAndroid
Connectivity  Online


This procedure is available as of GeneXus 16 upgrade 1.

See also

Last update: November 2023 | © GeneXus. All rights reserved. GeneXus Powered by Globant