This is a modern Flask web application for injecting spatial media metadata, running inside Docker. It replaces the legacy Tkinter desktop application with a web browser interface.
- Web Interface: A clean, dark-mode web UI supporting drag-and-drop for multiple files.
- Progress Bar: Visual indicator for file upload status.
- Backend Refactor: Logic ported from
gui.pyto a Python Flask application.- Persistence: Fixed storage path to persist uploads and processed files.
- Docker Integration: Builds directly from the local source code.
- Headerless: No dependency on X11 or GUI libraries in the container.
Ensure you have Docker installed.
Run this command from the root of the repository (the parent folder containing both spatialmedia and docker directories):
docker build -t spatial-media-web -f docker/Dockerfile .We use the --name flag to assign a consistent name to the container, and a volume map to persist data locally.
PowerShell example:
# Create a local folder for data (if it doesn't exist)
mkdir data -ErrorAction SilentlyContinue
# Run with volume mapping and container name
docker run -p 5000:5000 --name spatial-media-metadata-injector -v ${PWD}\data:/app/uploads spatial-media-webBash/Mac/Linux example:
# Run with volume mapping and container name
docker run -p 5000:5000 --name spatial-media-metadata-injector -v $(pwd)/data:/app/uploads spatial-media-webOpen your browser and navigate to: http://localhost:5000
- Drag and drop your .mp4 or .mov files.
- Select the appropriate metadata options (360, 3D, Spatial Audio).
- Click Inject Metadata.
- Download the processed files via the web UI or find them in your local
datafolder.
Ensure you are using the volume mapping -v ...:/app/uploads as shown above. This ensures files are saved to a location that persists across the application lifecycle and is accessible to all worker threads.
If you try to run the command again and get an error that the name spatial-media-metadata-injector is already in use, you need to remove the old container first:
docker rm -f spatial-media-metadata-injector