fix: restore metadata tags and sanitize output filenames
This commit is contained in:
+8
-2
@@ -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, "")
|
||||
}
|
||||
|
||||
@@ -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 != "" {
|
||||
|
||||
Reference in New Issue
Block a user