From 3b0d0c183faa9988f7a5a6af5a38e1bf0baa324b Mon Sep 17 00:00:00 2001 From: "n.artemenko" Date: Thu, 15 Aug 2024 22:26:17 +0700 Subject: [PATCH] Support for videos longer then one day --- yt.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/yt.go b/yt.go index b857308..8317dde 100644 --- a/yt.go +++ b/yt.go @@ -85,16 +85,17 @@ func getComments(service *youtube.Service, videoID string) []string { } func parseDuration(durationStr string) (int, error) { - matches := regexp.MustCompile(`(?i)PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?`).FindStringSubmatch(durationStr) + matches := regexp.MustCompile(`(?i)P(?:(\d+)D)?T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?`).FindStringSubmatch(durationStr) if len(matches) == 0 { return 0, fmt.Errorf("invalid duration string: %s", durationStr) } - hours, _ := strconv.Atoi(matches[1]) - minutes, _ := strconv.Atoi(matches[2]) - seconds, _ := strconv.Atoi(matches[3]) + days, _ := strconv.Atoi(matches[1]) + hours, _ := strconv.Atoi(matches[2]) + minutes, _ := strconv.Atoi(matches[3]) + seconds, _ := strconv.Atoi(matches[4]) - return hours*60 + minutes + seconds/60, nil + return days*60*24 + hours*60 + minutes + seconds/60, nil } func mainFunction(url string, options *Options) {