1
1
mirror of https://github.com/ytdl-org/youtube-dl synced 2024-12-27 12:35:52 +01:00
youtube-dl/youtube_dl/extractor/dbtv.py

58 lines
1.9 KiB
Python
Raw Normal View History

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