diff --git a/cmd/videnc/main.go b/cmd/videnc/main.go index ee53d08..e972ee6 100644 --- a/cmd/videnc/main.go +++ b/cmd/videnc/main.go @@ -8,6 +8,7 @@ import ( "os" "os/signal" "path/filepath" + "regexp" "syscall" "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" { outFilename = fmt.Sprintf("%s.nometadata.mkv", generateRandomString(8)) } 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 { - 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) @@ -177,3 +178,8 @@ func generateRandomString(length int) string { rand.Read(bytes) return hex.EncodeToString(bytes)[:length] } + +func sanitizeFilename(name string) string { + reg := regexp.MustCompile(`[^a-zA-Z0-9\-äöÄÖ]`) + return reg.ReplaceAllString(name, "") +} diff --git a/internal/encoder/encoder.go b/internal/encoder/encoder.go index f029612..7b8ff61 100644 --- a/internal/encoder/encoder.go +++ b/internal/encoder/encoder.go @@ -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 { - 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("EPISODE=%s", metadata.Episode)) if metadata.TVMazeID != "" {