[afreecatv] Add support for vod.afreecatv.com (closes #11174)

This commit is contained in:
Sergey M․ 2016-11-13 06:02:26 +07:00
parent 4ea4c0bb22
commit e58609b22c
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

View File

@ -11,6 +11,7 @@
from ..utils import ( from ..utils import (
ExtractorError, ExtractorError,
int_or_none, int_or_none,
update_url_query,
xpath_element, xpath_element,
xpath_text, xpath_text,
) )
@ -18,12 +19,18 @@
class AfreecaTVIE(InfoExtractor): class AfreecaTVIE(InfoExtractor):
IE_DESC = 'afreecatv.com' IE_DESC = 'afreecatv.com'
_VALID_URL = r'''(?x)^ _VALID_URL = r'''(?x)
https?://(?:(live|afbbs|www)\.)?afreeca(?:tv)?\.com(?::\d+)? https?://
(?: (?:
/app/(?:index|read_ucc_bbs)\.cgi| (?:(?:live|afbbs|www)\.)?afreeca(?:tv)?\.com(?::\d+)?
/player/[Pp]layer\.(?:swf|html)) (?:
\?.*?\bnTitleNo=(?P<id>\d+)''' /app/(?:index|read_ucc_bbs)\.cgi|
/player/[Pp]layer\.(?:swf|html)
)\?.*?\bnTitleNo=|
vod\.afreecatv\.com/PLAYER/STATION/
)
(?P<id>\d+)
'''
_TESTS = [{ _TESTS = [{
'url': 'http://live.afreecatv.com:8079/app/index.cgi?szType=read_ucc_bbs&szBjId=dailyapril&nStationNo=16711924&nBbsNo=18605867&nTitleNo=36164052&szSkin=', 'url': 'http://live.afreecatv.com:8079/app/index.cgi?szType=read_ucc_bbs&szBjId=dailyapril&nStationNo=16711924&nBbsNo=18605867&nTitleNo=36164052&szSkin=',
'md5': 'f72c89fe7ecc14c1b5ce506c4996046e', 'md5': 'f72c89fe7ecc14c1b5ce506c4996046e',
@ -66,6 +73,9 @@ class AfreecaTVIE(InfoExtractor):
}, { }, {
'url': 'http://www.afreecatv.com/player/Player.swf?szType=szBjId=djleegoon&nStationNo=11273158&nBbsNo=13161095&nTitleNo=36327652', 'url': 'http://www.afreecatv.com/player/Player.swf?szType=szBjId=djleegoon&nStationNo=11273158&nBbsNo=13161095&nTitleNo=36327652',
'only_matching': True, 'only_matching': True,
}, {
'url': 'http://vod.afreecatv.com/PLAYER/STATION/15055030',
'only_matching': True,
}] }]
@staticmethod @staticmethod
@ -83,7 +93,9 @@ def _real_extract(self, url):
info_url = compat_urlparse.urlunparse(parsed_url._replace( info_url = compat_urlparse.urlunparse(parsed_url._replace(
netloc='afbbs.afreecatv.com:8080', netloc='afbbs.afreecatv.com:8080',
path='/api/video/get_video_info.php')) path='/api/video/get_video_info.php'))
video_xml = self._download_xml(info_url, video_id)
video_xml = self._download_xml(
update_url_query(info_url, {'nTitleNo': video_id}), video_id)
if xpath_element(video_xml, './track/video/file') is None: if xpath_element(video_xml, './track/video/file') is None:
raise ExtractorError('Specified AfreecaTV video does not exist', raise ExtractorError('Specified AfreecaTV video does not exist',