1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
from .common import InfoExtractor
from ..utils import classproperty, ExtractorError
class KnownDRMIE(InfoExtractor):
IE_DESC = False
IE_NAME = 'unsupported:drm'
UNSUPPORTED_URLS = (
r'play\.hbomax\.com',
r'channel(?:4|5)\.com',
r'peacocktv\.com',
r'(?:[\w\.]+\.)?disneyplus\.com',
r'open\.spotify\.com/(?:track|playlist|album|artist)',
r'tvnz\.co\.nz',
r'oneplus\.ch',
r'artstation\.com/learning/courses',
r'philo\.com',
r'(?:[\w\.]+\.)?mech-plus\.com',
r'aha\.video',
r'mubi\.com',
r'vootkids\.com'
)
_TESTS = [{
# https://github.com/yt-dlp/yt-dlp/issues/4309
'url': 'https://www.peacocktv.com',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/1719,
'url': 'https://www.channel4.com',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/1548
'url': 'https://www.channel5.com',
'only_matching': True,
}, {
'url': r'https://hsesn.apps.disneyplus.com',
'only_matching': True,
}, {
'url': r'https://www.disneyplus.com',
'only_matching': True,
}, {
'url': 'https://open.spotify.com/artist/',
'only_matching': True,
}, {
'url': 'https://open.spotify.com/track/',
'only_matching': True,
}, {
# TVNZ: https://github.com/yt-dlp/yt-dlp/issues/4122
'url': 'https://tvnz.co.nz',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/1922
'url': 'https://www.oneplus.ch',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/1140
'url': 'https://www.artstation.com/learning/courses/',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/3544
'url': 'https://www.philo.com',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/3533
'url': 'https://www.mech-plus.com/',
'only_matching': True,
}, {
'url': 'https://watch.mech-plus.com/',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/2934
'url': 'https://www.aha.video',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/2743
'url': 'https://mubi.com',
'only_matching': True,
}, {
# https://github.com/yt-dlp/yt-dlp/issues/3287
'url': 'https://www.vootkids.com',
'only_matching': True,
}]
@classproperty
def _VALID_URL(cls):
return rf'https?://(?:www\.)?(?:{"|".join(cls.UNSUPPORTED_URLS)})'
def _real_extract(self, url):
raise ExtractorError(
f'The requested site is known to use DRM protection. It will {self._downloader._format_err("NOT", self._downloader.Styles.EMPHASIS)} be supported by yt-dlp. '
f'Please {self._downloader._format_err("DO NOT", self._downloader.Styles.ERROR)} open an issue, unless you have evidence that it is not DRM protected.',
expected=True)
|