1 from .common
import InfoExtractor
2 from ..utils
import ExtractorError
, classproperty
, remove_start
5 class UnsupportedInfoExtractor(InfoExtractor
):
7 URLS
= () # Redefine in subclasses
11 return remove_start(super().IE_NAME
, 'Known')
15 return rf
'https?://(?:www\.)?(?:{"|".join(cls.URLS)})'
21 class KnownDRMIE(UnsupportedInfoExtractor
):
22 """Sites that are known to use DRM for all their videos
24 Add to this list only if:
25 * You are reasonably certain that the site uses DRM for ALL their videos
26 * Multiple users have asked about this site on github/discord
31 r
'channel(?:4|5)\.com',
33 r
'(?:[\w\.]+\.)?disneyplus\.com',
34 r
'open\.spotify\.com/(?:track|playlist|album|artist)',
37 r
'artstation\.com/learning/courses',
39 r
'(?:[\w\.]+\.)?mech-plus\.com',
47 r
'resource\.inkryptvideos\.com',
49 r
'amazon\.(?:\w{2}\.)?\w+/gp/video',
50 r
'music\.amazon\.(?:\w{2}\.)?\w+',
51 r
'(?:watch|front)\.njpwworld\.com',
56 # https://github.com/yt-dlp/yt-dlp/issues/4309
57 'url': 'https://peacocktv.com/watch/playback/vod/GMO_00000000073159_01/f9d03003-eb04-3c7f-a7b6-a83ab7eb55bc',
58 'only_matching': True,
60 # https://github.com/yt-dlp/yt-dlp/issues/1719,
61 'url': 'https://www.channel4.com/programmes/gurren-lagann/on-demand/69960-001',
62 'only_matching': True,
64 # https://github.com/yt-dlp/yt-dlp/issues/1548
65 'url': 'https://www.channel5.com/show/uk-s-strongest-man-2021/season-2021/episode-1',
66 'only_matching': True,
68 'url': r
'https://hsesn.apps.disneyplus.com',
69 'only_matching': True,
71 'url': r
'https://www.disneyplus.com',
72 'only_matching': True,
74 'url': 'https://open.spotify.com/artist/',
75 'only_matching': True,
77 'url': 'https://open.spotify.com/track/',
78 'only_matching': True,
80 # https://github.com/yt-dlp/yt-dlp/issues/4122
81 'url': 'https://www.tvnz.co.nz/shows/ice-airport-alaska/episodes/s1-e1',
82 'only_matching': True,
84 # https://github.com/yt-dlp/yt-dlp/issues/1922
85 'url': 'https://www.oneplus.ch/play/1008188',
86 'only_matching': True,
88 # https://github.com/yt-dlp/yt-dlp/issues/1140
89 'url': 'https://www.artstation.com/learning/courses/dqQ/character-design-masterclass-with-serge-birault/chapters/Rxn3/introduction',
90 'only_matching': True,
92 # https://github.com/yt-dlp/yt-dlp/issues/3544
93 'url': 'https://www.philo.com/player/player/vod/Vk9EOjYwODU0ODg5OTY0ODY0OTQ5NA',
94 'only_matching': True,
96 # https://github.com/yt-dlp/yt-dlp/issues/3533
97 'url': 'https://www.mech-plus.com/player/24892/stream?assetType=episodes&playlist_id=6',
98 'only_matching': True,
100 'url': 'https://watch.mech-plus.com/details/25240?playlist_id=6',
101 'only_matching': True,
103 # https://github.com/yt-dlp/yt-dlp/issues/2934
104 'url': 'https://www.aha.video/player/movie/lucky-man',
105 'only_matching': True,
107 # https://github.com/yt-dlp/yt-dlp/issues/2743
108 'url': 'https://mubi.com/films/the-night-doctor',
109 'only_matching': True,
111 # https://github.com/yt-dlp/yt-dlp/issues/3287
112 'url': 'https://www.vootkids.com/movies/chhota-bheem-the-rise-of-kirmada/764459',
113 'only_matching': True,
115 # https://github.com/yt-dlp/yt-dlp/issues/2744
116 'url': 'https://www.nowtv.it/watch/home/asset/and-just-like-that/skyserie_f8fe979772e8437d8a61ab83b6d293e9/seasons/1/episodes/8/R_126182_HD',
117 'only_matching': True,
119 # https://github.com/yt-dlp/yt-dlp/issues/5557
120 'url': 'https://tv.apple.com/it/show/loot---una-fortuna/umc.cmc.5erbujil1mpazuerhr1udnk45?ctx_brand=tvs.sbd.4000',
121 'only_matching': True,
123 # https://github.com/yt-dlp/yt-dlp/issues/3072
124 'url': 'https://www.joyn.de/play/serien/clannad/1-1-wo-die-kirschblueten-fallen',
125 'only_matching': True,
127 # https://github.com/yt-dlp/yt-dlp/issues/7323
128 'url': 'https://music.amazon.co.jp/albums/B088Y368TK',
129 'only_matching': True,
131 # https://github.com/yt-dlp/yt-dlp/issues/7323
132 'url': 'https://www.amazon.co.jp/gp/video/detail/B09X5HBYRS/',
133 'only_matching': True,
135 # https://github.com/yt-dlp/yt-dlp/issues/6125
136 'url': 'https://www.primevideo.com/region/eu/detail/0H3DDB4KBJFNDCKKLHNRLRLVKQ/ref=atv_br_def_r_br_c_unkc_1_10',
137 'only_matching': True,
139 # https://github.com/yt-dlp/yt-dlp/issues/5740
140 'url': 'https://resource.inkryptvideos.com/v2-a83ns52/iframe/index.html#video_id=7999ea0f6e03439eb40d056258c2d736&otp=xxx',
141 'only_matching': True,
143 # https://github.com/yt-dlp/yt-dlp/issues/5767
144 'url': 'https://www.hulu.com/movie/anthem-6b25fac9-da2b-45a3-8e09-e4156b0471cc',
145 'only_matching': True,
147 # https://github.com/yt-dlp/yt-dlp/pull/8570
148 'url': 'https://watch.njpwworld.com/player/36447/series?assetType=series',
149 'only_matching': True,
151 'url': 'https://front.njpwworld.com/p/s_series_00563_16_bs',
152 'only_matching': True,
154 'url': 'https://www.qub.ca/vrai/l-effet-bocuse-d-or/saison-1/l-effet-bocuse-d-or-saison-1-bande-annonce-1098225063',
155 'only_matching': True,
158 def _real_extract(self
, url
):
159 raise ExtractorError(
160 f
'The requested site is known to use DRM protection. '
161 f
'It will {self._downloader._format_err("NOT", self._downloader.Styles.EMPHASIS)} be supported.{LF}'
162 f
'Please {self._downloader._format_err("DO NOT", self._downloader.Styles.ERROR)} open an issue, '
163 'unless you have evidence that the video is not DRM protected', expected
=True)
166 class KnownPiracyIE(UnsupportedInfoExtractor
):
167 """Sites that have been deemed to be piracy
169 In order for this to not end up being a catalog of piracy sites,
170 only sites that were once supported should be added to this list
174 r
'dood\.(?:to|watch|so|pm|wf|re)',
175 # Sites youtube-dl supports, but we won't
178 r
'hentai\.animestigma\.com',
187 r
'xvideosharing\.com',
188 r
'(?:\w+\.)?viidshar\.com',
192 r
'einthusan\.(?:tv|com|ca)',
197 'url': 'http://dood.to/e/5s1wmbdacezb',
198 'only_matching': True,
200 'url': 'https://thisav.com/en/terms',
201 'only_matching': True,
204 def _real_extract(self
, url
):
205 raise ExtractorError(
206 f
'This website is no longer supported since it has been determined to be primarily used for piracy.{LF}'
207 f
'{self._downloader._format_err("DO NOT", self._downloader.Styles.ERROR)} open issues for it', expected
=True)