Reachora Video for ESC
S3 Directory Structure
For the ESC video identified by ESC2018/Scientific Programme/164679, the following structure would exist within S3:
assets-esc265-video/
└── ESC2018
└── Scientific\ Programme
└── 164679
├── HLS
│ ├── reachora-1234
│ ├── reachora-4567
│ └── reachora-current.json
└── VOD
├── infos.json
└── data.json
In this case reachora-current.json would have content with the following format:
{
"hls_manifest_path": "reachora-4567/index.m3u8",
"encoded_at": "2018-10-18T13:02:32.000Z",
"copied_at": "2019-02-21 15:09:26 UTC",
"duration_seconds": 110,
"heights": [
360,
480,
720,
1080
],
"reachora_video_code": "cc518c2161f14d1f8d228a2c0c600ee5"
}
A playing application would check that the manifest file exists, then use the value of the hls_manifest_path field to build the URL of the latest version of the HLS.
Garbage Collection
In the above example, the subdirectory reachora-1234 is no longer referenced in reachora-current.json, and can be safely deleted.
Notifying of New or Updated Videos
An API is available to notify of new or updated videos. This API is protected by Basic Authentication, the password for which is not published here. Below is an example of calling this API with cURL.
curl -v \
--header "Content-Type: application/json" \
--user "esc:PASSWORD" \
--request POST \
--data '{"video_path":"ESC2018/Scientific Programme/164679"}' \
"https://esc-ingest-api.reachora.com/videos"
This call results in a re-encoding of the video recognised by the identifier ESC2018/Scientific Programme/164679. The response body is JSON, and contains the reachora_video_code.
Error Messages
All error cases return a 422 HTTP status, with an error message in the body of each. These are listed below:
video_path parameter is missing or empty- Thevideo_pathparameter has not been supplied, or is an empty string.File data.json does not exist- The file,data.json, expected to be within with the passed S3 prefix, is missing.File data.json is not valid JSON- The file,data.json, contains invalid JSON.File infos.json does not exist- The file,infos.json, expected to be within with the passed S3 prefix, is missing.File infos.json is not valid JSON- The file,infos.json, contains invalid JSON.File VIDEO_FILENAME does not exist- The file, VIDEO_FILENAME, expected to be within with the passed S3 prefix, is missing. The filename here is not fixed, and is the video file with the largest display height as referenced ininfos.json.