diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2013-06-23 22:20:45 +0200 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2013-06-23 22:20:45 +0200 | 
| commit | 97d2db017c67bedd1e50d149b51d60fcbfd26041 (patch) | |
| tree | 8f276b638b475301c08240e53320f848cae92643 | |
| parent | 2c64df03991e1d65b0d12d4068267d69d918535d (diff) | |
[myspass] Move into own file and default to mp4 ext
| -rwxr-xr-x | youtube_dl/InfoExtractors.py | 54 | ||||
| -rw-r--r-- | youtube_dl/extractor/myspass.py | 64 | 
2 files changed, 65 insertions, 53 deletions
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 95d65b377..c3d0e6191 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -39,6 +39,7 @@ from .extractor.keek import KeekIE  from .extractor.metacafe import MetacafeIE  from .extractor.mixcloud import MixcloudIE  from .extractor.mtv import MTVIE +from .extractor.myspass import MySpassIE  from .extractor.myvideo import MyVideoIE  from .extractor.nba import NBAIE  from .extractor.statigram import StatigramIE @@ -88,59 +89,6 @@ from .extractor.zdf import ZDFIE -class MySpassIE(InfoExtractor): -    _VALID_URL = r'http://www.myspass.de/.*' - -    def _real_extract(self, url): -        META_DATA_URL_TEMPLATE = 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=%s' - -        # video id is the last path element of the URL -        # usually there is a trailing slash, so also try the second but last -        url_path = compat_urllib_parse_urlparse(url).path -        url_parent_path, video_id = os.path.split(url_path) -        if not video_id: -            _, video_id = os.path.split(url_parent_path) - -        # get metadata -        metadata_url = META_DATA_URL_TEMPLATE % video_id -        metadata_text = self._download_webpage(metadata_url, video_id) -        metadata = xml.etree.ElementTree.fromstring(metadata_text.encode('utf-8')) - -        # extract values from metadata -        url_flv_el = metadata.find('url_flv') -        if url_flv_el is None: -            raise ExtractorError(u'Unable to extract download url') -        video_url = url_flv_el.text -        extension = os.path.splitext(video_url)[1][1:] -        title_el = metadata.find('title') -        if title_el is None: -            raise ExtractorError(u'Unable to extract title') -        title = title_el.text -        format_id_el = metadata.find('format_id') -        if format_id_el is None: -            format = ext -        else: -            format = format_id_el.text -        description_el = metadata.find('description') -        if description_el is not None: -            description = description_el.text -        else: -            description = None -        imagePreview_el = metadata.find('imagePreview') -        if imagePreview_el is not None: -            thumbnail = imagePreview_el.text -        else: -            thumbnail = None -        info = { -            'id': video_id, -            'url': video_url, -            'title': title, -            'ext': extension, -            'format': format, -            'thumbnail': thumbnail, -            'description': description -        } -        return [info]  class SpiegelIE(InfoExtractor):      _VALID_URL = r'https?://(?:www\.)?spiegel\.de/video/[^/]*-(?P<videoID>[0-9]+)(?:\.html)?(?:#.*)?$' diff --git a/youtube_dl/extractor/myspass.py b/youtube_dl/extractor/myspass.py new file mode 100644 index 000000000..7b016bb86 --- /dev/null +++ b/youtube_dl/extractor/myspass.py @@ -0,0 +1,64 @@ +import os.path +import xml.etree.ElementTree + +from .common import InfoExtractor +from ..utils import ( +    compat_urllib_parse_urlparse, + +    ExtractorError, +) + + +class MySpassIE(InfoExtractor): +    _VALID_URL = r'http://www.myspass.de/.*' + +    def _real_extract(self, url): +        META_DATA_URL_TEMPLATE = 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=%s' + +        # video id is the last path element of the URL +        # usually there is a trailing slash, so also try the second but last +        url_path = compat_urllib_parse_urlparse(url).path +        url_parent_path, video_id = os.path.split(url_path) +        if not video_id: +            _, video_id = os.path.split(url_parent_path) + +        # get metadata +        metadata_url = META_DATA_URL_TEMPLATE % video_id +        metadata_text = self._download_webpage(metadata_url, video_id) +        metadata = xml.etree.ElementTree.fromstring(metadata_text.encode('utf-8')) + +        # extract values from metadata +        url_flv_el = metadata.find('url_flv') +        if url_flv_el is None: +            raise ExtractorError(u'Unable to extract download url') +        video_url = url_flv_el.text +        extension = os.path.splitext(video_url)[1][1:] +        title_el = metadata.find('title') +        if title_el is None: +            raise ExtractorError(u'Unable to extract title') +        title = title_el.text +        format_id_el = metadata.find('format_id') +        if format_id_el is None: +            format = 'mp4' +        else: +            format = format_id_el.text +        description_el = metadata.find('description') +        if description_el is not None: +            description = description_el.text +        else: +            description = None +        imagePreview_el = metadata.find('imagePreview') +        if imagePreview_el is not None: +            thumbnail = imagePreview_el.text +        else: +            thumbnail = None +        info = { +            'id': video_id, +            'url': video_url, +            'title': title, +            'ext': extension, +            'format': format, +            'thumbnail': thumbnail, +            'description': description +        } +        return [info]  | 
