From 3c7a2762343280d0e749acffd0edcf72fa4d0661 Mon Sep 17 00:00:00 2001
From: Lesmiscore <nao20010128@gmail.com>
Date: Fri, 2 Sep 2022 15:51:12 +0900
Subject: [PATCH] [extractor/amazonstore] Retry to avoid captcha page (#4811)

Authored by: Lesmiscore
---
 yt_dlp/extractor/amazon.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/yt_dlp/extractor/amazon.py b/yt_dlp/extractor/amazon.py
index de4917adc..56a8d844a 100644
--- a/yt_dlp/extractor/amazon.py
+++ b/yt_dlp/extractor/amazon.py
@@ -1,5 +1,5 @@
 from .common import InfoExtractor
-from ..utils import int_or_none
+from ..utils import ExtractorError, int_or_none
 
 
 class AmazonStoreIE(InfoExtractor):
@@ -38,8 +38,14 @@ class AmazonStoreIE(InfoExtractor):
 
     def _real_extract(self, url):
         id = self._match_id(url)
-        webpage = self._download_webpage(url, id)
-        data_json = self._parse_json(self._html_search_regex(r'var\s?obj\s?=\s?jQuery\.parseJSON\(\'(.*)\'\)', webpage, 'data'), id)
+
+        for retry in self.RetryManager(fatal=True):
+            webpage = self._download_webpage(url, id)
+            try:
+                data_json = self._parse_json(self._html_search_regex(r'var\s?obj\s?=\s?jQuery\.parseJSON\(\'(.*)\'\)', webpage, 'data'), id)
+            except ExtractorError as e:
+                retry.error = e
+
         entries = [{
             'id': video['marketPlaceID'],
             'url': video['url'],