add warnings for exceeding metadata character length
All checks were successful
/ build-linux-amd64 (push) Successful in 2m47s

This commit is contained in:
ari melody 2026-02-01 17:08:16 +00:00
parent 9f32aedc3b
commit dd54e8cc49
Signed by: ari
GPG key ID: CF99829C92678188

42
main.go
View file

@ -26,7 +26,9 @@ import (
//go:embed res/help.txt //go:embed res/help.txt
var helpText string var helpText string
const segmentExtension = "mkv" const SEGMENT_EXTENSION = "mkv"
const MAX_TITLE_LEN = 100
const MAX_DESCRIPTION_LEN = 5000
func showHelp() { func showHelp() {
fmt.Println(helpText) fmt.Println(helpText)
@ -194,7 +196,7 @@ func main() {
} }
// scan for VOD segments // scan for VOD segments
vodFiles, err := scanner.ScanSegments(metadata.FootageDir, segmentExtension) vodFiles, err := scanner.ScanSegments(metadata.FootageDir, SEGMENT_EXTENSION)
if err != nil { if err != nil {
log.Fatalf("Failed to fetch VOD filenames: %v", err) log.Fatalf("Failed to fetch VOD filenames: %v", err)
os.Exit(1) os.Exit(1)
@ -202,7 +204,7 @@ func main() {
if len(vodFiles) == 0 { if len(vodFiles) == 0 {
log.Fatalf( log.Fatalf(
"Directory contained no VOD files (expecting .%s)", "Directory contained no VOD files (expecting .%s)",
segmentExtension, SEGMENT_EXTENSION,
) )
os.Exit(1) os.Exit(1)
} }
@ -221,21 +223,35 @@ func main() {
log.Fatalf("Failed to build video template: %v", err) log.Fatalf("Failed to build video template: %v", err)
os.Exit(1) os.Exit(1)
} }
title, err := yt.BuildTemplate(video, templates.Title)
if err != nil {
log.Fatalf("Failed to build video title: %v", err)
os.Exit(1)
}
description, err := yt.BuildTemplate(video, templates.Description)
if err != nil {
log.Fatalf("Failed to build video description: %v", err)
os.Exit(1)
}
if len(title) > 100 {
log.Fatalf(
"Video title length exceeds %d characters (%d). YouTube may reject this!",
MAX_TITLE_LEN,
len(video.Title),
)
}
if len(description) > 5000 {
log.Fatalf(
"Video description length exceeds %d characters (%d). YouTube may reject this!",
MAX_DESCRIPTION_LEN,
len(description),
)
}
if verbose { if verbose {
enc := json.NewEncoder(os.Stdout) enc := json.NewEncoder(os.Stdout)
fmt.Printf("\nVideo template: ") fmt.Printf("\nVideo template: ")
enc.Encode(video) enc.Encode(video)
title, err := yt.BuildTemplate(video, templates.Title)
if err != nil {
log.Fatalf("Failed to build video title: %v", err)
os.Exit(1)
}
description, err := yt.BuildTemplate(video, templates.Description)
if err != nil {
log.Fatalf("Failed to build video description: %v", err)
os.Exit(1)
}
fmt.Printf( fmt.Printf(
"\n================================\n\n" + "\n================================\n\n" +
"< TITLE >\n%s\n\n" + "< TITLE >\n%s\n\n" +