youtube-dl/youtube_dl/extractor/nintendo.py

47 lines
1.4 KiB
Python
Raw Permalink Normal View History

# coding: utf-8
2016-07-02 22:39:35 +00:00
from __future__ import unicode_literals
import re
2016-07-02 22:39:35 +00:00
from .common import InfoExtractor
from .ooyala import OoyalaIE
from ..utils import unescapeHTML
2016-07-02 22:39:35 +00:00
class NintendoIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?nintendo\.com/games/detail/(?P<id>[^/?#&]+)'
2016-07-02 22:39:35 +00:00
_TESTS = [{
'url': 'http://www.nintendo.com/games/detail/yEiAzhU2eQI1KZ7wOHhngFoAHc1FpHwj',
'info_dict': {
'id': 'MzMmticjp0VPzO3CCj4rmFOuohEuEWoW',
'ext': 'flv',
'title': 'Duck Hunt Wii U VC NES - Trailer',
'duration': 60.326,
},
'params': {
'skip_download': True,
},
'add_ie': ['Ooyala'],
}, {
'url': 'http://www.nintendo.com/games/detail/tokyo-mirage-sessions-fe-wii-u',
'info_dict': {
'id': 'tokyo-mirage-sessions-fe-wii-u',
'title': 'Tokyo Mirage Sessions ♯FE',
2016-07-02 22:39:35 +00:00
},
'playlist_count': 3,
2016-07-02 22:39:35 +00:00
}]
def _real_extract(self, url):
page_id = self._match_id(url)
2016-07-02 22:39:35 +00:00
webpage = self._download_webpage(url, page_id)
2016-07-02 22:39:35 +00:00
entries = [
OoyalaIE._build_url_result(m.group('code'))
for m in re.finditer(
r'class=(["\'])embed-video\1[^>]+data-video-code=(["\'])(?P<code>(?:(?!\2).)+)\2',
webpage)]
2016-07-02 22:39:35 +00:00
return self.playlist_result(
entries, page_id, unescapeHTML(self._og_search_title(webpage, fatal=False)))