diff --git a/internal/api/handlers.go b/internal/api/handlers.go index dd9769d..885ac01 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -1417,6 +1417,16 @@ func (g *Gateway) UpdateMetadataStreamingInfo(fileHash string) error { return nil } +// RefreshAllMetadataStreamingInfo updates streaming info for all files in metadataStore +func (g *Gateway) RefreshAllMetadataStreamingInfo() error { + for fileHash := range metadataStore { + if err := g.UpdateMetadataStreamingInfo(fileHash); err != nil { + log.Printf("Warning: Failed to update streaming info for %s: %v", fileHash, err) + } + } + return nil +} + func (g *Gateway) getMetadata(fileHash string) (*FileMetadata, error) { // Get metadata from storage backend dbMetadata, err := g.storage.GetFileMetadata(fileHash) @@ -3175,6 +3185,14 @@ func RegisterRoutes(r *mux.Router, cfg *config.Config, storage *storage.Backend) // Set up transcoding callback to update metadata store if gateway.transcodingManager != nil { gateway.transcodingManager.SetUpdateMetadataCallback(gateway.UpdateMetadataStreamingInfo) + + // Refresh existing files to add streaming info for already transcoded files + go func() { + log.Printf("DEBUG: Refreshing streaming info for existing files in metadataStore") + if err := gateway.RefreshAllMetadataStreamingInfo(); err != nil { + log.Printf("Warning: Failed to refresh metadata streaming info: %v", err) + } + }() } // Initialize tracker if enabled