[daum.net] Remove error fix, and improve code for playlist/user channel support
This commit is contained in:
parent
528668da72
commit
3e7c72bb35
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import re
|
|
||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
@ -11,6 +10,7 @@ from ..utils import (
|
|||||||
int_or_none,
|
int_or_none,
|
||||||
str_to_int,
|
str_to_int,
|
||||||
xpath_text,
|
xpath_text,
|
||||||
|
unescapeHTML,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -30,16 +30,6 @@ class DaumIE(InfoExtractor):
|
|||||||
'view_count': int,
|
'view_count': int,
|
||||||
'comment_count': int,
|
'comment_count': int,
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
'url': 'http://m.tvpot.daum.net/v/65139429',
|
|
||||||
'info_dict': {
|
|
||||||
'id': '65139429',
|
|
||||||
'ext': 'mp4',
|
|
||||||
'title': 'md5:a100d65d09cec246d8aa9bde7de45aed',
|
|
||||||
'description': 'md5:79794514261164ff27e36a21ad229fc5',
|
|
||||||
'upload_date': '20150604',
|
|
||||||
'duration': 154
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
'url': 'http://tvpot.daum.net/v/07dXWRka62Y%24',
|
'url': 'http://tvpot.daum.net/v/07dXWRka62Y%24',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
@ -55,10 +45,6 @@ class DaumIE(InfoExtractor):
|
|||||||
'http://videofarm.daum.net/controller/api/closed/v1_2/IntegratedMovieData.json?' + query,
|
'http://videofarm.daum.net/controller/api/closed/v1_2/IntegratedMovieData.json?' + query,
|
||||||
video_id, 'Downloading video formats info')
|
video_id, 'Downloading video formats info')
|
||||||
|
|
||||||
# For urls like http://m.tvpot.daum.net/v/65139429, where the video_id is really a clipid
|
|
||||||
if not movie_data.get('output_list', {}).get('output_list') and re.match(r'^\d+$', video_id):
|
|
||||||
return self.url_result('http://tvpot.daum.net/clip/ClipView.do?clipid=%s' % video_id)
|
|
||||||
|
|
||||||
formats = []
|
formats = []
|
||||||
for format_el in movie_data['output_list']['output_list']:
|
for format_el in movie_data['output_list']['output_list']:
|
||||||
profile = format_el['profile']
|
profile = format_el['profile']
|
||||||
@ -93,7 +79,7 @@ class DaumIE(InfoExtractor):
|
|||||||
|
|
||||||
|
|
||||||
class DaumClipIE(InfoExtractor):
|
class DaumClipIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:m\.)?tvpot\.daum\.net/(?:clip/ClipView.(?:do|tv)|mypot/View.do)\?.*?clipid=(?P<id>\d+)'
|
_VALID_URL = r'https?://(?:m\.)?tvpot\.daum\.net/(?:clip/ClipView.do|mypot/View.do)\?.*?clipid=(?P<id>\d+)'
|
||||||
IE_NAME = 'daum.net:clip'
|
IE_NAME = 'daum.net:clip'
|
||||||
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
@ -107,9 +93,6 @@ class DaumClipIE(InfoExtractor):
|
|||||||
'duration': 3868,
|
'duration': 3868,
|
||||||
'view_count': int,
|
'view_count': int,
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
'url': 'http://m.tvpot.daum.net/clip/ClipView.tv?clipid=54999425',
|
|
||||||
'only_matching': True,
|
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
@ -122,7 +105,7 @@ class DaumClipIE(InfoExtractor):
|
|||||||
'_type': 'url_transparent',
|
'_type': 'url_transparent',
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'url': 'http://tvpot.daum.net/v/%s' % clip_info['vid'],
|
'url': 'http://tvpot.daum.net/v/%s' % clip_info['vid'],
|
||||||
'title': clip_info['title'],
|
'title': unescapeHTML(clip_info['title']),
|
||||||
'thumbnail': clip_info.get('thumb_url'),
|
'thumbnail': clip_info.get('thumb_url'),
|
||||||
'description': clip_info.get('contents'),
|
'description': clip_info.get('contents'),
|
||||||
'duration': int_or_none(clip_info.get('duration')),
|
'duration': int_or_none(clip_info.get('duration')),
|
||||||
@ -136,7 +119,7 @@ class DaumListIE(InfoExtractor):
|
|||||||
def _get_entries(self, list_id, list_id_type):
|
def _get_entries(self, list_id, list_id_type):
|
||||||
name = None
|
name = None
|
||||||
entries = []
|
entries = []
|
||||||
for pagenum in itertools.count(start=1):
|
for pagenum in itertools.count(1):
|
||||||
list_info = self._download_json(
|
list_info = self._download_json(
|
||||||
'http://tvpot.daum.net/mypot/json/GetClipInfo.do?size=48&init=true&order=date&page=%d&%s=%s' % (
|
'http://tvpot.daum.net/mypot/json/GetClipInfo.do?size=48&init=true&order=date&page=%d&%s=%s' % (
|
||||||
pagenum, list_id_type, list_id), list_id,'Downloading list info - %s' % pagenum)
|
pagenum, list_id_type, list_id), list_id,'Downloading list info - %s' % pagenum)
|
||||||
@ -189,6 +172,8 @@ class DaumPlaylistIE(DaumListIE):
|
|||||||
return self.url_result(url, 'DaumClip')
|
return self.url_result(url, 'DaumClip')
|
||||||
|
|
||||||
list_id = self._match_id(url)
|
list_id = self._match_id(url)
|
||||||
|
self.to_screen('Downloading playlist %s - add --no-playlist to just download video' % list_id)
|
||||||
|
|
||||||
name, entries = self._get_entries(list_id, 'playlistid')
|
name, entries = self._get_entries(list_id, 'playlistid')
|
||||||
|
|
||||||
return self.playlist_result(entries, list_id, name)
|
return self.playlist_result(entries, list_id, name)
|
||||||
@ -210,7 +195,7 @@ class DaumUserIE(DaumListIE):
|
|||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '73801156',
|
'id': '73801156',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': '[미공개] 김구라, 오만석이 부릅니다 '오케피' - 마이 리틀 텔레비전 20160116',
|
'title': '[미공개] 김구라, 오만석이 부릅니다 \'오케피\' - 마이 리틀 텔레비전 20160116',
|
||||||
'upload_date': '20160117',
|
'upload_date': '20160117',
|
||||||
'description': 'md5:5e91d2d6747f53575badd24bd62b9f36'
|
'description': 'md5:5e91d2d6747f53575badd24bd62b9f36'
|
||||||
},
|
},
|
||||||
@ -239,6 +224,7 @@ class DaumUserIE(DaumListIE):
|
|||||||
return self.url_result(url, 'DaumPlaylist')
|
return self.url_result(url, 'DaumPlaylist')
|
||||||
|
|
||||||
list_id = self._match_id(url)
|
list_id = self._match_id(url)
|
||||||
|
self.to_screen('Downloading playlist %s - add --no-playlist to just download video' % list_id)
|
||||||
name, entries = self._get_entries(list_id, 'ownerid')
|
name, entries = self._get_entries(list_id, 'ownerid')
|
||||||
|
|
||||||
return self.playlist_result(entries, list_id, name)
|
return self.playlist_result(entries, list_id, name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user