]> jfr.im git - yt-dlp.git/commitdiff
[extractor/southpark] Add `southpark.lat` extractor (#4008)
authorAngel Toloza <redacted>
Tue, 7 Jun 2022 22:12:56 +0000 (18:12 -0400)
committerGitHub <redacted>
Tue, 7 Jun 2022 22:12:56 +0000 (15:12 -0700)
Authored by: darkxex

yt_dlp/extractor/extractors.py
yt_dlp/extractor/southpark.py

index 430c08eb412b4e0382136c91f0987c21ca5d5f7c..403aee1c6859b6d8b67fe80393dc0e453ba34044 100644 (file)
     SouthParkDeIE,
     SouthParkDkIE,
     SouthParkEsIE,
+    SouthParkLatIE,
     SouthParkNlIE
 )
 from .sovietscloset import (
index 855f1d6d3a74ce730224d6d1e96d608dfa1c760b..7381ac3624d296781988f04df5162a5ae9067012 100644 (file)
@@ -109,6 +109,49 @@ def _get_feed_query(self, uri):
         return
 
 
+class SouthParkLatIE(SouthParkIE):
+    IE_NAME = 'southpark.lat'
+    _VALID_URL = r'https?://(?:www\.)?southpark\.lat/(?:en/)?(?:video-?clips?|collections|episod(?:e|io)s)/(?P<id>[^/?#&]+)'
+    _TESTS = [{
+        'url': 'https://www.southpark.lat/en/video-clips/ct46op/south-park-tooth-fairy-cartman',
+        'only_matching': True,
+    }, {
+        'url': 'https://www.southpark.lat/episodios/9h0qbg/south-park-orgia-gatuna-temporada-3-ep-7',
+        'only_matching': True,
+    }, {
+        'url': 'https://www.southpark.lat/en/collections/29ve08/south-park-heating-up/lydbrc',
+        'only_matching': True,
+    }, {
+        # clip
+        'url': 'https://www.southpark.lat/en/video-clips/ct46op/south-park-tooth-fairy-cartman',
+        'info_dict': {
+            'id': 'e99d45ea-ed00-11e0-aca6-0026b9414f30',
+            'ext': 'mp4',
+            'title': 'Tooth Fairy Cartman',
+            'description': 'md5:db02e23818b4dc9cb5f0c5a7e8833a68',
+        },
+    }, {
+        # episode
+        'url': 'https://www.southpark.lat/episodios/9h0qbg/south-park-orgia-gatuna-temporada-3-ep-7',
+        'info_dict': {
+            'id': 'f5fbd823-04bc-11eb-9b1b-0e40cf2fc285',
+            'ext': 'mp4',
+            'title': 'South Park',
+            'description': 'md5:ae0d875eff169dcbed16b21531857ac1',
+        },
+    }]
+
+    def _get_feed_url(self, uri, url=None):
+        video_id = self._id_from_uri(uri)
+        config = self._download_json(
+            f'http://media.mtvnservices.com/pmt/e1/access/index.html?uri={uri}&configtype=edge&ref={url}',
+            video_id)
+        return self._remove_template_parameter(config['feedWithQueryParams'])
+
+    def _get_feed_query(self, uri):
+        return
+
+
 class SouthParkNlIE(SouthParkIE):
     IE_NAME = 'southpark.nl'
     _VALID_URL = r'https?://(?:www\.)?(?P<url>southpark\.nl/(?:clips|(?:full-)?episodes|collections)/(?P<id>.+?)(\?|#|$))'