5 changed files with 88 additions and 6 deletions
Split View
Diff Options
-
3test/test_utils.py
-
1youtube_dl/extractor/__init__.py
-
53youtube_dl/extractor/cinchcast.py
-
20youtube_dl/extractor/generic.py
-
17youtube_dl/utils.py
@ -0,0 +1,53 @@ |
|||
# coding: utf-8 |
|||
from __future__ import unicode_literals |
|||
|
|||
from .common import InfoExtractor |
|||
from ..utils import ( |
|||
int_or_none, |
|||
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, |
|||
} |
Write
Preview
Loading…
Cancel
Save