Overview
Introduction
The DreamLake Python SDK (dreamlake-py) provides a CLI for uploading, downloading, and managing multimodal experiment data.
Installation
pip install dreamlake
# or with uv
uv pip install dreamlakeQuick Example
# Login once
dreamlake login --url http://localhost:10334
# Upload a video — type auto-detected, folder hierarchy auto-created
dreamlake upload ./run01.mp4 --episode alice@robotics:run-042 --to /camera/frontFeatures
- Unified upload — auto-detects file type (video, audio, labels, text tracks) by extension
- Episode targeting —
[namespace@]space[:episode]syntax for organizing uploads - Path hierarchy —
--to /camera/frontplaces files in a browseable folder tree under the episode - Multipart upload — large files are chunked (10 MB parts, 4 parallel workers) and uploaded via BSS
- Resumable — interrupted uploads resume from where they left off
- HLS processing — Lambda is auto-triggered after upload for streaming-ready segmentation
- Download — fetch files by path via presigned S3 URLs
Supported File Types
| Extension | Type | Lambda Processing |
|---|---|---|
.mp4, .mov, .avi, .mkv, .webm | Video | HLS split (TS segments) |
.wav, .mp3, .flac, .aac, .ogg | Audio | HLS split (AAC segments) |
.vtt, .srt | Text Track | Time-windowed VTT chunks |
.jsonl, .csv (labels) | Label Track | Time-windowed JSONL chunks |
Environment Variables
| Variable | Description | Default |
|---|---|---|
DREAMLAKE_REMOTE | DreamLake Server URL | From login |
DREAMLAKE_BSS_URL | BSS URL | From login |
DREAMLAKE_API_KEY | API token (alternative to login) | — |
Debug Mode
Add --debug before any command to use local dev servers:
dreamlake --debug upload ./run01.mp4 --episode alice@robotics:run-042 --to /camera/frontThis sets DREAMLAKE_REMOTE=http://localhost:10334 and DREAMLAKE_BSS_URL=http://localhost:10234.