Summarize this article with:
- Video Logo Detection is a technology that uses Machine Learning and Computer Vision techniques to identify logos and brand elements in video content.
- You are now ready to process your video file into Eden AI Video Logo Detection API.
- To perform Logo Detection in videos, you just need to create an account on Eden AI for free.
- We offer a unified API for all providers: simple and standard to use, with a quick switch between providers and an access to the specific features of each provider.
- With Eden AI's standardized API and ready-to-use code examples, most developers can integrate the feature in under an hour.
In this tutorial, you will learn how to use Video Logo Detection API in 5 minutes using JavaScript. Eden AI provides an easy and developer-friendly API that allows you to detect logos in videos.
What is Video Logo Detection?
Video Logo Detection is a technology that uses Machine Learning and Computer Vision techniques to identify logos and brand elements in video content. The API can track the number of logo appearances, returning timestamps and size of detected logos.

This technology can be customized to detect specific logos by training it on custom datasets. It can be integrated with other technologies such as Object Detection, Facial Recognition and Text Recognition to provide a more detailed analysis of the image. It can also be used to track brand mentions, measure advertising impact, and monitor brand identity usage.
Get Started with Video Logo Detection API using JavaScript
The first step is to set Axios, a promise-based HTTP client for the browser and Node.js, that will allow you to call Eden AI API.
.png)
Next, you'll need to initialize the File System module in order to access local files on your computer.
.png)
Finally, you'll need to create your multipart/formdata parameters form:

How to use Logo Detection API with JavaScript
You are now ready to process your video file into Eden AI Video Logo Detection API. You can access the list of languages supported in our documentation here.
1. Get a Video Logo Detection API Key on Eden AI
To perform Logo Detection in videos, you just need to create an account on Eden AI for free. Then, you will be able to get your API key directly from the homepage with free credits offered by Eden AI.

2. Let’s Detect Logos in your Video File
Now that you have initialized the required JavaScript modules and got your API key, you will be able to detect logos in videos. Logo detection in videos now goes through a multimodal LLM that accepts video as input, called with Eden AI’s OpenAI-compatible chat completions endpoint: the model lists the logos and brand names with the time ranges where they appear, rather than frame-by-frame bounding boxes. You can use any model that has video in its input_modalities: see our documentation.
Here is the JavaScript code to add your video to the form data and set your API key:
form.append("file", fs.createReadStream("path/to/your/video.mp4"));
const apiKey = "Your_API_Key";
Once the file is added, you can configure your requests: the video is first uploaded to Eden AI, which returns a file_id, then the request asks a multimodal LLM, here google/gemini-2.5-flash, to detect the logos and to answer in the JSON format set by the schema:
// Step 1: upload your video to Eden AI, which returns a file_id
const uploadOptions = {
method: "POST",
url: "https://api.edenai.run/v3/upload",
headers: {
authorization: `Bearer ${apiKey}`,
...form.getHeaders(),
},
data: form,
};
// Step 2: ask a multimodal LLM to detect the logos, with the JSON format of the answer
const schema = {
type: "object",
properties: {
logos: {
type: "array",
items: {
type: "object",
properties: {
logo: { type: "string" },
start_time: { type: "number" },
end_time: { type: "number" },
},
required: ["logo", "start_time", "end_time"],
},
},
},
required: ["logos"],
};
const options = (fileId) => ({
method: "POST",
url: "https://api.edenai.run/v3/chat/completions",
headers: {
authorization: `Bearer ${apiKey}`,
},
data: {
model: "google/gemini-2.5-flash", // any model with video in its input_modalities
messages: [
{
role: "user",
content: [
{ type: "text", text: "List the logos and brand names that appear in this video, with the time range in seconds where each one appears." },
{ type: "file", file: { file_id: fileId } },
],
},
],
response_format: { type: "json_schema", json_schema: { name: "logos", schema: schema } },
},
});
Then, you need to create launchJob() function that will execute POST request:
.png)
Finally, create the run() function that uploads the video, launches the request and reads the answer. There is no job to poll, as the result comes back in the same response:
const run = async () => {
const upload = await axios.request(uploadOptions);
const response = await launchJob(options(upload.data.file_id));
console.log(response.data);
// The answer is a JSON string that follows the schema
const result = JSON.parse(response.data.choices[0].message.content);
console.log(result.logos);
};
run().catch((error) => {
console.error(error.response ? error.response.data : error);
});
You will get this response, where the answer is a JSON string in choices[0].message.content:
{
"status": "success",
"model": "gemini-2.5-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "{\n \"logos\": [\n {\n \"logo\": \"The Blender Foundation\",\n \"start_time\": 9,\n \"end_time\": 11\n },\n {\n \"logo\": \"Sintel\",\n \"start_time\": 40,\n \"end_time\": 42\n },\n {\n \"logo\": \"Sintel\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Blender Foundation\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"The Netherlands Film Fund\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Cinegrid\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Divx\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Jan Morgenstern\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Blender Institute\",\n \"start_time\": 48,\n \"end_time\": 50\n },\n {\n \"logo\": \"Blender\",\n \"start_time\": 48,\n \"end_time\": 50\n }\n ]\n}"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15634,
"completion_tokens": 636,
"total_tokens": 16270
},
"provider": "google",
"cost": 0.0074499
}
Once parsed, this JSON string gives the result for Logo Detection task (the time ranges are estimated by the model, so check them on a few of your own videos before relying on them in production):
[
{
"logo": "The Blender Foundation",
"start_time": 9,
"end_time": 11
},
{
"logo": "Sintel",
"start_time": 40,
"end_time": 42
},
{
"logo": "Sintel",
"start_time": 48,
"end_time": 50
},
{
"logo": "Blender Foundation",
"start_time": 48,
"end_time": 50
},
...
]
Benefits of using Video Logo Detection API with Eden AI
Using Video Logo Detection with Eden AI API is quick and easy.
.gif)
Save time and cost
We offer a unified API for all providers: simple and standard to use, with a quick switch between providers and an access to the specific features of each provider.
Easy to integrate
The JSON output format is the same for all suppliers thanks to Eden AI's standardisation work. The response elements are also standardised thanks to Eden AI's powerful matching algorithms.
Customization
With Eden AI you have the possibility to integrate a third-party platform: we can quickly develop connectors. To go further and customize your Video Logo Detection request with specific parameters, check out our documentation.
.png)
.jpg)
