diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-06 08:04:06 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-06 08:04:06 +0300 |
| commit | 885dd0912dd0e4f9df86b6676a6c467bdb367660 (patch) | |
| tree | cd77d4baf36c5817c7c3b29ace6e7ab6f5c04073 /internal/api/handlers.go | |
| parent | 532747899cb6db7e5208a454779c37092c8c6451 (diff) | |
Fix music video duration display in progress bar
Diffstat (limited to 'internal/api/handlers.go')
| -rw-r--r-- | internal/api/handlers.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/internal/api/handlers.go b/internal/api/handlers.go index 5a289a1..411607d 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -127,7 +127,7 @@ func (s *Server) serveFileResult(w http.ResponseWriter, r *http.Request, res *se } if !attachment && probe.LooksLikeMPEGTS(res.Path) { - s.serveRemuxedMP4(w, r, res, stat.Size()) + s.serveRemuxedMP4(w, r, res) return } @@ -143,10 +143,13 @@ func (s *Server) serveFileResult(w http.ResponseWriter, r *http.Request, res *se http.ServeContent(w, r, res.FileName, stat.ModTime(), f) } -func (s *Server) serveRemuxedMP4(w http.ResponseWriter, r *http.Request, res *service.FileResult, size int64) { +func (s *Server) serveRemuxedMP4(w http.ResponseWriter, r *http.Request, res *service.FileResult) { w.Header().Set("Content-Type", "video/mp4") w.Header().Set("Cache-Control", "no-store") - s.logger.Info("api remux stream file", "file", res.FileName, "size", size, "range", r.Header.Get("Range")) + if res.Duration > 0 { + w.Header().Set("X-Duration", fmt.Sprintf("%f", res.Duration)) + } + s.logger.Info("api remux stream file", "file", res.FileName, "size", res.FileSize, "range", r.Header.Get("Range")) if err := s.remuxer.Remux(r.Context(), res.Path, w); err != nil { s.logger.Error("remux media", "file", res.FileName, "err", err) } |
