diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/anitube.py | 59 | 
2 files changed, 60 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index ee3173468..a30de3033 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -1,5 +1,6 @@  from .appletrailers import AppleTrailersIE  from .addanime import AddAnimeIE +from .anitube import AnitubeIE  from .archiveorg import ArchiveOrgIE  from .ard import ARDIE  from .arte import ( diff --git a/youtube_dl/extractor/anitube.py b/youtube_dl/extractor/anitube.py new file mode 100644 index 000000000..2954966a6 --- /dev/null +++ b/youtube_dl/extractor/anitube.py @@ -0,0 +1,59 @@ +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+)' + +    _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', +        }, +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, 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, 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')) + +        video_title = config_xml.find('title').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({ +                'format_id': 'hd', +                'url': video_url.text, +            }) + +        return { +            'id': video_id, +            'title': video_title, +            'ext': 'mp4', +            'formats': formats +        } | 
