Compare commits

...

11 Commits

Author SHA1 Message Date
DataGhost
7612d7985a
Merge a712000b9b into e1b3fa242c 2024-07-28 01:34:57 +09:00
dirkf
a712000b9b
Oh come on! 2023-01-26 17:12:21 +00:00
dirkf
ca23ea311f
Update URL pattern
Force CI tests
2023-01-26 17:09:06 +00:00
DataGhost
a7de6d54ed Changed to m3u8_native entry protocol and adjusted md5 accordingly 2022-05-30 15:39:32 +02:00
DataGhost
60bbab1022 Changed quality parameter to preference to accodomate sorting the m3u8 streams 2022-05-30 15:10:04 +02:00
DataGhost
7784d3c37e Fixed wrong variable name that shouldn't have been there 2022-05-30 11:46:41 +02:00
DataGhost
edfcc50a7c Added 1080p format to qualities 2022-05-30 11:40:10 +02:00
DataGhost
71e630eebf Changed m3u8 format handling 2022-05-30 11:39:50 +02:00
DataGhost
bb4d3baa67 Updated URL regex and tests to include new URLs valid since the new site layout 2022-05-28 00:21:29 +02:00
DataGhost
d5e9a95cce Added test case for 'm3u8-video' 2022-05-28 00:20:39 +02:00
DataGhost
181112c218 Fixed all recent videos downloading with .m3u8 extension 2022-05-27 23:34:14 +02:00

View File

@ -3,13 +3,14 @@ from __future__ import unicode_literals
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
determine_ext,
int_or_none, int_or_none,
qualities, qualities,
) )
class DumpertIE(InfoExtractor): class DumpertIE(InfoExtractor):
_VALID_URL = r'(?P<protocol>https?)://(?:(?:www|legacy)\.)?dumpert\.nl/(?:mediabase|embed|item)/(?P<id>[0-9]+[/_][0-9a-zA-Z]+)' _VALID_URL = r'(?P<protocol>https?)://(?:(?:www|legacy)\.)?dumpert\.nl(?:/(?:mediabase|embed|item)/|(?:/toppers|/latest)?/?\?selectedId=)(?P<id>[0-9]+[/_][0-9a-zA-Z]+)'
_TESTS = [{ _TESTS = [{
'url': 'https://www.dumpert.nl/item/6646981_951bc60f', 'url': 'https://www.dumpert.nl/item/6646981_951bc60f',
'md5': '1b9318d7d5054e7dcb9dc7654f21d643', 'md5': '1b9318d7d5054e7dcb9dc7654f21d643',
@ -29,6 +30,25 @@ class DumpertIE(InfoExtractor):
}, { }, {
'url': 'http://legacy.dumpert.nl/embed/6675421/dc440fe7', 'url': 'http://legacy.dumpert.nl/embed/6675421/dc440fe7',
'only_matching': True, 'only_matching': True,
}, {
'url': 'https://www.dumpert.nl/item/100031688_b317a185',
'md5': '34a0c10c91d281141b959b27ee862b8f',
'info_dict': {
'id': '100031688/b317a185',
'ext': 'mp4',
'title': 'Epic schijnbeweging',
'description': '<p>Die zag je niet eh</p>',
'thumbnail': r're:^https?://.*\.(?:jpg|png)$',
},
}, {
'url': 'https://www.dumpert.nl/toppers?selectedId=100031688_b317a185',
'only_matching': True,
}, {
'url': 'https://www.dumpert.nl/latest?selectedId=100031688_b317a185',
'only_matching': True,
}, {
'url': 'https://www.dumpert.nl/?selectedId=100031688_b317a185',
'only_matching': True,
}] }]
def _real_extract(self, url): def _real_extract(self, url):
@ -39,17 +59,24 @@ class DumpertIE(InfoExtractor):
title = item['title'] title = item['title']
media = next(m for m in item['media'] if m.get('mediatype') == 'VIDEO') media = next(m for m in item['media'] if m.get('mediatype') == 'VIDEO')
quality = qualities(['flv', 'mobile', 'tablet', '720p']) quality = qualities(['flv', 'mobile', 'tablet', '720p', '1080p'])
formats = [] formats = []
for variant in media.get('variants', []): for variant in media.get('variants', []):
uri = variant.get('uri') uri = variant.get('uri')
if not uri: if not uri:
continue continue
version = variant.get('version') version = variant.get('version')
preference = quality(version)
ext = determine_ext(uri)
if ext == 'm3u8':
formats.extend(self._extract_m3u8_formats(
uri, video_id, ext='mp4', entry_protocol='m3u8_native',
preference=preference))
else:
formats.append({ formats.append({
'url': uri, 'url': uri,
'format_id': version, 'format_id': version,
'quality': quality(version), 'preference': preference,
}) })
self._sort_formats(formats) self._sort_formats(formats)