AI-generated Key Takeaways
- 
          
API level 2.1, released in May 2017, introduced direct upload capabilities, a new open standard for 360 video XMP, and recommendations for camera make/model specification.
 - 
          
API level 2, released in July 2016, deprecated
sessionIdand related commands, focusing on a single client connection. - 
          
API level 2 also introduced commands and options for video capture, interval image capture, and live preview while deprecating commands for retrieving images and metadata in favor of direct URL downloads.
 - 
          
API level 2 added a 360 video XMP specification and
apiLevelfield to the/osc/infooutput for version identification and backward compatibility. - 
          
Camera manufacturers and app developers are encouraged to support both API levels during a transition period for compatibility with older cameras and apps.
 
API level 2.1
Released May 2017
Key changes
- Added
Direct Upload
to allow cameras to upload directly to servers.
- Includes new commands
switchWifianduploadFile. - Added 
photoStitchingSupport,photoStitching,videoStitchingSupport,videoStitching,videoGPSSupport,videoGPSoptions to OSC options. - Added 
cameraIdfield to/osc/infooutput. 
 - Includes new commands
 - Replaced 360 video XMP specification with a new open standard.
 - Added recommendation for specifying camera make/model in 360 video MP4s.
 
API level 2
Released July 2016
Key changes
- Deprecated 
sessionIdand deprecated/modified related commands. API level 2 is designed for one client connection and camera manufacturers should make sure that only one client at any time is connected (for example via limiting only one wifi connection).- Deprecated commands
startSession/updateSession/closeSession. - Deprecated 
sessionIdfrom input of commandstakePicture/getOptions/setOptions. 
 - Deprecated commands
 - Deprecated commands
getImage/getMetadata.- The absolute URL of a file is used to download directly from the HTTP server of the camera.
 
 - Added/modified commands and
options for video
capture, interval image capture and live preview.
- Added commands
startCapture/stopCapture/getLivePreview/processPicture/reset. - Renamed
listImagestolistFilesand modified inputs/outputs to handle video types as well as image types. - Added options 
previewFormat,previewFormatSupport,captureInterval,captureIntervalSupport,captureNumber,captureNumberSupport,remainingVideoSeconds,pollingDelay,delayProcessing,delayProcessingSupport, andclientVersion. - Modified options 
captureModeSupport,isoSupport,shutterSpeedSupport,fileFormatSupport,hdr,hdrSupport,exposureBracket, andexposureBracketSupport. 
 - Added commands
 - Added 360 video XMP specification.
 - Added 
apiLevelfield to/osc/infooutput.- apiLevel: Field was added in API level 2. It is considered to be API level 1 by default when this field is missing. It is developers’ responsibility to retrieve this information and implement differently based on the value.
 
 
Backward compatibility
- Camera manufacturers: If you have been supporting API level 1, it is highly recommended that you support both API level 1 and API level 2 as an intermediate solution for a few months before the final update and provide a firmware update for cameras running API level 1, otherwise, clients supporting only API level 1 won't work with your cameras.
 - App developers: Be aware these changes affect your previously-published app and it is your responsibility to make corresponding changes to either handle both versions and reminds camera owners to update their firmware.