|
|
|
@ -1,8 +1,6 @@
|
|
|
|
|
# coding: utf-8
|
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
from ..utils import (
|
|
|
|
|
ExtractorError,
|
|
|
|
@ -43,9 +41,14 @@ class NaverIE(InfoExtractor):
|
|
|
|
|
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)
|
|
|
|
|
if m_id is None:
|
|
|
|
|
vid = self._search_regex(
|
|
|
|
|
r'videoId["\']\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1', webpage,
|
|
|
|
|
'video id', fatal=None, group='value')
|
|
|
|
|
in_key = self._search_regex(
|
|
|
|
|
r'inKey["\']\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1', webpage,
|
|
|
|
|
'key', default=None, group='value')
|
|
|
|
|
|
|
|
|
|
if not vid or not in_key:
|
|
|
|
|
error = self._html_search_regex(
|
|
|
|
|
r'(?s)<div class="(?:nation_error|nation_box|error_box)">\s*(?:<!--.*?-->)?\s*<p class="[^"]+">(?P<msg>.+?)</p>\s*</div>',
|
|
|
|
|
webpage, 'error', default=None)
|
|
|
|
@ -53,9 +56,9 @@ class NaverIE(InfoExtractor):
|
|
|
|
|
raise ExtractorError(error, expected=True)
|
|
|
|
|
raise ExtractorError('couldn\'t extract vid and key')
|
|
|
|
|
video_data = self._download_json(
|
|
|
|
|
'http://play.rmcnmv.naver.com/vod/play/v2.0/' + m_id.group(1),
|
|
|
|
|
'http://play.rmcnmv.naver.com/vod/play/v2.0/' + vid,
|
|
|
|
|
video_id, query={
|
|
|
|
|
'key': m_id.group(2),
|
|
|
|
|
'key': in_key,
|
|
|
|
|
})
|
|
|
|
|
meta = video_data['meta']
|
|
|
|
|
title = meta['subject']
|
|
|
|
|