openbot-data 0.0.1.post1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. {openbot_data-0.0.1.post1 → openbot_data-0.0.2}/.gitignore +5 -0
  2. openbot_data-0.0.2/CHANGELOG.md +38 -0
  3. openbot_data-0.0.2/PKG-INFO +245 -0
  4. openbot_data-0.0.2/README.md +206 -0
  5. openbot_data-0.0.2/VERSION +1 -0
  6. openbot_data-0.0.2/docs/README.md +25 -0
  7. openbot_data-0.0.2/docs/api-reference.md +203 -0
  8. openbot_data-0.0.2/docs/audit-findings.md +32 -0
  9. openbot_data-0.0.2/docs/examples/audit.json +11 -0
  10. openbot_data-0.0.2/docs/examples/manifest.json +59 -0
  11. openbot_data-0.0.2/docs/getting-started.md +161 -0
  12. openbot_data-0.0.2/docs/version-0.0.2.md +166 -0
  13. openbot_data-0.0.2/examples/local_preflight.py +98 -0
  14. openbot_data-0.0.2/openbot_data/__init__.py +51 -0
  15. openbot_data-0.0.2/openbot_data/catalog.py +92 -0
  16. openbot_data-0.0.2/openbot_data/cli.py +185 -0
  17. openbot_data-0.0.2/openbot_data/errors.py +13 -0
  18. openbot_data-0.0.2/openbot_data/extract.py +505 -0
  19. openbot_data-0.0.2/openbot_data/models.py +108 -0
  20. openbot_data-0.0.2/openbot_data/preflight.py +859 -0
  21. openbot_data-0.0.2/openbot_data/py.typed +1 -0
  22. openbot_data-0.0.2/openbot_data/schema.py +20 -0
  23. openbot_data-0.0.2/openbot_data/schemas/__init__.py +1 -0
  24. openbot_data-0.0.2/openbot_data/schemas/dataset-audit-v1.schema.json +37 -0
  25. openbot_data-0.0.2/openbot_data/schemas/dataset-manifest-v1.schema.json +149 -0
  26. openbot_data-0.0.2/openbot_data/serialization.py +18 -0
  27. {openbot_data-0.0.1.post1 → openbot_data-0.0.2}/openbot_data/video.py +26 -13
  28. {openbot_data-0.0.1.post1 → openbot_data-0.0.2}/pyproject.toml +39 -6
  29. openbot_data-0.0.2/scripts/check_version.py +61 -0
  30. openbot_data-0.0.2/scripts/test_matrix.sh +7 -0
  31. openbot_data-0.0.2/tests/fixtures/lerobot-v2/meta/episodes.jsonl +1 -0
  32. openbot_data-0.0.2/tests/fixtures/lerobot-v2/meta/info.json +9 -0
  33. openbot_data-0.0.2/tests/fixtures/lerobot-v3/meta/episodes/chunk-000/file-000.jsonl +1 -0
  34. openbot_data-0.0.2/tests/fixtures/lerobot-v3/meta/info.json +10 -0
  35. openbot_data-0.0.2/tests/test_acceptance_v002.py +518 -0
  36. openbot_data-0.0.2/tests/test_openbot_data.py +263 -0
  37. openbot_data-0.0.2/tests/test_preflight.py +180 -0
  38. openbot_data-0.0.1.post1/PKG-INFO +0 -312
  39. openbot_data-0.0.1.post1/README.md +0 -280
  40. openbot_data-0.0.1.post1/openbot_data/__init__.py +0 -17
  41. openbot_data-0.0.1.post1/openbot_data/cli.py +0 -85
  42. openbot_data-0.0.1.post1/openbot_data/extract.py +0 -214
  43. openbot_data-0.0.1.post1/tests/test_openbot_data.py +0 -102
  44. {openbot_data-0.0.1.post1 → openbot_data-0.0.2}/LICENSE +0 -0
@@ -11,3 +11,8 @@ venv/
11
11
  build/
12
12
  dist/
13
13
  *.egg-info/
