diff --git a/server/dlna/mimetype.go b/server/mimetype/mimetype.go similarity index 99% rename from server/dlna/mimetype.go rename to server/mimetype/mimetype.go index c6f8f1b..ebdf3f8 100644 --- a/server/dlna/mimetype.go +++ b/server/mimetype/mimetype.go @@ -1,4 +1,4 @@ -package dlna +package mimetype import ( "log" diff --git a/server/torr/stream.go b/server/torr/stream.go index da3ca3a..1bfebb3 100644 --- a/server/torr/stream.go +++ b/server/torr/stream.go @@ -12,6 +12,7 @@ import ( "github.com/anacrolix/missinggo/httptoo" "github.com/anacrolix/torrent" + mt "server/mimetype" sets "server/settings" "server/torr/state" ) @@ -61,8 +62,12 @@ func (t *Torrent) Stream(fileID int, req *http.Request, resp http.ResponseWriter resp.Header().Set("Connection", "close") resp.Header().Set("ETag", httptoo.EncodeQuotedString(fmt.Sprintf("%s/%s", t.Hash().HexString(), file.Path()))) + // DLNA headers resp.Header().Set("transferMode.dlna.org", "Streaming") - + mime, err := mt.MimeTypeByPath(file.Path()) + if err == nil && mime.IsMedia() { + resp.Header().Set("content-type", mime.String()) + } if req.Header.Get("getContentFeatures.dlna.org") != "" { resp.Header().Set("contentFeatures.dlna.org", dlna.ContentFeatures{ SupportRange: true,