Video Summary UI

Create a Video Summary UI

This tutorial describes how to create a Video Summary UI, one of Symbl.ai's pre-built experiences.

Before you begin

This tutorial requires:

  • An access token. You obtain your access token when you authenticate with the Symbl.ai APIs.

  • A video conversation. This tutorial guides you through processing a video to create a conversation.

  • A link to the video that you used to create the conversation. You will provide this link when you create the Video Summary UI in Step 3.


Step 1: Process a video

To create a Video Summary UI, you must provide a conversation. You can process a video to create a conversation for the Video Summary UI, or use the conversation ID of one of your existing conversations.

If you want to use the ID of a conversation you've previously processed, skip to Step 3.

This step returns two values: conversationId and jobId. These values are required for the next steps.

📘

This tutorial creates a conversation by submitting a video URL. URLs must go directly to the publicly-hosted media that you want to process. Symbl.ai does not support URL redirection, such as shortened links from platforms like YouTube or Bitly.

To submit and process a video URL, use the following operation:

POST https://api.symbl.ai/v1/process/video/url
ACCESS_TOKEN="<ACCESS_TOKEN>"
CONVERSATION_NAME="<NAME>"
FILE_URL="<URL>"

curl \
  --url "https://api.symbl.ai/v1/process/video/url" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --data '{
    "name": "'"$CONVERSATION_NAME"'",
    "url": "'"$FILE_URL"'"
  }'

Where:

  • <ACCESS_TOKEN> is a valid API access token.
  • <NAME> is the name of the conversation. For example, Business Meeting 2022-01-01. If no name is provided, the Async API sets the name to the conversation ID.
  • <URL> is a direct URL to a video file. For example, <https://www.example.com/files/example_video.mp4>.

For optional parameters and additional reference information, see Submit a video URL.

Example Request

ACCESS_TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UTT"
CONVERSATION_NAME="Meeting for Video Summary UI"
FILE_URL="https://symbltestdata.s3.us-east-2.amazonaws.com/sample_video_file.mp4"

curl \
  --url "https://api.symbl.ai/v1/process/video/url" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --data '{
    "name": "'"$CONVERSATION_NAME"'",
    "url": "'"$FILE_URL"'"
  }'

Response

When you successfully submit a video, the POST <https://api.symbl.ai/v1/process/video/url> operation returns two values: conversationId and jobId. For example:

{
  "conversationId": "5815170693595136",
  "jobId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
}

Step 2: Check the job status

Before you create the Video Summary UI, confirm that the processing job that you started in Step 1 has completed. To ensure you get the best experience, you should only create the Video Summary UI after the job is finished.

To get the the status of a processing job, use the following operation:

GET https://api.symbl.ai/v1/job/{jobId}
ACCESS_TOKEN="<ACCESS_TOKEN>"
JOB_ID="<JOB_ID>"

curl \
  --request GET \
  --url "https://api.symbl.ai/v1/job/$JOB_ID" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json"

Where:

  • <ACCESS_TOKEN> is a valid API access token.
  • <JOB_ID> is the job ID you received from the Async API after processing your video in Step 1.

Example Request

ACCESS_TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UTT"
JOB_ID="8d31f558-cb40-4ca5-b1fc-25b238d51397"

curl \
  --request GET \
  --url "https://api.symbl.ai/v1/job/$JOB_ID" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json"

Response

While the job is running, the operation returns the in_progress status. For example:

{
    "id": "8d31f558-cb40-4ca5-b1fc-25b238d51397",
    "status": "in_progress"
}

When the job is finished, the operation returns the completed status. For example:

{
    "id": "8d31f558-cb40-4ca5-b1fc-25b238d51397",
    "status": "completed"
}

After the job is finished, proceed to Step 3.


Step 3: Create the Video Summary UI

When you create the Video Summary UI, you must provide the conversation ID that was returned in Step 1, as well as the URL to the video that you processed.

To create the Video Summary UI, use the following operation:

POST https://api.symbl.ai/v1/conversations/{conversationId}/experiences
ACCESS_TOKEN="<ACCESS_TOKEN>"
CONVERSATION_ID="<CONVERSATION_ID>"
VIDEO_URL="<URL>"

curl \
  --url "https://api.symbl.ai/v1/conversations/$CONVERSATION_ID/experiences" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "video-summary",
    "videoUrl": "'"$VIDEO_URL"'",
    "summaryURLExpiresIn": 0
  }'

Where:

  • <ACCESS_TOKEN> is a valid API access token.
  • <CONVERSATION_ID> is the ID of a conversation that you created in Step 1.
  • <URL> is a direct URL to the same video you used to create a conversation in Step 1.

Request Body Parameters

FieldRequiredTypeDescription
nameMandatoryStringSet name to video-summary. This parameter accepts only the following values: video-summary, verbose-text-summary, and audio-summary.
videoUrlOptionalStringThe videoUrl needs to be the same URL that was submitted to the Async API to generate the conversationId.
summaryURLExpiresInMandatoryNumberThis sets the expiry time for the summary URL. It is interpreted in seconds. If the value 0 is passed the URL will never expire. Default time for a URL to expire is 2592000 which is 30 days.

Example Request

ACCESS_TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UTT"
CONVERSATION_ID="5815170693595136"
VIDEO_URL="https://symbltestdata.s3.us-east-2.amazonaws.com/sample_video_file.mp4"

curl \
  --url "https://api.symbl.ai/v1/conversations/$CONVERSATION_ID/experiences" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "video-summary",
    "videoUrl": "'"$VIDEO_URL"'",
    "summaryURLExpiresIn": 0
  }'

Response

When the request to create the Video Summary UI is successful, the response provides a URL to the Video Summary UI. For example:

 {
   "name" : "video-summary",
   "url" : "https://meetinginsights.symbl.ai/meeting/#/eyJzZXNzaW9uSWQiOiI1MzIyMzEwMzE4ODE3MjgwIiwicmVhZE9ubHkiOmZhbHNlLCJoaWRlU2hhcmVCdXR0b24iOmZhbHNlLCJhbmFseXRpY3NWZW5kb3JzIjpbXSwidmlkZW9VcmwiOiJodHRwczovL3N5bWJsdGVzdGRhdGEuczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vc2FtcGxlX3ZpZGVvX2ZpbGUubXA0In0.?showVideoSummary=true&o=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUzMjIzMTAzMTg4MTcyODAiLCJpYXQiOjE2NjA1OTEwODJ9.USneajuA9TdMGY9-ywEEXPsCUNl9yMGQn2SGJXO8GBI"
}

What's next