]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/pinterest.py
[fc2] Fix extraction (#2572)
[yt-dlp.git] / yt_dlp / extractor / pinterest.py
index 15c11a755aca40318a24412c0bea98841c44f0fe..80e9cd00ee431bbbc2ed6e2fa33f5852381d7d5e 100644 (file)
@@ -2,7 +2,6 @@
 from __future__ import unicode_literals
 
 import json
-import re
 
 from .common import InfoExtractor
 from ..compat import compat_str
@@ -31,6 +30,7 @@ def _extract_video(self, data, extract_formats=True):
 
         title = (data.get('title') or data.get('grid_title') or video_id).strip()
 
+        urls = []
         formats = []
         duration = None
         if extract_formats:
@@ -38,8 +38,9 @@ def _extract_video(self, data, extract_formats=True):
                 if not isinstance(format_dict, dict):
                     continue
                 format_url = url_or_none(format_dict.get('url'))
-                if not format_url:
+                if not format_url or format_url in urls:
                     continue
+                urls.append(format_url)
                 duration = float_or_none(format_dict.get('duration'), scale=1000)
                 ext = determine_ext(format_url)
                 if 'hls' in format_id.lower() or ext == 'm3u8':
@@ -163,7 +164,7 @@ def suitable(cls, url):
             PinterestCollectionIE, cls).suitable(url)
 
     def _real_extract(self, url):
-        username, slug = re.match(self._VALID_URL, url).groups()
+        username, slug = self._match_valid_url(url).groups()
         board = self._call_api(
             'Board', slug, {
                 'slug': slug,