# camera.startCapture

Starts video capture or interval image capture depending on value of
`captureMode` in [Options](https://developers.google.com/streetview/open-spherical-camera/reference/options).
**This command was added in API level 2.**

## Parameters

- This command has no parameter in request body. Whether it is interval image capture or video capture is determined by `captureMode` option. For interval capture, whether it is open ended capture or not depends on whether `captureNumber` is equal to or larger than 0. `captureMode`, `captureInterval` and `captureNumber` need to be set prior to interval capture. Only `captureMode` needs to be set to "video" prior to video capture, which can only be stopped by [camera.stopCapture](https://developers.google.com/streetview/open-spherical-camera/reference/camera/stopcapture) command.

## Results

- Open-ended capture (when captureMode == "video" or captureNumber == 0)
  - No results.
- Non-open-ended interval capture:
  - **fileUrls:** A list of absolute URLs, pointing to image files for interval capture. Please note this command doesn't return `fileUrls` immediately since the capture takes `captureNumber` to complete. The progress of the command can be obtained by polling the camera periodically. For example, poll after an estimated duration (`time = captureInterval * (captureNumber - 1)`) using the [/osc/commands/status](https://developers.google.com/streetview/open-spherical-camera/guides/osc/commands/status) API and `fileUrls` is the result returned when the command finishes. If the command doesn't finish successfully (e.g. only 3 out of images were taken before the camera runs out of battery) or the camera is disconnected from the client phone in the middle, but the command does finish successfully, the client should be able to obtain the images using the `https://developers.google.com/streetview/open-spherical-camera/reference/camera/listfiles` later when a new connection is established between the client and the camera.

## Errors

- **disabledCommand:** Command is currently disabled; for example, the camera is in the middle of a video capture or an interval capture.
- **invalidParameterName:** The parameter name is unrecognized; for example, `sessionId` is not recognized.

| ## Command I/O ||
|---|---|
| **Command Input** | ``` none ``` |
| **Command Output** | ``` { "results": { "fileUrls":[ "url1", "url2", "url3", ... "urln" ] } } ``` |
| **Command Output (Error)** | ``` { "error": { "code": "disabledCommand", "message": "Command is currently disabled." } } ``` |