apyhub
ARTIFICIAL INTELLIGENCE · DATA EXTRACTION

Detect Video Text

What it does

Video Text Detection finds text in a video file or at a video URL and returns the detection results from the OCR provider you choose. Use it when you need to extract on-screen text from recorded footage, product demos, tutorials, or compliance recordings without building your own video OCR pipeline.

Send a url with requested_service set to azure or google, or upload a file with the same service choice. For Azure requests, the URL route accepts azure.region, azure.account_id, and azure.access_token; the file route accepts azure_region, azure_account_id, and azure_access_token. For Google requests, the URL route accepts google.google_language and google.google_credential_json; the file route accepts google_language and google_credential_file.

The response always includes a data object. Inside it, the azure or google property is present depending on the requested_service you sent. The service-specific object is returned as provided by the underlying OCR provider, so you can pass that output into your own processing, indexing, or review workflow.

This is a good fit for automatically capturing captions, signs, labels, UI text, or embedded annotations from video assets before storing them in a database or searchable archive.

▣ ENDPOINT 01 / 02
POST
Text Detection via URL
https://api.eu.apyverse.com/apyhub/video-detect-text/url

QUICKSTART

GUIDE

Quickstart

Detect text in a video from a public video URL and specify the OCR provider to use.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-detect-text/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://assets.apyhub.com/samples/sample.mp4",
    "requested_service": "azure"
  }'

What you'll get back

Returns a JSON object with a data object field. The data object contains the provider-specific result, so in this example it may include an azure object.

{
  "data": {
    "azure": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
azure
google
google_credential_json
Google Cloud service account JSON (required for Google video routes).

About this endpoint

What it does

Detects text in a video provided by URL. You send the video URL and choose which OCR service to use, and the response returns a JSON object containing a data object with service-specific results.

Request Body

ParameterTypeMandatoryDescription
urlStringYesVideo URL to analyze. Must be a URI.
azureObjectNoAzure-specific configuration for the Azure route.
azure.regionStringNoAzure region.
azure.account_idStringNoAzure account ID.
azure.access_tokenStringNoAzure access token.
googleObjectNoGoogle-specific configuration for the Google route.
google.google_languageStringNoGoogle language code.
google.google_credential_jsonObjectNoGoogle Cloud service account JSON (required for Google video routes). See schema for nested fields.
requested_serviceENUMYesService to use. Allowed values: azure, google.

Response

Returns a JSON object with a data object field. The data object may contain an azure object when requested_service is azure, or a google object when requested_service is google.

ParameterTypeMandatoryDescription
dataObjectYesResult wrapper object. May contain azure or google depending on requested_service.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
POST
Text Detection via file upload
https://api.eu.apyverse.com/apyhub/video-detect-text/file

QUICKSTART

GUIDE

Quickstart

Upload a video file and ask the API to detect text with the Azure service.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-detect-text/file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/video.mp4" \
  -F "requested_service=azure"

What you'll get back

Returns a JSON object with a required data object. When requested_service is azure, data.azure may be present and contains the Azure result.

{
  "data": {
    "azure": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
Service account JSON (Google routes).

About this endpoint

What it does

Uploads a video file and runs text detection using either Azure or Google, depending on requested_service. The response is a JSON object with a data field containing the service-specific result object for the selected provider.

Request Body

ParameterTypeMandatoryDescription
fileStringYesVideo file to process. Binary upload.
azure_regionStringNoAzure region identifier.
google_languageStringNoGoogle language code.
azure_account_idStringNoAzure account ID.
requested_serviceENUMYesService to use. Allowed values: azure, google.
azure_access_tokenStringNoAzure access token.
google_credential_fileStringNoService account JSON for Google routes. Binary upload.

Response

Returns a JSON object with a data object field. Inside data, the schema defines two possible provider result objects: azure and google; each is present only when requested_service matches that provider, and each is an object with additional properties allowed.

ParameterTypeMandatoryDescription
dataObjectYesWrapper for the service-specific result. Contains azure when requested_service is azure, or google when requested_service is google.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.