2014-09-05 02:24:30 -07:00
|
|
|
# coding: utf-8
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
2014-09-05 05:53:53 -07:00
|
|
|
|
2014-09-05 02:24:30 -07:00
|
|
|
class DBTVIE(InfoExtractor):
|
2019-07-12 15:26:46 -07:00
|
|
|
_VALID_URL = r'https?://(?:www\.)?dagbladet\.no/video/(?:(?:embed|(?P<display_id>[^/]+))/)?(?P<id>[0-9A-Za-z_-]{11}|[a-zA-Z0-9]{8})'
|
2015-11-27 18:44:13 -08:00
|
|
|
_TESTS = [{
|
2019-07-12 15:26:46 -07:00
|
|
|
'url': 'https://www.dagbladet.no/video/PynxJnNWChE/',
|
|
|
|
'md5': 'b8f850ba1860adbda668d367f9b77699',
|
2014-09-05 05:53:53 -07:00
|
|
|
'info_dict': {
|
2019-07-12 15:26:46 -07:00
|
|
|
'id': 'PynxJnNWChE',
|
2014-09-05 05:53:53 -07:00
|
|
|
'ext': 'mp4',
|
|
|
|
'title': 'Skulle teste ut fornøyelsespark, men kollegaen var bare opptatt av bikinikroppen',
|
2019-07-12 15:26:46 -07:00
|
|
|
'description': 'md5:49cc8370e7d66e8a2ef15c3b4631fd3f',
|
2017-01-02 04:08:07 -08:00
|
|
|
'thumbnail': r're:https?://.*\.jpg',
|
2019-07-12 15:26:46 -07:00
|
|
|
'upload_date': '20160916',
|
|
|
|
'duration': 69,
|
|
|
|
'uploader_id': 'UCk5pvsyZJoYJBd7_oFPTlRQ',
|
|
|
|
'uploader': 'Dagbladet',
|
2016-07-11 08:30:24 -07:00
|
|
|
},
|
2019-07-12 15:26:46 -07:00
|
|
|
'add_ie': ['Youtube']
|
2015-11-27 18:44:13 -08:00
|
|
|
}, {
|
2019-07-12 15:26:46 -07:00
|
|
|
'url': 'https://www.dagbladet.no/video/embed/xlGmyIeN9Jo/?autoplay=false',
|
2015-11-27 18:44:13 -08:00
|
|
|
'only_matching': True,
|
|
|
|
}, {
|
2019-07-12 15:26:46 -07:00
|
|
|
'url': 'https://www.dagbladet.no/video/truer-iran-bor-passe-dere/PalfB2Cw',
|
2016-07-11 08:30:24 -07:00
|
|
|
'only_matching': True,
|
2015-11-27 18:44:13 -08:00
|
|
|
}]
|
2014-09-05 02:24:30 -07:00
|
|
|
|
2016-08-17 03:45:24 -07:00
|
|
|
@staticmethod
|
|
|
|
def _extract_urls(webpage):
|
|
|
|
return [url for _, url in re.findall(
|
2019-07-12 15:26:46 -07:00
|
|
|
r'<iframe[^>]+src=(["\'])((?:https?:)?//(?:www\.)?dagbladet\.no/video/embed/(?:[0-9A-Za-z_-]{11}|[a-zA-Z0-9]{8}).*?)\1',
|
2016-08-17 03:45:24 -07:00
|
|
|
webpage)]
|
|
|
|
|
2014-09-05 05:53:53 -07:00
|
|
|
def _real_extract(self, url):
|
2019-07-12 15:26:46 -07:00
|
|
|
display_id, video_id = re.match(self._VALID_URL, url).groups()
|
|
|
|
info = {
|
2016-07-11 08:30:24 -07:00
|
|
|
'_type': 'url_transparent',
|
|
|
|
'id': video_id,
|
2014-09-05 05:53:53 -07:00
|
|
|
'display_id': display_id,
|
|
|
|
}
|
2019-07-12 15:26:46 -07:00
|
|
|
if len(video_id) == 11:
|
|
|
|
info.update({
|
|
|
|
'url': video_id,
|
|
|
|
'ie_key': 'Youtube',
|
|
|
|
})
|
|
|
|
else:
|
|
|
|
info.update({
|
|
|
|
'url': 'jwplatform:' + video_id,
|
|
|
|
'ie_key': 'JWPlatform',
|
|
|
|
})
|
|
|
|
return info
|