apyhub
DATA EXTRACTION · FILE CONVERSION

Extract Video Metadata API

What it does

Video Metadata Extractor reads a video file or a video URL and returns a nested metadata object in JSON. Send either an uploaded video in body.video or a remote file in body.video_url, and get the extracted data payload back.

Use it when you need to inspect media properties before upload, transcode a library, or store technical details alongside user-generated video. The response is structured for programmatic processing, with metadata grouped into audio, video, and file sections.

Because the service accepts common video formats such as .mp4, .mkv, .avi, .mov, .flv, .3gp, and .webm, it fits ingestion pipelines that handle mixed source media. You can point it at a hosted asset, extract metadata at the edge of your workflow, and decide whether a file meets your processing rules without downloading or parsing it yourself.

▣ ENDPOINT 01 / 02
POST
Extract video metadata (upload → JSON)
https://api.eu.apyverse.com/apyhub/video-metadata-extract/multi-part/download

QUICKSTART

GUIDE

Quickstart

Upload a video file to extract its metadata.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-metadata-extract/multi-part/download" \
  -H "apy-token: $APY_TOKEN" \
  -F "video=@/path/to/video.mp4"

What you'll get back

Returns a JSON object with a data object field containing the extracted metadata, grouped into nested audio, video, and file sections.

{
    "audio": {},
    "video": {},
    "file": {}
}
TRY ITLIVE · 250 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*
Video file (.mp4 .mkv .avi .mov .flv .3gp .webm)

About this endpoint

What it does

Uploads a video file and returns a JSON object containing extracted metadata. The response wraps the metadata in a top-level data object.

Request Body

ParameterTypeMandatoryDescription
videoStringYesVideo file upload in binary format. Supported file types: .mp4, .mkv, .avi, .mov, .flv, .3gp, .webm.

Response

Returns a JSON object with a audio, video and file object field containing nested metadata sections for audio, video, and file information.

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.

▣ ENDPOINT 02 / 02
POST
Extract video metadata (URL → JSON)
https://api.eu.apyverse.com/apyhub/video-metadata-extract/url/download

QUICKSTART

GUIDE

Quickstart

Send a video URL to extract its metadata.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-metadata-extract/url/download" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"video_url":"https://assets.apyhub.com/samples/sample.mp4"}'

What you'll get back

Returns a JSON object with a data object field containing the nested metadata sections for audio, video, and file.

{
    "audio": {},
    "video": {},
    "file": {}
}
TRY ITLIVE · 10 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*

About this endpoint

What it does

Extracts metadata for a video identified by a URL and returns it as JSON. The request body must include the video URL, and the response contains a data object with the extracted metadata.

Request Body

ParameterTypeMandatoryDescription
video_urlStringYesThe video URL to analyze. Must be a URI.

Response

Returns a JSON object with a audio, video and file object field containing nested metadata sections for audio, video, and file information.

Body

Name
Type
Description
bodyREQUIRED
object
▣ 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.