From be3fe064da1bf452f3ff57934fb27a4c5482ac31 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Sat, 23 Nov 2019 12:28:57 -0800 Subject: [PATCH] Don't skip further video downloads on first error #54 --- cmd/podsync/updater.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cmd/podsync/updater.go b/cmd/podsync/updater.go index 9d70149..895aa10 100644 --- a/cmd/podsync/updater.go +++ b/cmd/podsync/updater.go @@ -86,16 +86,18 @@ func (u *Updater) Update(ctx context.Context, feedConfig *config.Feed) error { if os.IsNotExist(err) { // There is no file on disk, download episode logger.Infof("! downloading episode %s", episode.VideoURL) - if output, err := u.downloader.Download(ctx, feedConfig, episode.VideoURL, episodePath); err != nil { - logger.WithError(err).Errorf("youtube-dl error: %s", output) - + if output, err := u.downloader.Download(ctx, feedConfig, episode.VideoURL, episodePath); err == nil { + downloaded++ + } else { // YouTube might block host with HTTP Error 429: Too Many Requests // We still need to generate XML, so just stop sending download requests and // retry next time - break - } + if strings.Contains(output, "HTTP Error 429") { + break + } - downloaded++ + logger.WithError(err).Errorf("youtube-dl error: %s", output) + } } else { // Episode already downloaded logger.Debug("skipping download of episode")