# MAVSDK-Python gRPC examples: Camera modes and capture

Select camera photo/video modes and issue capture/recording commands. Inspect exact upstream setup and terms before use.

ID: `mavsdk-python-examples-camera-py`

Record version: `source-3a5f6b13bad109ff0490f4c00868d811baff497f35bb29def2f57842afb07726`

Hub commit: `bee2df6672c145beeff064d2a203cebdbd3c5bf3`

## Access

Fetch the pinned repository, verify this source checksum, and use upstream installation and invocation. This record does not install or execute code.

Optional inert file retrieval: `python /PATH_TO_SKILL/scripts/rsh.py fetch-source mavsdk-python-examples-camera-py --expected-source-revision 8fa280f1d7473524a32d061e60b7bb346ff65264 --expected-source-sha256 3a5f6b13bad109ff0490f4c00868d811baff497f35bb29def2f57842afb07726 --project ./experiment --json`. This verifies one file, preserves provenance and never installs or runs it. See [source-file retrieval](https://hub.superfastrobotics.com/source-files.md).

Hub preparation adapter: **false**. Runtime verification: **not_run**.

Upstream setup: https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/README.md

## Source and license

- Repository: https://github.com/mavlink/MAVSDK-Python
- Pinned source: https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/examples/camera.py
- Revision: `8fa280f1d7473524a32d061e60b7bb346ff65264`
- Path: `examples/camera.py`
- Source SHA256: `3a5f6b13bad109ff0490f4c00868d811baff497f35bb29def2f57842afb07726`
- Source bytes: 2173
- Original authors: MAVSDK Development Team, Jonas Vautherin, Julian Oes
- License: [BSD-3-Clause](https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/LICENSE.txt)
- License scope: Selected first-party Python example source under the MAVSDK Development Team BSD-3-Clause notice. Retain copyright, conditions and disclaimers. This source identity does not establish terms for separately obtained server binaries, autopilot firmware, hardware, payloads, maps, dependencies or services.

License SHA256: `2e373f427edf94ffd33fdda4d055989605257c6880026496b06d04890394bd12`

## Artifact

```json
{
  "kind": "workflow",
  "format": "python",
  "workflow_role": "camera-control"
}
```

## Requirements

```json
{
  "python": "Python >=3.7 as declared by pinned README/setup.py; support of separately declared dependencies remains unverified.",
  "packages": [
    "mavsdk-grpc (import mavsdk_grpc)",
    "protobuf>=6.32.1",
    "grpcio>=1.64.1"
  ],
  "display": "Configured MAVLink autopilot connection and working mavsdk_server required. Server version v4.0.5 is a binary declaration, not an autopilot firmware or Python distribution version. Airframe, firmware, payload and executable environment combinations remain unknown.",
  "execution_domain": "hardware-or-upstream-simulation",
  "source_imports": [
    "asyncio",
    "logging",
    "mavsdk_grpc",
    "mavsdk_grpc.camera"
  ],
  "notes": "Per-file package floors are declarations, not a tested combined runtime environment.",
  "declared_requirements": {
    "python": {
      "value": ">=3.7",
      "source": "https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/setup.py"
    },
    "dependency_file": {
      "path": "requirements.txt",
      "sha256": "157550c310aedd7a24e36e99e9b94167bd7daad5ca8afcbbd8b233b8c215d587",
      "bytes": 32,
      "url": "https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/requirements.txt",
      "literal_lines": [
        "protobuf>=6.32.1",
        "grpcio>=1.64.1"
      ]
    },
    "firmware": "unknown",
    "external_assets": "Server binaries/autopilot firmware/payloads for MAVSDK; robot firmware/features, camera data, maps/missions for Spot. Separate upstream terms and access requirements remain applicable.",
    "server_binary_version": {
      "value": "v4.0.5",
      "source": "https://github.com/mavlink/MAVSDK-Python/blob/8fa280f1d7473524a32d061e60b7bb346ff65264/MAVSDK_SERVER_VERSION",
      "meaning": "Server binary only, not Python distribution or autopilot firmware."
    },
    "vehicle_model": "unknown",
    "install_side_effects": "Upstream build downloads server binary; connect() can launch it. Neither performed."
  }
}
```

## Invocation

```json
{
  "entrypoint": "python examples/camera.py",
  "notes": "Use the pinned gRPC-wrapper setup: current sources import mavsdk_grpc, not the unrelated native mavsdk v4 binding. Upstream build may download mavsdk_server and connect() may launch it. Review selected connection addresses and motion/mission values. No installation, server, simulator or vehicle was run or contacted."
}
```

## Compatibility

```json
[]
```

Missing environment fields remain unknown. Source discovery labels do not establish robot compatibility.

## Evidence

Level: **source_reviewed**. Runtime verification: **not_run**.

Verified exact source, applicable license and author/setup document bytes at a full Git commit; parsed the Python AST and reviewed this guarded operational entrypoint and its explicit license notices. No upstream code, installation, robot command, dataset, mesh or checkpoint was executed or loaded.

Source review and contributor reports do not establish task completion. Preserve upstream attribution and licenses.
