|
@@ -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)?(?:#.*)?$'
|