1
0
mirror of https://github.com/l1ving/youtube-dl synced 2024-11-22 01:32:51 +08:00

[videoweed] Simplify

This commit is contained in:
Sergey M․ 2014-04-05 15:32:55 +07:00
parent d6e40507d0
commit 91745595d3
2 changed files with 12 additions and 54 deletions

View File

@ -276,6 +276,7 @@ from .videodetective import VideoDetectiveIE
from .videolecturesnet import VideoLecturesNetIE from .videolecturesnet import VideoLecturesNetIE
from .videofyme import VideofyMeIE from .videofyme import VideofyMeIE
from .videopremium import VideoPremiumIE from .videopremium import VideoPremiumIE
from .videoweed import VideoWeedIE
from .vimeo import ( from .vimeo import (
VimeoIE, VimeoIE,
VimeoChannelIE, VimeoChannelIE,
@ -284,7 +285,6 @@ from .vimeo import (
VimeoGroupsIE, VimeoGroupsIE,
VimeoReviewIE, VimeoReviewIE,
) )
from .videoweed import VideoweedIE
from .vine import VineIE from .vine import VineIE
from .viki import VikiIE from .viki import VikiIE
from .vk import VKIE from .vk import VKIE

View File

@ -1,69 +1,27 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import re from .novamov import NovaMovIE
from .common import InfoExtractor
from ..utils import (
ExtractorError,
compat_urlparse
)
class VideoweedIE(InfoExtractor): class VideoWeedIE(NovaMovIE):
IE_NAME = 'videoweed' IE_NAME = 'videoweed'
IE_DESC = 'VideoWEED' IE_DESC = 'VideoWeed'
_VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'videoweed\.(?:es|com)'}
#_VALID_URL = r'http://(?:(?:www\.)?%(host)s/file/|(?:(?:embed|www)\.)%(host)s/embed\.php\?(?:.*?&)?v=)(?P<videoid>[a-z\d]{13})' % {'host': 'videoweed\.com'}
_VALID_URL =r'http://(?:www\.)videoweed\.es/file/(?P<id>[^"]+)'
_HOST = 'www.videoweed.es' _HOST = 'www.videoweed.es'
_FILE_DELETED_REGEX = r'>This file no longer exists on our servers.</' _FILE_DELETED_REGEX = r'>This file no longer exists on our servers.<'
_FILEKEY_REGEX = r'flashvars\.filekey="(?P<filekey>[^"]+)";' _FILEKEY_REGEX = r'flashvars\.filekey="(?P<filekey>[^"]+)";'
_TITLE_REGEX = r'<h1 class="text_shadow">([^<]+)</h1>' _TITLE_REGEX = r'<h1 class="text_shadow">([^<]+)</h1>'
_DESCRIPTION_REGEX = r'(?s)<div class="v_tab blockborder rounded5" id="v_tab1">\s*<h3>[^<]+</h3><p>([^<]+)</p>'
_TEST = { _TEST = {
'url': 'http://www.videoweed.es/file/89868b4aa3bdf', 'url': 'http://www.videoweed.es/file/b42178afbea14',
'md5': '7205f346a52bbeba427603ba10d4b935', 'md5': 'abd31a2132947262c50429e1d16c1bfd',
'info_dict': { 'info_dict': {
'id': '89868b4aa3bdf', 'id': 'b42178afbea14',
'ext': 'flv', 'ext': 'flv',
'title': 'law and order svu 103 dvdrip', 'title': 'optical illusion dissapeared image magic illusion',
'description': '' 'description': ''
}, },
'skip': '"Invalid token" errors abound (in web interface as well as youtube-dl, there is nothing we can do about it.)'
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
page = self._download_webpage(
'http://%s/file/%s' % (self._HOST, video_id), video_id, 'Downloading video page')
if re.search(self._FILE_DELETED_REGEX, page) is not None:
raise ExtractorError(u'Video %s does not exist' % video_id, expected=True)
filekey = self._search_regex(self._FILEKEY_REGEX, page, 'filekey')
title = self._html_search_regex(self._TITLE_REGEX, page, 'title', fatal=False)
description = self._html_search_regex(self._DESCRIPTION_REGEX, page, 'description', default='', fatal=False)
api_response = self._download_webpage(
'http://%s/api/player.api.php?key=%s&file=%s' % (self._HOST, filekey, video_id), video_id,
'Downloading video api response')
response = compat_urlparse.parse_qs(api_response)
if 'error_msg' in response:
raise ExtractorError('%s returned error: %s' % (self.IE_NAME, response['error_msg'][0]), expected=True)
video_url = response['url'][0]
return {
'id': video_id,
'url': video_url,
'title': title,
'description': description
} }