14
+
15
+ node_modules/
16
+ .wrangler/
17
+ coverage/
18
+ .coverage
@@ -0,0 +1,38 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.0.2
6
+
7
+ ### Added
8
+ - Single-source package versioning with CI and release-tag validation.
9
+ - Versioned, reproducible `openbot.dataset_manifest.v1` output with relative paths,
10
+ dataset fingerprints, and optional SHA-256 checksums.
11
+ - Read-only local LeRobot v2.1/v3 discovery for episodes and video streams.
12
+ - Deterministic dataset audit findings, duplicate detection, and `audit` CLI command.
13
+ - Runnable local preflight demo, developer documentation, API/CLI reference, and
14
+ shipped LeRobot acceptance fixtures.
15
+ - Acceptance scenarios for every documented finding code and a local Python
16
+ 3.9–3.12 test-matrix command.
17
+
18
+ ### Changed
19
+ - `inspect` now supports `--format auto|video|lerobot` and optional checksums.
20
+ - Unreadable media now continues through the specific FPS, duration, dimensions,
21
+ and preview-decode audit rules instead of stopping at the generic finding.
22
+
23
+ ## 0.0.1.post2
24
+
25
+ ### Added
26
+ - `export_catalog()` Python API and `openbot-data catalog` CLI command for JSON/CSV catalog export.
27
+ - SEO-optimized README and `pyproject.toml` keywords (`robot data`, `ego data`, `egocentric data`, `embodied AI`, etc.).
28
+ - GitHub Actions CI workflow for Python 3.9–3.12.
29
+ - This changelog.
30
+
31
+ ## 0.0.1.post1
32
+
33
+ ### Added
34
+ - Initial preview release.
35
+ - Video directory scanning and metadata extraction.
36
+ - Preview frame extraction.
37
+ - Manifest and report generation.
38
+ - `openbot-data` CLI with `scan`, `inspect`, and `version` commands.
@@ -0,0 +1,245 @@
1
+ Metadata-Version: 2.4
2
+ Name: openbot-data
3
+ Version: 0.0.2
4
+ Summary: Inspect robot video datasets and generate manifests, previews, and catalogs.
5
+ Project-URL: Homepage, https://openbot.ai/data
6
+ Project-URL: Documentation, https://openbot.ai/api/docs#data-recipe
7
+ Project-URL: Repository, https://github.com/openbotai/openbot-data
8
+ Project-URL: Issues, https://github.com/openbotai/openbot-data/issues
9
+ Author-email: OpenBot <hello@openbot.ai>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: data-cleaning,dataset,dataset-catalog,ego data,egocentric data,embodied AI,embodied-ai,failure-analysis,robot data,robot dataset,robot learning,robot-video,robotics,teleoperation data,wrist-camera
13
+ Classifier: Development Status :: 2 - Pre-Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
24
+ Requires-Python: >=3.9
25
+ Requires-Dist: numpy>=1.24.0
26
+ Requires-Dist: opencv-python>=4.8.0
27
+ Requires-Dist: tqdm>=4.65.0
28
+ Requires-Dist: typer>=0.9.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.0.0; extra == 'dev'
31
+ Requires-Dist: jsonschema>=4.18.0; extra == 'dev'
32
+ Requires-Dist: mypy<1.19,>=1.11.0; extra == 'dev'
33
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
34
+ Requires-Dist: ruff>=0.6.0; extra == 'dev'
35
+ Requires-Dist: twine>=6.2.0; extra == 'dev'
36
+ Provides-Extra: lerobot
37
+ Requires-Dist: pyarrow>=17.0.0; extra == 'lerobot'
38
+ Description-Content-Type: text/markdown
39
+
40
+ # OpenBot Data
41
+
42
+ > Inspect, catalog, and prepare robot video data for embodied AI and robot learning.
43
+
44
+ [Library documentation](docs/README.md) · [API reference](docs/api-reference.md) ·
45
+ [Data product](https://openbot.ai/data) · [Source repository](https://github.com/openbotai/openbot-data)
46
+
47
+ OpenBot Data is an early Python toolkit for working with **robot data** — especially
48
+ **egocentric video** and **teleoperation data** collected from wrist cameras,
49
+ head-mounted cameras, and robot demonstrators.
50
+
51
+ Use it to scan video directories, extract preview frames, build dataset manifests,
52
+ and export a searchable **robot dataset catalog** (JSON/CSV) before training or
53
+ evaluation.
54
+
55
+ ## Install
56
+
57
+ ```bash
58
+ pip install openbot-data
59
+ ```
60
+
61
+ Requires Python 3.9+.
62
+
63
+ ## Runnable demo
64
+
65
+ Clone the repository, install the package, and run the complete local preflight
66
+ against a video directory or local LeRobot repository:
67
+
68
+ ```bash
69
+ pip install -e .
70
+ python examples/local_preflight.py ./robot_videos --out ./openbot-preflight --integrity sample
71
+ ```
72
+
73
+ The demo uses the public Python API and writes
74
+ `inspection/metadata/manifest.json`, `inspection/metadata/report.json`, and
75
+ `audit.json`. Add `--format lerobot` for a local LeRobot v2.1/v3 repository,
76
+ `--integrity full` to decode every frame, or `--no-checksum` to skip SHA-256
77
+ duplicate detection. The demo discovers and hashes the dataset once, then shares
78
+ one immutable `DatasetSnapshot` across both renderers.
79
+
80
+ ## What it does
81
+
82
+ - **Scan robot video directories** — recursively find `.mp4`, `.mov`, `.avi`, `.mkv`, `.webm` files.
83
+ - **Read video metadata** — duration, fps, resolution, frame count, file size, validity.
84
+ - **Extract preview frames** — uniformly sample frames for quick human inspection.
85
+ - **Generate manifests** — `manifest.json` with per-video metadata and preview paths.
86
+ - **Generate quality reports** — `report.json` with aggregate duration, size, and resolutions.
87
+ - **Export dataset catalogs** — JSON or CSV for dataset registries, documentation, and SEO-friendly catalog pages.
88
+ - **Discover local LeRobot data** — read-only episode and video-stream discovery for v2.1/v3 layouts.
89
+ - **Audit before training or upload** — stable error/warning codes without an uncalibrated quality score.
90
+
91
+ ## CLI
92
+
93
+ ### Scan videos
94
+
95
+ ```bash
96
+ openbot-data scan ./robot_videos
97
+ openbot-data scan ./robot_videos --output scan.json
98
+ ```
99
+
100
+ ### Inspect a dataset
101
+
102
+ ```bash
103
+ openbot-data inspect ./robot_videos --out ./openbot_dataset
104
+ openbot-data inspect ./lerobot_dataset --format lerobot --out ./openbot_dataset
105
+ openbot-data audit ./robot_videos --out ./audit.json --fail-on error
106
+ ```
107
+
108
+ Output structure:
109
+
110
+ ```text
111
+ openbot_dataset/
112
+ previews/
113
+ metadata/
114
+ manifest.json
115
+ report.json
116
+ ```
117
+
118
+ ### Export a robot dataset catalog
119
+
120
+ ```bash
121
+ # JSON catalog for dataset registries and documentation
122
+ openbot-data catalog ./robot_videos --out ./catalog.json --format json
123
+
124
+ # CSV catalog for spreadsheets or Hugging Face dataset cards
125
+ openbot-data catalog ./robot_videos --out ./catalog.csv --format csv
126
+ ```
127
+
128
+ The catalog is designed to be checked into GitHub or linked from a dataset registry
129
+ page such as [OpenBot.ai Datasets](https://openbot.ai/datasets).
130
+
131
+ ## Python API
132
+
133
+ ```python
134
+ from openbot_data import (
135
+ audit_dataset,
136
+ export_catalog,
137
+ inspect_dataset,
138
+ prepare_dataset,
139
+ read_lerobot,
140
+ scan_directory,
141
+ schema_path,
142
+ )
143
+
144
+ # Scan a directory
145
+ scan = scan_directory("./robot_videos")
146
+ print(scan["valid_videos"])
147
+
148
+ # Inspect and extract previews
149
+ result = inspect_dataset(
150
+ video_dir="./robot_videos",
151
+ output_dir="./openbot_dataset",
152
+ )
153
+ print(result["manifest_path"])
154
+ print(result["report_path"])
155
+
156
+ # Export a catalog for documentation / SEO
157
+ export_catalog(
158
+ video_dir="./robot_videos",
159
+ output_path="./catalog.json",
160
+ fmt="json",
161
+ )
162
+
163
+ # Discover/hash once and reuse the immutable snapshot across renderers
164
+ snapshot = prepare_dataset("./robot_videos", checksum="sha256", integrity="sample")
165
+ inspection = inspect_dataset("./robot_videos", "./inspection", snapshot=snapshot)
166
+ audit = audit_dataset("./robot_videos", snapshot=snapshot)
167
+
168
+ # Discover episodes and camera streams in a local LeRobot repository
169
+ lerobot = read_lerobot("./lerobot_dataset")
170
+
171
+ # Packaged JSON Schemas are stable independently of the package version
172
+ with schema_path("manifest") as manifest_schema:
173
+ print(manifest_schema)
174
+ ```
175
+
176
+ ## Use cases
177
+
178
+ - Prepare **teleoperation data** collected from ALOHA, Mobile ALOHA, VR, or SpaceMouse setups.
179
+ - Inspect **egocentric video datasets** before converting to LeRobot, RLDS, or HDF5.
180
+ - Build a **robot dataset catalog** that links back to your project website or Hugging Face collection.
181
+ - Validate video integrity before running robot policy training or VLA pre-training.
182
+
183
+ ## Development
184
+
185
+ ```bash
186
+ pip install -e ".[dev]"
187
+ python scripts/check_version.py
188
+ pytest
189
+ scripts/test_matrix.sh
190
+ python -m build
191
+ python -m twine check dist/*
192
+ ```
193
+
194
+ The local matrix script requires [`uv`](https://docs.astral.sh/uv/) and tests
195
+ Python 3.9–3.12 without requiring a repository CI workflow.
196
+
197
+ `VERSION` is the package version source of truth. To release, update `VERSION`
198
+ and `CHANGELOG.md`, verify locally, then publish a GitHub Release whose tag is
199
+ `v<version>`. The release workflow validates the tag before publishing to PyPI.
200
+
201
+ ## Status
202
+
203
+ OpenBot Data is an early local Python toolkit. Hosted upload, annotation, review,
204
+ export, billing, Workers, and Container infrastructure belong to the main
205
+ [OpenBot](https://github.com/openbotai/OpenBot) product repository. Use the
206
+ separate [`openbot-sdk`](https://github.com/openbotai/openbot-sdk) package to call
207
+ the hosted API.
208
+
209
+ ## Roadmap
210
+
211
+ - [x] Video scanning and metadata extraction
212
+ - [x] Preview frame extraction
213
+ - [x] Manifest and report generation
214
+ - [x] JSON/CSV catalog export
215
+ - [x] [`0.0.2`: local dataset preflight](docs/version-0.0.2.md), including a
216
+ versioned manifest, deterministic audit findings, and local LeRobot discovery
217
+ - [ ] Later: RLDS / HDF5 ingestion helpers
218
+ - [ ] Later: calibrated quality evaluation after a labeled validation set exists
219
+
220
+ Audit codes are documented in [`docs/audit-findings.md`](docs/audit-findings.md).
221
+ Canonical manifests use explicit `path_base`/`path_bases` fields; they never
222
+ serialize private source paths. Symlinks are skipped by default, and even when
223
+ `follow_symlinks=True` a target outside the dataset root is rejected.
224
+
225
+ ## License
226
+
227
+ MIT
228
+
229
+ ## Citation
230
+
231
+ If you use OpenBot Data in research or production, cite the project repository:
232
+
233
+ ```bibtex
234
+ @software{openbot_data,
235
+ title = {OpenBot Data},
236
+ author = {OpenBot},
237
+ year = {2026},
238
+ url = {https://github.com/openbotai/openbot-data}
239
+ }
240
+ ```
241
+
242
+ ## Related
243
+
244
+ - [OpenBot.ai](https://openbot.ai) — Robot dataset catalog and policy evaluation platform.
245
+ - [OpenBot.ai Datasets](https://openbot.ai/datasets) — Searchable index of egocentric and robot datasets.
@@ -0,0 +1,206 @@
1
+ # OpenBot Data
2
+
3
+ > Inspect, catalog, and prepare robot video data for embodied AI and robot learning.
4
+
5
+ [Library documentation](docs/README.md) · [API reference](docs/api-reference.md) ·
6
+ [Data product](https://openbot.ai/data) · [Source repository](https://github.com/openbotai/openbot-data)
7
+
8
+ OpenBot Data is an early Python toolkit for working with **robot data** — especially
9
+ **egocentric video** and **teleoperation data** collected from wrist cameras,
10
+ head-mounted cameras, and robot demonstrators.
11
+
12
+ Use it to scan video directories, extract preview frames, build dataset manifests,
13
+ and export a searchable **robot dataset catalog** (JSON/CSV) before training or
14
+ evaluation.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ pip install openbot-data
20
+ ```
21
+
22
+ Requires Python 3.9+.
23
+
24
+ ## Runnable demo
25
+
26
+ Clone the repository, install the package, and run the complete local preflight
27
+ against a video directory or local LeRobot repository:
28
+
29
+ ```bash
30
+ pip install -e .
31
+ python examples/local_preflight.py ./robot_videos --out ./openbot-preflight --integrity sample
32
+ ```
33
+
34
+ The demo uses the public Python API and writes
35
+ `inspection/metadata/manifest.json`, `inspection/metadata/report.json`, and
36
+ `audit.json`. Add `--format lerobot` for a local LeRobot v2.1/v3 repository,
37
+ `--integrity full` to decode every frame, or `--no-checksum` to skip SHA-256
38
+ duplicate detection. The demo discovers and hashes the dataset once, then shares
39
+ one immutable `DatasetSnapshot` across both renderers.
40
+
41
+ ## What it does
42
+
43
+ - **Scan robot video directories** — recursively find `.mp4`, `.mov`, `.avi`, `.mkv`, `.webm` files.
44
+ - **Read video metadata** — duration, fps, resolution, frame count, file size, validity.
45
+ - **Extract preview frames** — uniformly sample frames for quick human inspection.
46
+ - **Generate manifests** — `manifest.json` with per-video metadata and preview paths.
47
+ - **Generate quality reports** — `report.json` with aggregate duration, size, and resolutions.
48
+ - **Export dataset catalogs** — JSON or CSV for dataset registries, documentation, and SEO-friendly catalog pages.
49
+ - **Discover local LeRobot data** — read-only episode and video-stream discovery for v2.1/v3 layouts.
50
+ - **Audit before training or upload** — stable error/warning codes without an uncalibrated quality score.
51
+
52
+ ## CLI
53
+
54
+ ### Scan videos
55
+
56
+ ```bash
57
+ openbot-data scan ./robot_videos
58
+ openbot-data scan ./robot_videos --output scan.json
59
+ ```
60
+
61
+ ### Inspect a dataset
62
+
63
+ ```bash
64
+ openbot-data inspect ./robot_videos --out ./openbot_dataset
65
+ openbot-data inspect ./lerobot_dataset --format lerobot --out ./openbot_dataset
66
+ openbot-data audit ./robot_videos --out ./audit.json --fail-on error
67
+ ```
68
+
69
+ Output structure:
70
+
71
+ ```text
72
+ openbot_dataset/
73
+ previews/
74
+ metadata/
75
+ manifest.json
76
+ report.json
77
+ ```
78
+
79
+ ### Export a robot dataset catalog
80
+
81
+ ```bash
82
+ # JSON catalog for dataset registries and documentation
83
+ openbot-data catalog ./robot_videos --out ./catalog.json --format json
84
+
85
+ # CSV catalog for spreadsheets or Hugging Face dataset cards
86
+ openbot-data catalog ./robot_videos --out ./catalog.csv --format csv
87
+ ```
88
+
89
+ The catalog is designed to be checked into GitHub or linked from a dataset registry
90
+ page such as [OpenBot.ai Datasets](https://openbot.ai/datasets).
91
+
92
+ ## Python API
93
+
94
+ ```python
95
+ from openbot_data import (
96
+ audit_dataset,
97
+ export_catalog,
98
+ inspect_dataset,
99
+ prepare_dataset,
100
+ read_lerobot,
101
+ scan_directory,
102
+ schema_path,
103
+ )
104
+
105
+ # Scan a directory
106
+ scan = scan_directory("./robot_videos")
107
+ print(scan["valid_videos"])
108
+
109
+ # Inspect and extract previews
110
+ result = inspect_dataset(
111
+ video_dir="./robot_videos",
112
+ output_dir="./openbot_dataset",
113
+ )
114
+ print(result["manifest_path"])
115
+ print(result["report_path"])
116
+
117
+ # Export a catalog for documentation / SEO
118
+ export_catalog(
119
+ video_dir="./robot_videos",
120
+ output_path="./catalog.json",
121
+ fmt="json",
122
+ )
123
+
124
+ # Discover/hash once and reuse the immutable snapshot across renderers
125
+ snapshot = prepare_dataset("./robot_videos", checksum="sha256", integrity="sample")
126
+ inspection = inspect_dataset("./robot_videos", "./inspection", snapshot=snapshot)
127
+ audit = audit_dataset("./robot_videos", snapshot=snapshot)
128
+
129
+ # Discover episodes and camera streams in a local LeRobot repository
130
+ lerobot = read_lerobot("./lerobot_dataset")
131
+
132
+ # Packaged JSON Schemas are stable independently of the package version
133
+ with schema_path("manifest") as manifest_schema:
134
+ print(manifest_schema)
135
+ ```
136
+
137
+ ## Use cases
138
+
139
+ - Prepare **teleoperation data** collected from ALOHA, Mobile ALOHA, VR, or SpaceMouse setups.
140
+ - Inspect **egocentric video datasets** before converting to LeRobot, RLDS, or HDF5.
141
+ - Build a **robot dataset catalog** that links back to your project website or Hugging Face collection.
142
+ - Validate video integrity before running robot policy training or VLA pre-training.
143
+
144
+ ## Development
145
+
146
+ ```bash
147
+ pip install -e ".[dev]"
148
+ python scripts/check_version.py
149
+ pytest
150
+ scripts/test_matrix.sh
151
+ python -m build
152
+ python -m twine check dist/*
153
+ ```
154
+
155
+ The local matrix script requires [`uv`](https://docs.astral.sh/uv/) and tests
156
+ Python 3.9–3.12 without requiring a repository CI workflow.
157
+
158
+ `VERSION` is the package version source of truth. To release, update `VERSION`
159
+ and `CHANGELOG.md`, verify locally, then publish a GitHub Release whose tag is
160
+ `v<version>`. The release workflow validates the tag before publishing to PyPI.
161
+
162
+ ## Status
163
+
164
+ OpenBot Data is an early local Python toolkit. Hosted upload, annotation, review,
165
+ export, billing, Workers, and Container infrastructure belong to the main
166
+ [OpenBot](https://github.com/openbotai/OpenBot) product repository. Use the
167
+ separate [`openbot-sdk`](https://github.com/openbotai/openbot-sdk) package to call
168
+ the hosted API.
169
+
170
+ ## Roadmap
171
+
172
+ - [x] Video scanning and metadata extraction
173
+ - [x] Preview frame extraction
174
+ - [x] Manifest and report generation
175
+ - [x] JSON/CSV catalog export
176
+ - [x] [`0.0.2`: local dataset preflight](docs/version-0.0.2.md), including a
177
+ versioned manifest, deterministic audit findings, and local LeRobot discovery
178
+ - [ ] Later: RLDS / HDF5 ingestion helpers
179
+ - [ ] Later: calibrated quality evaluation after a labeled validation set exists
180
+
181
+ Audit codes are documented in [`docs/audit-findings.md`](docs/audit-findings.md).
182
+ Canonical manifests use explicit `path_base`/`path_bases` fields; they never
183
+ serialize private source paths. Symlinks are skipped by default, and even when
184
+ `follow_symlinks=True` a target outside the dataset root is rejected.
185
+
186
+ ## License
187
+
188
+ MIT
189
+
190
+ ## Citation
191
+
192
+ If you use OpenBot Data in research or production, cite the project repository:
193
+
194
+ ```bibtex
195
+ @software{openbot_data,
196
+ title = {OpenBot Data},
197
+ author = {OpenBot},
198
+ year = {2026},
199
+ url = {https://github.com/openbotai/openbot-data}
200
+ }
201
+ ```
202
+
203
+ ## Related
204
+
205
+ - [OpenBot.ai](https://openbot.ai) — Robot dataset catalog and policy evaluation platform.
206
+ - [OpenBot.ai Datasets](https://openbot.ai/datasets) — Searchable index of egocentric and robot datasets.
@@ -0,0 +1 @@
1
+ 0.0.2
@@ -0,0 +1,25 @@
1
+ # OpenBot Data documentation
2
+
3
+ OpenBot Data is a local, open-source Python library. It inspects robot-video
4
+ directories and local LeRobot v2.1/v3 repositories before training or upload. It
5
+ does not call the Hosted OpenBot API.
6
+
7
+ ## Start here
8
+
9
+ - [Getting started](getting-started.md): installation, CLI, Python workflow, and
10
+ the runnable demo.
11
+ - [API reference](api-reference.md): public Python functions, CLI commands,
12
+ parameters, return values, and failure behavior.
13
+ - [Audit finding codes](audit-findings.md): stable machine-readable validation
14
+ codes and severities.
15
+ - [0.0.2 release contract](version-0.0.2.md): scope and acceptance criteria.
16
+ - [Canonical manifest](examples/manifest.json) and
17
+ [canonical audit](examples/audit.json): complete JSON examples without local
18
+ machine paths.
19
+
20
+ ## Capability boundary
21
+
22
+ This repository owns local discovery, media inspection, preview generation,
23
+ deterministic manifests, audits, and catalog export. Uploads, API keys,
24
+ asynchronous processing, review, hosted artifacts, retention, and billing belong
25
+ to the main OpenBot service and are called through `openbot-sdk`.