diff options
Diffstat (limited to 'youtube_dl/extractor/cinchcast.py')
| -rw-r--r-- | youtube_dl/extractor/cinchcast.py | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/cinchcast.py b/youtube_dl/extractor/cinchcast.py new file mode 100644 index 000000000..0c9a24bef --- /dev/null +++ b/youtube_dl/extractor/cinchcast.py @@ -0,0 +1,52 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( +    unified_strdate, +    xpath_text, +) + + +class CinchcastIE(InfoExtractor): +    _VALID_URL = r'https?://player\.cinchcast\.com/.*?assetId=(?P<id>[0-9]+)' +    _TEST = { +        # Actual test is run in generic, look for undergroundwellness +        'url': 'http://player.cinchcast.com/?platformId=1&assetType=single&assetId=7141703', +        'only_matching': True, +    } + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        doc = self._download_xml( +            'http://www.blogtalkradio.com/playerasset/mrss?assetType=single&assetId=%s' % video_id, +            video_id) + +        item = doc.find('.//item') +        title = xpath_text(item, './title', fatal=True) +        date_str = xpath_text( +            item, './{http://developer.longtailvideo.com/trac/}date') +        upload_date = unified_strdate(date_str, day_first=False) +        # duration is present but wrong +        formats = [] +        formats.append({ +            'format_id': 'main', +            'url': item.find( +                './{http://search.yahoo.com/mrss/}content').attrib['url'], +        }) +        backup_url = xpath_text( +            item, './{http://developer.longtailvideo.com/trac/}backupContent') +        if backup_url: +            formats.append({ +                'preference': 2,  # seems to be more reliable +                'format_id': 'backup', +                'url': backup_url, +            }) +        self._sort_formats(formats) + +        return { +            'id': video_id, +            'title': title, +            'upload_date': upload_date, +            'formats': formats, +        } | 
