+from __future__ import unicode_literals
+
import re
-import xml.etree.ElementTree
from .common import InfoExtractor
class AnitubeIE(InfoExtractor):
- IE_NAME = u'anitube.se'
- _VALID_URL = r'http?://(?:www\.)?anitube\.se/video/(?P<id>\d+)'
+ IE_NAME = 'anitube.se'
+ _VALID_URL = r'https?://(?:www\.)?anitube\.se/video/(?P<id>\d+)'
_TEST = {
- u'url': u'http://www.anitube.se/video/36621',
- u'md5': u'0c4e4f1051bf50f5982f829f7230f539',
- u'info_dict': {
- u'id': u'36621',
- u'ext': u'mp4',
- u'title': u'Recorder to Randoseru 01',
+ 'url': 'http://www.anitube.se/video/36621',
+ 'md5': '59d0eeae28ea0bc8c05e7af429998d43',
+ 'info_dict': {
+ 'id': '36621',
+ 'ext': 'mp4',
+ 'title': 'Recorder to Randoseru 01',
+ 'duration': 180.19,
},
+ 'skip': 'Blocked in the US',
}
def _real_extract(self, url):
video_id = mobj.group('id')
webpage = self._download_webpage(url, video_id)
+ key = self._html_search_regex(
+ r'http://www\.anitube\.se/embed/([A-Za-z0-9_-]*)', webpage, 'key')
- key = self._html_search_regex(r'http://www\.anitube\.se/embed/([A-Za-z0-9_-]*)',
- webpage, u'key')
-
- webpage_config = self._download_webpage('http://www.anitube.se/nuevo/econfig.php?key=%s' % key,
- key)
-
- config_xml = xml.etree.ElementTree.fromstring(webpage_config.encode('utf-8'))
+ config_xml = self._download_xml(
+ 'http://www.anitube.se/nuevo/econfig.php?key=%s' % key, key)
video_title = config_xml.find('title').text
-
+ thumbnail = config_xml.find('image').text
+ duration = float(config_xml.find('duration').text)
formats = []
-
video_url = config_xml.find('file')
if video_url is not None:
formats.append({
'format_id': 'sd',
'url': video_url.text,
})
-
video_url = config_xml.find('filehd')
if video_url is not None:
formats.append({
return {
'id': video_id,
'title': video_title,
- 'ext': 'mp4',
+ 'thumbnail': thumbnail,
+ 'duration': duration,
'formats': formats
}