diff options
Diffstat (limited to 'youtube_dl/extractor/naver.py')
| -rw-r--r-- | youtube_dl/extractor/naver.py | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/naver.py b/youtube_dl/extractor/naver.py index c0231c197..c10405f04 100644 --- a/youtube_dl/extractor/naver.py +++ b/youtube_dl/extractor/naver.py @@ -4,9 +4,12 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..utils import ( +from ..compat import (      compat_urllib_parse, +) +from ..utils import (      ExtractorError, +    clean_html,  ) @@ -25,16 +28,21 @@ class NaverIE(InfoExtractor):      }      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group(1) +        video_id = self._match_id(url)          webpage = self._download_webpage(url, video_id) +          m_id = re.search(r'var rmcPlayer = new nhn.rmcnmv.RMCVideoPlayer\("(.+?)", "(.+?)"', -            webpage) +                         webpage)          if m_id is None: +            m_error = re.search( +                r'(?s)<div class="nation_error">\s*(?:<!--.*?-->)?\s*<p class="[^"]+">(?P<msg>.+?)</p>\s*</div>', +                webpage) +            if m_error: +                raise ExtractorError(clean_html(m_error.group('msg')), expected=True)              raise ExtractorError('couldn\'t extract vid and key')          vid = m_id.group(1)          key = m_id.group(2) -        query = compat_urllib_parse.urlencode({'vid': vid, 'inKey': key,}) +        query = compat_urllib_parse.urlencode({'vid': vid, 'inKey': key, })          query_urls = compat_urllib_parse.urlencode({              'masterVid': vid,              'protocol': 'p2p', @@ -59,7 +67,7 @@ class NaverIE(InfoExtractor):              if domain.startswith('rtmp'):                  f.update({                      'ext': 'flv', -                    'rtmp_protocol': '1', # rtmpt +                    'rtmp_protocol': '1',  # rtmpt                  })              formats.append(f)          self._sort_formats(formats) | 
