fix: restore metadata tags and sanitize output filenames

This commit is contained in:
Esa Kataja
2026-04-04 19:39:17 +03:00
parent 3f3eef5d1f
commit 4783d0e0d4
2 changed files with 14 additions and 3 deletions
+8 -2
View File
@@ -8,6 +8,7 @@ import (
"os" "os"
"os/signal" "os/signal"
"path/filepath" "path/filepath"
"regexp"
"syscall" "syscall"
"videnc-vibe/internal/config" "videnc-vibe/internal/config"
@@ -148,9 +149,9 @@ func processFile(inputPath string, cfg *types.Config, enc *encoder.Encoder, meta
if meta.IMDBID == "" || meta.Title == "Unknown" { if meta.IMDBID == "" || meta.Title == "Unknown" {
outFilename = fmt.Sprintf("%s.nometadata.mkv", generateRandomString(8)) outFilename = fmt.Sprintf("%s.nometadata.mkv", generateRandomString(8))
} else if isSeries { } else if isSeries {
outFilename = fmt.Sprintf("%s.S%sE%s.mkv", meta.Collection, season, episode) outFilename = fmt.Sprintf("%s.S%sE%s.mkv", sanitizeFilename(meta.Collection), season, episode)
} else { } else {
outFilename = fmt.Sprintf("%s.%s.mkv", meta.Title, meta.IMDBID) outFilename = fmt.Sprintf("%s.%s.mkv", sanitizeFilename(meta.Title), meta.IMDBID)
} }
finalOutput := filepath.Join(cfg.Paths.Output, outFilename) finalOutput := filepath.Join(cfg.Paths.Output, outFilename)
@@ -177,3 +178,8 @@ func generateRandomString(length int) string {
rand.Read(bytes) rand.Read(bytes)
return hex.EncodeToString(bytes)[:length] return hex.EncodeToString(bytes)[:length]
} }
func sanitizeFilename(name string) string {
reg := regexp.MustCompile(`[^a-zA-Z0-9\-äöÄÖ]`)
return reg.ReplaceAllString(name, "")
}
+6 -1
View File
@@ -295,8 +295,13 @@ func (e *Encoder) encodeVideo(input string, opusFiles []string, job *types.Job,
} }
} }
args = append(args, "-metadata", fmt.Sprintf("TITLE=\"%s\"", metadata.Title))
args = append(args, "-metadata", fmt.Sprintf("DATE_RELEASED=%s", metadata.DateReleased))
args = append(args, "-metadata", fmt.Sprintf("IMDBID=%s", metadata.IMDBID))
args = append(args, "-metadata", fmt.Sprintf("ORIGINAL_MEDIA_TYPE=%s", metadata.OriginalMedia))
if metadata.IsSeries { if metadata.IsSeries {
args = append(args, "-metadata", fmt.Sprintf("COLLECTION=%s", metadata.Collection)) args = append(args, "-metadata", fmt.Sprintf("COLLECTION=\"%s\"", metadata.Collection))
args = append(args, "-metadata", fmt.Sprintf("SEASON=%s", metadata.Season)) args = append(args, "-metadata", fmt.Sprintf("SEASON=%s", metadata.Season))
args = append(args, "-metadata", fmt.Sprintf("EPISODE=%s", metadata.Episode)) args = append(args, "-metadata", fmt.Sprintf("EPISODE=%s", metadata.Episode))
if metadata.TVMazeID != "" { if metadata.TVMazeID != "" {