1
0
mirror of https://github.com/l1ving/youtube-dl synced 2025-03-14 03:07:28 +08:00

[daum.net] Remove error fix, and improve code for playlist/user channel support

This commit is contained in:
ping 2016-01-27 12:38:34 +08:00
parent 528668da72
commit 3e7c72bb35

View File

@ -2,7 +2,6 @@
from __future__ import unicode_literals
import re
import itertools
from .common import InfoExtractor
@ -11,6 +10,7 @@ from ..utils import (
int_or_none,
str_to_int,
xpath_text,
unescapeHTML,
)
@ -30,16 +30,6 @@ class DaumIE(InfoExtractor):
'view_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',
'only_matching': True,
@ -55,10 +45,6 @@ class DaumIE(InfoExtractor):
'http://videofarm.daum.net/controller/api/closed/v1_2/IntegratedMovieData.json?' + query,
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 = []
for format_el in movie_data['output_list']['output_list']:
profile = format_el['profile']
@ -93,7 +79,7 @@ class DaumIE(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'
_TESTS = [{
@ -107,9 +93,6 @@ class DaumClipIE(InfoExtractor):
'duration': 3868,
'view_count': int,
},
}, {
'url': 'http://m.tvpot.daum.net/clip/ClipView.tv?clipid=54999425',
'only_matching': True,
}]
def _real_extract(self, url):
@ -122,7 +105,7 @@ class DaumClipIE(InfoExtractor):
'_type': 'url_transparent',
'id': video_id,
'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'),
'description': clip_info.get('contents'),
'duration': int_or_none(clip_info.get('duration')),
@ -136,7 +119,7 @@ class DaumListIE(InfoExtractor):
def _get_entries(self, list_id, list_id_type):
name = None
entries = []
for pagenum in itertools.count(start=1):
for pagenum in itertools.count(1):
list_info = self._download_json(
'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)
@ -189,6 +172,8 @@ class DaumPlaylistIE(DaumListIE):
return self.url_result(url, 'DaumClip')
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')
return self.playlist_result(entries, list_id, name)
@ -210,7 +195,7 @@ class DaumUserIE(DaumListIE):
'info_dict': {
'id': '73801156',
'ext': 'mp4',
'title': '[미공개] 김구라, 오만석이 부릅니다 &#39;오케피&#39; - 마이 리틀 텔레비전 20160116',
'title': '[미공개] 김구라, 오만석이 부릅니다 \'오케피\' - 마이 리틀 텔레비전 20160116',
'upload_date': '20160117',
'description': 'md5:5e91d2d6747f53575badd24bd62b9f36'
},
@ -239,6 +224,7 @@ class DaumUserIE(DaumListIE):
return self.url_result(url, 'DaumPlaylist')
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')
return self.playlist_result(entries, list_id, name)