inspect and inject immersive metadata
SpatialTag inspects and injects the MP4/MOV metadata that platforms need for 360°, VR180, and spatial audio.
Platforms like YouTube, Facebook, and VR headsets rely on special metadata boxes inside MP4/MOV files to know that a video is spherical and how its audio should be spatially rendered. This project lets you inspect and inject that metadata so your immersive content plays back correctly everywhere.
- Reads existing spherical-video (V1 XML and V2
sv3d/st3d) and spatial-audio (SA3D) metadata from any MP4/MOV file. - Writes the correct MPEG-4 boxes so players recognise a file as 360° equirectangular, VR180 side-by-side, or ambisonics-enabled.
- Works as a SpatialTag CLI (
spatialtag), a desktop GUI (Tkinter), a browser demo, or a Docker web UI (Flask).
Site: nandan-18.github.io/spatialtag (browser demo, docs)
SpatialTag CLI command: spatialtag
git clone https://github.com/Nandan-18/spatialtag.git
cd spatialtag
python3 -m pip install -e .
spatialtag video.mp4 # inspect metadata
spatialtag -I --vr180 video.mp4 # inject in placePre-built CLI binaries and HRIR assets are on GitHub Releases if you prefer not to install Python.
| Path | Description |
|---|---|
| web/ | Site source, browser demo, specifications |
| spatial/ | Core library, CLI, and desktop GUI |
| docker/ | Flask web UI (Docker) |
| audio/ | HRIR reference assets for DAW monitoring |
| tests/ | Unit tests and media fixtures |
| tools/ | PyInstaller helper for the desktop GUI |
python3 -m pip install -e ".[dev]"
python3 tests/test.py -v
python3 -m ruff check spatial tests/test.py dockercd web
pnpm install
pnpm devUser-facing docs live in web/guide/ and are published to the
site on push to main.