[mtv] Add alternate way to retrieve mgid

Use the embed URL to retrieve the mgid for a given episode, if all other
methods fail.

Fixes rg3/youtube-dl#5369.
This commit is contained in:
Mark Lee 2015-04-07 09:48:53 -04:00
parent 29713e4268
commit a4d5b00b66

View File

@ -182,7 +182,8 @@ class MTVServicesInfoExtractor(InfoExtractor):
if mgid is None or ':' not in mgid:
mgid = self._search_regex(
[r'data-mgid="(.*?)"', r'swfobject.embedSWF\(".*?(mgid:.*?)"'],
[r'data-mgid="(.*?)"', r'swfobject.embedSWF\(".*?(mgid:.*?)"',
r'sm4:video:embed.*?' + MTVServicesEmbeddedIE._VALID_URL],
webpage, 'mgid')
videos_info = self._get_videos_info(mgid)
@ -191,7 +192,7 @@ class MTVServicesInfoExtractor(InfoExtractor):
class MTVServicesEmbeddedIE(MTVServicesInfoExtractor):
IE_NAME = 'mtvservices:embedded'
_VALID_URL = r'https?://media\.mtvnservices\.com/embed/(?P<mgid>.+?)(\?|/|$)'
_VALID_URL = r'https?://media\.mtvnservices\.com/embed/(?P<mgid>.+?)(\?|/|&|$)'
_TEST = {
# From http://www.thewrap.com/peter-dinklage-sums-up-game-of-thrones-in-45-seconds-video/