Vue d’ensemble
L’API Video 360 vous permet de televerser des videos 360 de vehicules, d’extraire automatiquement des images et de generer des vues 360 interactives pour une meilleure experience client. Ideale pour presenter l’exterieur, l’interieur et des inspections detaillees.
Fonctionnalites cles
Televersement video Televerser des videos 360 jusqu’a 100 Mo par fichier
Extraction d'images Extraction automatique d’images a des intervalles optimaux
Multiples cotes Prise en charge des vues OUTSIDE, INSIDE et OPEN (coffre/capot)
Stockage cloud Stockage S3 securise avec acces via URL signee
L’API accepte les formats suivants :
MP4 (.mp4) - Recommande
AVI (.avi)
MOV (.mov)
WMV (.wmv)
FLV (.flv)
WebM (.webm)
MKV (.mkv)
QuickTime (.mov, .qt)
Endpoints
Televerser une video 360
Televerser un fichier video 360 vers S3 et declencher l’extraction d’images.
Type de contenu : multipart/form-data
Parametres de formulaire :
Fichier video (max 100 Mo)
Cote du vehicule : OUTSIDE, INSIDE, OPEN
Reponse :
{
"success" : true ,
"message" : "360 video uploaded successfully" ,
"data" : {
"message" : "Video uploaded and processing started" ,
"jobId" : "job_550e8400-e29b-41d4-a716" ,
"video" : {
"key" : "360/videos/job_550e8400/OUTSIDE/video.mp4" ,
"url" : "https://s3.amazonaws.com/bucket/360/videos/job_550e8400/OUTSIDE/video.mp4" ,
"originalName" : "exterior_360.mp4" ,
"size" : 45678901 ,
"mimetype" : "video/mp4" ,
"jobId" : "job_550e8400-e29b-41d4-a716"
}
}
}
Champs de reponse :
Identifiant unique pour suivre le traitement
Cle d’objet S3 pour la video televersee
URL publique de la video televersee
Taille du fichier en octets
Exemple de requete :
curl -X POST "https://api.steerai.autos/v1/360/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "video=@exterior_360.mp4" \
-F "side=OUTSIDE"
Recuperer les images traitees
Recuperer les images extraites d’une video 360 traitee avec des URLs signees.
Parametres de requete :
ID du job issu du televersement video
Cote du vehicule : OUTSIDE, INSIDE, OPEN
Reponse :
{
"success" : true ,
"message" : "Frames retrieved successfully" ,
"data" : {
"message" : "360 frames found" ,
"jobId" : "job_550e8400-e29b-41d4-a716" ,
"side" : "OUTSIDE" ,
"frames" : [
"https://s3.amazonaws.com/bucket/360/frames/job_550e8400/OUTSIDE/frame_001.jpg?X-Amz-Signature=..." ,
"https://s3.amazonaws.com/bucket/360/frames/job_550e8400/OUTSIDE/frame_002.jpg?X-Amz-Signature=..." ,
"https://s3.amazonaws.com/bucket/360/frames/job_550e8400/OUTSIDE/frame_003.jpg?X-Amz-Signature=..."
],
"frameCount" : 72
}
}
Champs de reponse :
Tableau d’URLs signees des images (valides 1 heure)
Nombre total d’images extraites
Les URLs des images sont signees et expirent apres 1 heure. Regenerer les URLs en rappelant cet endpoint.
Recuperer les masques d’images
Recuperer les masques d’images traites (utilises pour les overlays de detection IA) avec des URLs signees.
Parametres de requete :
Cote du vehicule : OUTSIDE, INSIDE, OPEN
Reponse :
{
"success" : true ,
"message" : "Mask frames retrieved successfully" ,
"data" : {
"message" : "360 mask frames found" ,
"carId" : "car_550e8400-e29b-41d4-a716" ,
"side" : "OUTSIDE" ,
"frames" : [
"https://s3.amazonaws.com/bucket/360/masks/car_550e8400/OUTSIDE/mask_001.png?X-Amz-Signature=..." ,
"https://s3.amazonaws.com/bucket/360/masks/car_550e8400/OUTSIDE/mask_002.png?X-Amz-Signature=..."
],
"frameCount" : 72
}
}
Les masques montrent les zones de dommages detectes par l’IA superposees aux images du vehicule.
Nettoyer les donnees 360
Supprimer les donnees 360 et les images pour un vehicule et un cote. Utilise pour gerer le stockage et supprimer le contenu obsolete.
Corps de requete :
{
"carId" : "car_550e8400-e29b-41d4-a716" ,
"side" : "OUTSIDE" ,
"removeProcessed" : true
}
Cote du vehicule : OUTSIDE, INSIDE, OPEN
Supprimer aussi les images traitees (defaut : true)
Reponse :
{
"success" : true ,
"message" : "360 data cleaned up successfully" ,
"data" : {
"filesDeleted" : 73 ,
"rawVideoDeleted" : true ,
"framesDeleted" : true ,
"masksDeleted" : true
}
}
Cette operation supprime definitivement les videos et les images. Cette action est irreversible.
Workflow video 360
Cotes du vehicule
OUTSIDE
Vue 360 complete de l’exterieur :
Les quatre cotes du vehicule
Roues et pneus
Etat exterieur
Qualite de peinture
Dommages ou bosses
Bonne pratique : Marcher autour du vehicule en cercle complet, en gardant une hauteur constante.
INSIDE
Vue 360 complete de l’interieur :
Tableau de bord et commandes
Sieges avant et arriere
Console centrale
Etat interieur
Toutes les fonctionnalites de l’habitacle
Bonne pratique : Filmer depuis le siege conducteur, puis cote passager pour une couverture complete.
OPEN
Compartiments ouverts et stockage :
Coffre
Compartiment moteur
Inspection sous capot
Compartiments de rangement
Bonne pratique : Positionner la camera pour montrer toute la profondeur et les elements visibles.
Considerations de taille de fichier
Qualite Resolution Duree Taille approx. Recommande Standard 1080p 30-60s 20-40 MB ✅ Yes High 2K 30-60s 40-70 MB ✅ Yes Ultra 4K 30-60s 70-100 MB ⚠️ Max limit Too Large 4K+ 60s+ 100+ MB ❌ Exceeds limit
Les fichiers de plus de 100 Mo seront refuses. Compresser les videos si necessaire tout en conservant la qualite.
Frame Rate: 5 images par seconde (configurable)
Total Frames: ~60-120 images par video
Format: Images JPEG (qualite optimisee)
Resolution: Conserve la resolution d’origine
Temps de traitement: 1-3 minutes en general
Convention de nommage des images
Les images sont nommees de facon sequentielle :
frame_001.jpg
frame_002.jpg
frame_003.jpg
...
frame_072.jpg
Cas d’usage
Exemple 1 : Televerser un vehicule complet
# Upload exterior 360 video
curl -X POST "https://api.steerai.autos/v1/360/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "video=@exterior_360.mp4" \
-F "side=OUTSIDE"
# Upload interior 360 video
curl -X POST "https://api.steerai.autos/v1/360/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "video=@interior_360.mp4" \
-F "side=INSIDE"
# Upload trunk/engine 360 video
curl -X POST "https://api.steerai.autos/v1/360/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "video=@open_360.mp4" \
-F "side=OPEN"
Exemple 2 : Recuperer et afficher des images
// Fetch frames after processing
async function get360Frames ( jobId , side ) {
const response = await fetch (
`https://api.steerai.autos/v1/360/frames?jobId= ${ jobId } &side= ${ side } ` ,
{
headers: { 'Authorization' : `Bearer ${ API_KEY } ` }
}
);
const { data } = await response . json ();
return data . frames ;
}
// Display in 360 viewer
async function display360View ( jobId ) {
const frames = await get360Frames ( jobId , 'OUTSIDE' );
// Initialize 360 viewer library
const viewer = new Viewer360 ({
container: '#viewer-container' ,
frames: frames ,
autoRotate: true ,
rotationSpeed: 2
});
}
Exemple 3 : Gestion du stockage
# Clean up old 360 data
curl -X POST "https://api.steerai.autos/v1/360/cleanup" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"carId": "car_550e8400-e29b-41d4-a716",
"side": "OUTSIDE",
"removeProcessed": true
}'
Codes d’erreur
Code Statut Description FILE_TOO_LARGE413 La video depasse la limite de 100 Mo INVALID_FILE_TYPE400 Format video non pris en charge MISSING_VIDEO_FILE400 Aucun fichier video fourni INVALID_SIDE400 Cote du vehicule invalide JOB_NOT_FOUND404 ID de job introuvable FRAMES_NOT_READY404 Les images ne sont pas encore pretes UPLOAD_FAILED500 Erreur de televersement S3 PROCESSING_FAILED500 Echec de l’extraction d’images
Bonnes pratiques
Filmer avec un bon eclairage
La lumiere naturelle ou un showroom bien eclaire donne les meilleurs resultats. Evitez les ombres et les reflets.
Garder une vitesse constante
Marchez a un rythme regulier autour du vehicule. Trop vite cree des images floues.
Garder la camera a niveau
Conservez une hauteur et un angle constants pour un rendu professionnel.
Nettoyer le vehicule avant
Retirez la salete, les debris et le desordre pour la meilleure presentation.
Verifier la taille du fichier avant televersement
Compressez les grandes videos tout en conservant la qualite pour rester sous 100 Mo.
Televerser les trois cotes
Les vues OUTSIDE, INSIDE et OPEN offrent une couverture complete.
Nettoyer regulierement les anciennes donnees
Utilisez l’endpoint de nettoyage pour gerer les couts de stockage et supprimer les videos obsoletes.
Integration avec l’API Vehicles
L’API Video 360 s’integre parfaitement a l’API Vehicles :
// Complete vehicle listing workflow
async function createVehicleWith360 ( vehicleData , videoFiles ) {
// Step 1: Create vehicle
const vehicle = await createVehicle ( vehicleData );
// Step 2: Upload 360 videos
const outsideJob = await upload360Video ( videoFiles . outside , 'OUTSIDE' );
const insideJob = await upload360Video ( videoFiles . inside , 'INSIDE' );
const openJob = await upload360Video ( videoFiles . open , 'OPEN' );
// Step 3: Wait for processing
await waitForProcessing ([ outsideJob . jobId , insideJob . jobId , openJob . jobId ]);
// Step 4: Get frames
const outsideFrames = await get360Frames ( outsideJob . jobId , 'OUTSIDE' );
const insideFrames = await get360Frames ( insideJob . jobId , 'INSIDE' );
const openFrames = await get360Frames ( openJob . jobId , 'OPEN' );
// Step 5: Update vehicle with frame URLs
await updateVehicle ( vehicle . id , {
media360: {
outside: outsideFrames ,
inside: insideFrames ,
open: openFrames
}
});
return vehicle ;
}
Ressources associees