-
Notifications
You must be signed in to change notification settings - Fork 1
Pr/04 frontend metadata #69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
+504,290
−382
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Uses ffmpeg and supports range requests
- pytorch is working again
- Supported via config - Samples every 1 second
- Object detection no longer run per frame, instead per interval like face detection
- No global search yet - Jumps supported in single video view (transcript, scenes, objects, ocr, places, faces) - Shows task status - Renders boxes on faces and objects
- Tasks now have a language property that is propagated down into the artifact as well - This enables us to run multiple language models and tasks per language against a video (ocr, transcription) - Add task status endpoint for a given video - Fix backend dockerfile, it was built like the ml-service for some reason - Fix typo in faces file: yolov8n-face.pt
- Show video task status - Show transcript, ocr, with selection profile options (latest per language), specific runs - Add ocr overlay - Add faces tab - Add re-render when confidence changes in jump navigator
- The accuracy still seems a bit off, but, we have usable data now anyway
…stry - Create MetadataV1 Pydantic schema with all metadata fields (GPS, camera, file, temporal, image) - Register 'video.metadata' artifact type with SchemaRegistry - Add comprehensive schema validation tests (19 tests covering all fields and edge cases) - Update schema initialization to register MetadataV1 during startup - Add new task 2.5 for capturing file creation timestamp with fallback chain All tests passing. Ready for metadata extraction implementation.
- Add video_locations projection table for GPS normalization - Add file_created_at column to videos table for temporal queries - Implement MetadataExtractor using pyexiftool for standardized field extraction - Add metadata_extraction task support to ML service task handler - Extract Composite fields with proper type conversion - Set producer=pyexiftool, model_profile=balanced for metadata artifacts Validates: Requirements 1.1-1.5, 2.1-2.6, 3.1-3.5, 4.1-4.4, 6.1-6.4
- Add metadata_extraction to TASK_REGISTRY with LanguageMode.NONE - Mark as language-agnostic task type (no language parameter required) - Add metadata_extraction worker configuration to content_creator.json - 2 concurrent workers, priority 1, CPU resource - Update task status for task 4 to completed Validates Requirements 4.1, 4.3
- Add 'metadata_extraction' to ACTIVE_TASK_TYPES in VideoDiscoveryService - Add empty default configuration for metadata_extraction task - Metadata extraction tasks will now be created and enqueued on video discovery - Tasks are created with language=NULL (language-agnostic) - Producer and model_profile metadata come from ML worker result, not task config Validates Requirements 4.1, 4.2, 4.3, 4.4
- Add MetadataV1 schema to ARTIFACT_SCHEMA_MAP - Map metadata_extraction task type to video.metadata artifact type - Handle metadata as single dict (wrap as list for uniform processing) - Extract timing: span_start_ms=0, span_end_ms=duration_ms - Add comprehensive unit tests for metadata transformation Validates Requirements 2.1, 2.4, 2.5
- Add video.metadata artifact type to sync_artifact dispatcher - Implement _sync_video_metadata method for GPS projection - Extract and validate GPS coordinates from metadata payload - Create video_locations entries for geo-spatial queries - Handle missing GPS gracefully (skip projection) - Support both PostgreSQL and SQLite - Add comprehensive test coverage (6 new tests) Validates Requirements 2.1, 2.2, 2.5, 2.6
…oding
- Add file_created_at to Video model with EXIF/filesystem fallback
- Create reverse geocoding service for GPS coordinate normalization
- Update video_locations projection to include country/state/city
- Add /api/v1/videos/{videoId}/location endpoint
- Fix metadata extraction to use ExifToolHelper API
- Update ml-service to populate file_created_at and create metadata artifacts
- Update video_locations migration to use video_id unique constraint
- Add geopy dependency to backend and ml-service
- Update Dockerfile.ml-service to install pre-built exiftool binary
- Add MetadataViewer component with location display (coordinates, altitude, reverse-geocoded location) - Add metadata tab to VideoPlayer with video name display in header - Add requeue menu to failed tasks in TaskStatusViewer - Remove video.metadata from jump navigation dropdown - Fix projection sync test to use video_id column - Update task spec documentation
405130c to
340921e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add React frontend with video player, gallery, and artifact viewers. Implement metadata extraction pipeline for video file timestamps and duration.
Changes
Testing
Related Issues
N/A
Screenshots (if applicable)
N/A
Detailed Changes
Frontend
VideoPlayercomponent with timeline scrubbing and playback controlsVideoGallerycomponent for browsing videosOCRViewer/OCROverlay- text detection displayTranscriptViewer- speech transcription with timestampsObjectDetectionViewer/ObjectDetectionOverlay- YOLO detectionsSceneDetectionViewer- scene boundary displayPlaceDetectionViewer- location detection displayTaskStatusViewerfor real-time task progress monitoringMetadataViewerfor video metadata displayML Service
file_created_attimestamp from video filesdurationfrom video containermetadata_extractiontask type to task registryBackend
file_created_atfield to video domain model