---
# System prepended metadata

title: Motoverse

---

# :stadium: Motoverse

###### tags: `customer`

## Sample Data
Request Ids :
1. request-id-1 - success
2. request-id-2 - failure
3. request-id-3 - pending

## Media Priority
* Priority 0 :  Three videos in request 
* Priority 1 :  Two videos and 1 image in request
* Priority 2 : 1 video and 2 images in request
* Priority 3 :  Three images in request
* Priority 4 : two media in request will be appended by generic media
* Priority 5 : 1 media in request will be appended by 2 generic media

### SOP
1. First two seconds of videos will be used in case video is of longer length
2. Any media more than 3 will be ignored
3. Video should be in vertical format. In case they are in horizontal format, they will be transformed
4. 15 seconds videos, 720P??

## API

source IP need to be white list - Sunil please check API gateway

### New Video
URL : https://api.whilter.ai/video
Request : POST
Header : API-KEY
### Request
```json
{
    "request-identifier" : "client-unique-key",
    "timestamp" : "12123303",
    "template-id": "<template-uuid>",
    "user-id": "<user-id>",
    "user-text" : [
        "User specific text 1",
        "User specific text 2"
    ],
    "image-urls" : [
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image1.jpeg",
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image2.jpeg",
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image3.jpeg"
    ],
    "video-urls" : [
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video1.mov",
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video2.mov",
        "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video3.mov"
    ]
}
```
#### Ingestion Service config
```json
{
    // mapping
}
```
Transaction Event from API Ingestion
```json
{
    "request-identifier" : "client-unique-key",
    "timestamp" : "12123303",
    "template-id": "<template-uuid>",
    "user-id": "<user-id>",
    "image-url-1" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image1.jpeg",
    "image-url-2" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image2.jpeg",
    "image-url-3" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/images/image3.jpeg",
    "video-url-1" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video1.mov",
    "video-url-2" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video2.mov",
    "video-url-3" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/video3.mov"
}
```
#### Downlaoder Service config
```json
{
    "base-path" : "/whilter"
}
```
Transaction Event from API Downlaoder Service
```json
{
    "request-identifier" : "client-unique-key",
    "timestamp" : "12123303",
    "template-id": "<template-uuid>",
    "user-id": "<user-id>",
    "image-file-path-1" : "/whilter/client_key/template/image-1.jpeg",
    "image-file-path-2" : "/whilter/client_key/template/image-2.jpeg",
    "image-file-path-3" : "/whilter/client_key/template/image-3.jpeg",
    "video-file-path-1" : "/whilter/client_key/template/video1.mov",
    "video-file-path-2" : "/whilter/client_key/template/video2.mov",
    "video-file-path-3" : "/whilter/client_key/template/video3.mov"
}
```
### Response
Success
```json
{
    "request-identifier" : "client-unique-key",
    "status" : "202"
}
```
Failure
```json
{
    "request-identifier" : "client-unique-key",
    "status" : "40X"
}
```
## Video Status Client
URL : https://api.whilter.ai/video-status/client/{client-unique-key}
Request : GET
Header : API-KEY
### Response
Success
```json
{
    "request-identifier" : "client-unique-key",
    "status" : "200",
    "state" : "success",
    "video-url" : "https://amplify-whilter-dev--193849-deployment.s3.ap-south-1.amazonaws.com/videos/final-video.mp4"
}
```
In Process
```json
{
    "request-identifier" : "client-unique-key",
    "status" : "200",
    "state" : "pending"
}
```
## Whilter Public Service
### Request Table
Request(APIKey, TemplateKey, UserKey, Other fields)+Status+VideoFinalURL (MongoDB/DDB)
### API Logic
    First Validate if not exist
        Then Create Brain Event
        Else Respond accordingly
## Whilter Downloader Service
    Download assets in brain event to local pvc
    folder per apikey > template key > user key
    