]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/southpark.py
2 from __future__
import unicode_literals
4 from .mtv
import MTVServicesInfoExtractor
7 class SouthParkIE(MTVServicesInfoExtractor
):
8 IE_NAME
= 'southpark.cc.com'
9 _VALID_URL
= r
'https?://(?:www\.)?(?P<url>southpark(?:\.cc|studios)\.com/(?:clips|(?:full-)?episodes|collections)/(?P<id>.+?)(\?|#|$))'
11 _FEED_URL
= 'http://feeds.mtvnservices.com/od/feed/intl-mrss-player-feed'
14 'url': 'http://southpark.cc.com/clips/104437/bat-daded#tab=featured',
16 'id': 'a7bff6c2-ed00-11e0-aca6-0026b9414f30',
18 'title': 'South Park|Bat Daded',
19 'description': 'Randy disqualifies South Park by getting into a fight with Bat Dad.',
20 'timestamp': 1112760000,
21 'upload_date': '20050406',
24 'url': 'http://southpark.cc.com/collections/7758/fan-favorites/1',
25 'only_matching': True,
27 'url': 'https://www.southparkstudios.com/episodes/h4o269/south-park-stunning-and-brave-season-19-ep-1',
28 'only_matching': True,
31 def _get_feed_query(self
, uri
):
33 'accountOverride': 'intl.mtvi.com',
34 'arcEp': 'shared.southpark.global',
36 'imageEp': 'shared.southpark.global',
41 class SouthParkEsIE(SouthParkIE
):
42 IE_NAME
= 'southpark.cc.com:espaƱol'
43 _VALID_URL
= r
'https?://(?:www\.)?(?P<url>southpark\.cc\.com/episodios-en-espanol/(?P<id>.+?)(\?|#|$))'
47 'url': 'http://southpark.cc.com/episodios-en-espanol/s01e01-cartman-consigue-una-sonda-anal#source=351c1323-0b96-402d-a8b9-40d01b2e9bde&position=1&sort=!airdate',
49 'title': 'Cartman Consigue Una Sonda Anal',
50 'description': 'Cartman Consigue Una Sonda Anal',
53 'skip': 'Geo-restricted',
57 class SouthParkDeIE(SouthParkIE
):
58 IE_NAME
= 'southpark.de'
59 _VALID_URL
= r
'https?://(?:www\.)?(?P<url>southpark\.de/(?:(en/(videoclip|collections|episodes))|(videoclip|collections|folgen))/(?P<id>(?P<unique_id>.+?)/.+?)(?:\?|#|$))'
60 # _FEED_URL = 'http://feeds.mtvnservices.com/od/feed/intl-mrss-player-feed'
63 'url': 'https://www.southpark.de/videoclip/rsribv/south-park-rueckzug-zum-gummibonbon-wald',
64 'only_matching': True,
66 'url': 'https://www.southpark.de/folgen/jiru42/south-park-verkabelung-staffel-23-ep-9',
67 'only_matching': True,
69 'url': 'https://www.southpark.de/collections/zzno5a/south-park-good-eats/7q26gp',
70 'only_matching': True,
73 def _get_feed_url(self
, uri
, url
=None):
74 video_id
= self
._id
_from
_uri
(uri
)
75 config
= self
._download
_json
(
76 'http://media.mtvnservices.com/pmt/e1/access/index.html?uri=%s&configtype=edge&ref=%s' % (uri
, url
), video_id
)
77 return self
._remove
_template
_parameter
(config
['feedWithQueryParams'])
80 class SouthParkNlIE(SouthParkIE
):
81 IE_NAME
= 'southpark.nl'
82 _VALID_URL
= r
'https?://(?:www\.)?(?P<url>southpark\.nl/(?:clips|(?:full-)?episodes|collections)/(?P<id>.+?)(\?|#|$))'
83 _FEED_URL
= 'http://www.southpark.nl/feeds/video-player/mrss/'
86 'url': 'http://www.southpark.nl/full-episodes/s18e06-freemium-isnt-free',
88 'title': 'Freemium Isn\'t Free',
89 'description': 'Stan is addicted to the new Terrance and Phillip mobile game.',
91 'playlist_mincount': 3,
95 class SouthParkDkIE(SouthParkIE
):
96 IE_NAME
= 'southparkstudios.dk'
97 _VALID_URL
= r
'https?://(?:www\.)?(?P<url>southparkstudios\.(?:dk|nu)/(?:clips|full-episodes|collections)/(?P<id>.+?)(\?|#|$))'
98 _FEED_URL
= 'http://www.southparkstudios.dk/feeds/video-player/mrss/'
101 'url': 'http://www.southparkstudios.dk/full-episodes/s18e07-grounded-vindaloop',
103 'title': 'Grounded Vindaloop',
104 'description': 'Butters is convinced he\'s living in a virtual reality.',
106 'playlist_mincount': 3,
108 'url': 'http://www.southparkstudios.dk/collections/2476/superhero-showdown/1',
109 'only_matching': True,
111 'url': 'http://www.southparkstudios.nu/collections/2476/superhero-showdown/1',
112 'only_matching': True,