From cf6872d949a77317457dc23bbcb3b6b195222b97 Mon Sep 17 00:00:00 2001 From: Subhajit Sahu Date: Thu, 20 Dec 2018 20:08:56 +0530 Subject: [PATCH] retry caption upload 8 times (1+7) --- upload.go | 21 +++++++++++++++------ youtubeuploader.go | 3 --- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/upload.go b/upload.go index 5d6ce98..d225cf0 100644 --- a/upload.go +++ b/upload.go @@ -3,6 +3,7 @@ package main import ( "io" "log" + "os" "regexp" "strconv" "strings" @@ -15,6 +16,7 @@ import ( // Global variables // var reTemplate = regexp.MustCompile("\\$\\{.*?\\}") +var retries = 8 // // Functions @@ -173,21 +175,28 @@ func uploadThumbnail(srv *youtube.Service, id string, fil io.ReadCloser) { } func uploadCaption(srv *youtube.Service, id string, lng string, fil io.ReadCloser) { + var err error + var res *youtube.Caption c := &youtube.Caption{ Snippet: &youtube.CaptionSnippet{}, } c.Snippet.VideoId = id c.Snippet.Language = lng c.Snippet.Name = lng - req := srv.Captions.Insert("snippet", c).Sync(true) - res, err := req.Media(fil).Do() - if err != nil { - if res != nil { - log.Fatalf("Error uploading caption: %v, %v", err, res.HTTPStatusCode) + for i := 0; i < retries; i++ { + req := srv.Captions.Insert("snippet", c).Sync(true) + res, err = req.Media(fil).Do() + if err == nil { + break + } else if res == nil { + log.Printf("Error uploading caption: %v", err) } else { - log.Fatalf("Error uploading caption: %v", err) + log.Printf("Error uploading caption: %v, %v", err, res.HTTPStatusCode) } } + if err != nil { + os.Exit(1) + } } func addToPlaylistID(srv *youtube.Service, pid string, sta string, id string) { diff --git a/youtubeuploader.go b/youtubeuploader.go index a5ff14d..1ec45c5 100644 --- a/youtubeuploader.go +++ b/youtubeuploader.go @@ -8,7 +8,6 @@ import ( "net/http" "os" "strings" - "time" "golang.org/x/oauth2" "google.golang.org/api/youtube/v3" @@ -107,13 +106,11 @@ func main() { logf("Uploading file '%s'...\n", f.Video) video := uploadVideo(service, videoFile, upload, parseInt(f.UploadChunk, 0), quitChan) logf("Upload successful! Video ID: %v\n", video.Id) - time.Sleep(time.Second) id = video.Id } else if id != "" { logf("Updating video %v...\n", id) updateVideo(service, id, upload) logf("Update successful!\n") - time.Sleep(time.Second) } // upload thumbnail if id != "" && thumbnailFile != nil {