Merge branch 'daum' of https://github.com/remitamine/youtube-dl into remitamine-daum
authorremitamine <remitamine@gmail.com>
Tue, 29 Dec 2015 09:40:32 +0000 (10:40 +0100)
committerremitamine <remitamine@gmail.com>
Tue, 29 Dec 2015 09:40:32 +0000 (10:40 +0100)
1  2 
youtube_dl/extractor/__init__.py
youtube_dl/extractor/daum.py

index 68c9c12886583941c3b43063953f7dfe7b744ede,99b4be0027d0e46b45a2781230704a32ca183b7a..ec1f801556b529e52fb3530fb730fcd151412c69
@@@ -133,17 -119,14 +133,20 @@@ from .dailymotion import 
      DailymotionUserIE,
      DailymotionCloudIE,
  )
- from .daum import DaumIE
+ from .daum import (
+     DaumIE,
+     DaumClipIE,
+ )
  from .dbtv import DBTVIE
 -from .dcn import DCNIE
 +from .dcn import (
 +    DCNIE,
 +    DCNVideoIE,
 +    DCNLiveIE,
 +    DCNSeasonIE,
 +)
  from .dctp import DctpTvIE
  from .deezer import DeezerPlaylistIE
 +from .democracynow import DemocracynowIE
  from .dfb import DFBIE
  from .dhm import DHMIE
  from .dotsub import DotsubIE
index 9a94cf361170fee712fb6a5e11f139b8da7e3e81,0f5686e0756592a062505557c74a784e1a6a5a83..a083cc0dc9ed44bd6772cd833fcca1f0e452482f
@@@ -2,12 -2,9 +2,13 @@@
  
  from __future__ import unicode_literals
  
- import re
  from .common import InfoExtractor
- from ..compat import (
-     compat_urllib_parse,
+ from ..compat import compat_urllib_parse
 -from ..utils import int_or_none
++from ..utils import (
++    int_or_none,
++    str_to_int,
++    xpath_text,
 +)
  
  
  class DaumIE(InfoExtractor):
      IE_NAME = 'daum.net'
  
      _TESTS = [{
-         'url': 'http://tvpot.daum.net/clip/ClipView.do?clipid=52554690',
-         'info_dict': {
-             'id': '52554690',
-             'ext': 'mp4',
-             'title': 'DOTA 2GETHER 시즌2 6회 - 2부',
-             'description': 'DOTA 2GETHER 시즌2 6회 - 2부',
-             'upload_date': '20130831',
-             'duration': 3868,
-         },
-     }, {
-         # Test for https://github.com/rg3/youtube-dl/issues/7949
-         'url': 'http://tvpot.daum.net/mypot/View.do?ownerid=M1O35s8HPOo0&clipid=73147290',
-         'md5': 'c92d78bcee4424451f1667f275c1dc97',
+         'url': 'http://tvpot.daum.net/v/vab4dyeDBysyBssyukBUjBz',
          'info_dict': {
-             'id': '73147290',
+             'id': 'vab4dyeDBysyBssyukBUjBz',
              'ext': 'mp4',
-             'title': '싸이 - 나팔바지 [유희열의 스케치북] 299회 20151218',
-             'description': '싸이 - 나팔바지',
-             'upload_date': '20151219',
-             'duration': 232,
+             'title': '마크 헌트 vs 안토니오 실바',
+             'description': 'Mark Hunt vs Antonio Silva',
+             'upload_date': '20131217',
+             'duration': 2117,
++            'view_count': int,
++            'comment_count': int,
          },
-     }, {
-         'url': 'http://tvpot.daum.net/v/vab4dyeDBysyBssyukBUjBz',
-         'only_matching': True,
      }, {
          'url': 'http://tvpot.daum.net/v/07dXWRka62Y%24',
          'only_matching': True,
              'id': video_id,
              'title': info.find('TITLE').text,
              'formats': formats,
-             'thumbnail': self._og_search_thumbnail(webpage),
 -            'thumbnail': info.find('THUMB_URL').text,
--            'description': info.find('CONTENTS').text,
-             'duration': int(info.find('DURATION').text),
 -            'duration': int_or_none(info.find('DURATION').text),
++            'thumbnail': xpath_text(info, 'THUMB_URL'),
++            'description': xpath_text(info, 'CONTENTS'),
++            'duration': int_or_none(xpath_text(info, 'DURATION')),
              'upload_date': info.find('REGDTTM').text[:8],
 -    _VALID_URL = r'https?://(?:m\.)?tvpot\.daum\.net/.*?clipid=(?P<id>\d+)'
++            'view_count': str_to_int(xpath_text(info, 'PLAY_CNT')),
++            'comment_count': str_to_int(xpath_text(info, 'COMMENT_CNT')),
+         }
+ class DaumClipIE(InfoExtractor):
 -        clip_info = self._download_json('http://tvpot.daum.net/mypot/json/GetClipInfo.do?clipid=%s' % video_id, video_id)['clip_bean']
++    _VALID_URL = r'https?://(?:m\.)?tvpot\.daum\.net/(?:clip/ClipView.do|mypot/View.do)\?.*?clipid=(?P<id>\d+)'
+     IE_NAME = 'daum.net'
+     _TESTS = [{
+         'url': 'http://tvpot.daum.net/clip/ClipView.do?clipid=52554690',
+         'info_dict': {
+             'id': '52554690',
+             'ext': 'mp4',
+             'title': 'DOTA 2GETHER 시즌2 6회 - 2부',
+             'description': 'DOTA 2GETHER 시즌2 6회 - 2부',
+             'upload_date': '20130831',
+             'duration': 3868,
+             'view_count': int,
+         },
+     }]
+     def _real_extract(self, url):
+         video_id = self._match_id(url)
++        clip_info = self._download_json(
++            'http://tvpot.daum.net/mypot/json/GetClipInfo.do?clipid=%s' % video_id,
++            video_id, 'Downloading clip info')['clip_bean']
+         return {
+             '_type': 'url_transparent',
+             'id': video_id,
+             'url': 'http://tvpot.daum.net/v/%s' % clip_info['vid'],
+             'title': clip_info['title'],
+             'thumbnail': clip_info.get('thumb_url'),
+             'description': clip_info.get('contents'),
+             'duration': int_or_none(clip_info.get('duration')),
+             'upload_date': clip_info.get('up_date')[:8],
+             'view_count': int_or_none(clip_info.get('play_count')),
+             'ie_key': 'Daum',
          }