1
0
mirror of https://github.com/l1ving/youtube-dl synced 2025-03-13 07:17:29 +08:00

[Noovo] Add new extractor

This commit is contained in:
Frederic Bournival 2017-04-19 17:43:32 -04:00
parent ab87c26009
commit fcaf3329e2
2 changed files with 58 additions and 0 deletions

View File

@ -663,6 +663,7 @@ from .nintendo import NintendoIE
from .njpwworld import NJPWWorldIE
from .nobelprize import NobelPrizeIE
from .noco import NocoIE
from .noovo import NoovoIE
from .normalboots import NormalbootsIE
from .nosvideo import NosVideoIE
from .nova import NovaIE

View File

@ -0,0 +1,57 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import ExtractorError
class NoovoIE(InfoExtractor):
_VALID_URL = r'https?://(?:[a-z0-9\-]+\.)?noovo\.ca/videos/(?P<id>[a-z0-9\-]+/[a-z0-9\-]+)'
_TESTS = [{
'url': 'http://noovo.ca/videos/rpm-plus/chrysler-imperial',
'md5': '2fcc04d0a8f4a853fad91233c2fdd121',
'info_dict': {
'id': '5386045029001',
'description': 'Antoine présente des véhicules qu\'il aperçoit sur la rue.',
'ext': 'mp4',
'timestamp': 1491399228,
'title': 'Chrysler Imperial',
'upload_date': '20170405',
'uploader_id': '618566855001'
}
}, {
'url': 'http://interventions.noovo.ca/911/video/intoxication-aux-drogues-dures/?autoplay=1',
'md5': '0ca96cef6d6b3a3a4836a05936964da4',
'info_dict': {
'id': '5397570276001',
'description': 'md5:573bb7da6ffbfa310e2ebab88688e5ad',
'ext': 'mp4',
'timestamp': 1492112546,
'title': 'md5:5015fe58f797e58abdda1c6711530405',
'upload_date': '20170413',
'uploader_id': '618566855001'
}
}]
TEMPLATE_API_URL = 'http://api.noovo.ca/api/v1/pages/single-episode/%s'
BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/618566855001/default_default/index.html?videoId=%s'
def _real_extract(self, url):
video_id = self._match_id(url)
api_url = self.TEMPLATE_API_URL % video_id
api_content = self._download_webpage(api_url, video_id)
brightcove_id = self._search_regex(
r'"?brightcoveId"?\s*:\s*"?(\d+)', api_content, 'brightcove id'
)
if brightcove_id:
return self.url_result(
self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, 'BrightcoveNew', brightcove_id
)
else:
raise ExtractorError('Unable to extract brightcove id from api')