aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/unsupported.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/unsupported.py')
-rw-r--r--hypervideo_dl/extractor/unsupported.py143
1 files changed, 143 insertions, 0 deletions
diff --git a/hypervideo_dl/extractor/unsupported.py b/hypervideo_dl/extractor/unsupported.py
new file mode 100644
index 0000000..620c025
--- /dev/null
+++ b/hypervideo_dl/extractor/unsupported.py
@@ -0,0 +1,143 @@
+from .common import InfoExtractor
+from ..utils import ExtractorError, classproperty, remove_start
+
+
+class UnsupportedInfoExtractor(InfoExtractor):
+ IE_DESC = False
+ URLS = () # Redefine in subclasses
+
+ @classproperty
+ def IE_NAME(cls):
+ return remove_start(super().IE_NAME, 'Known')
+
+ @classproperty
+ def _VALID_URL(cls):
+ return rf'https?://(?:www\.)?(?:{"|".join(cls.URLS)})'
+
+
+LF = '\n '
+
+
+class KnownDRMIE(UnsupportedInfoExtractor):
+ """Sites that are known to use DRM for all their videos
+
+ Add to this list only if:
+ * You are reasonably certain that the site uses DRM for ALL their videos
+ * Multiple users have asked about this site on github/reddit/discord
+ """
+
+ 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',
+ r'nowtv\.it/watch',
+ r'tv\.apple\.com',
+ )
+
+ _TESTS = [{
+ # https://github.com/hypervideo/hypervideo/issues/4309
+ 'url': 'https://peacocktv.com/watch/playback/vod/GMO_00000000073159_01/f9d03003-eb04-3c7f-a7b6-a83ab7eb55bc',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/1719,
+ 'url': 'https://www.channel4.com/programmes/gurren-lagann/on-demand/69960-001',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/1548
+ 'url': 'https://www.channel5.com/show/uk-s-strongest-man-2021/season-2021/episode-1',
+ '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,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/4122
+ 'url': 'https://www.tvnz.co.nz/shows/ice-airport-alaska/episodes/s1-e1',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/1922
+ 'url': 'https://www.oneplus.ch/play/1008188',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/1140
+ 'url': 'https://www.artstation.com/learning/courses/dqQ/character-design-masterclass-with-serge-birault/chapters/Rxn3/introduction',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/3544
+ 'url': 'https://www.philo.com/player/player/vod/Vk9EOjYwODU0ODg5OTY0ODY0OTQ5NA',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/3533
+ 'url': 'https://www.mech-plus.com/player/24892/stream?assetType=episodes&playlist_id=6',
+ 'only_matching': True,
+ }, {
+ 'url': 'https://watch.mech-plus.com/details/25240?playlist_id=6',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/2934
+ 'url': 'https://www.aha.video/player/movie/lucky-man',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/2743
+ 'url': 'https://mubi.com/films/the-night-doctor',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/3287
+ 'url': 'https://www.vootkids.com/movies/chhota-bheem-the-rise-of-kirmada/764459',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/2744
+ 'url': 'https://www.nowtv.it/watch/home/asset/and-just-like-that/skyserie_f8fe979772e8437d8a61ab83b6d293e9/seasons/1/episodes/8/R_126182_HD',
+ 'only_matching': True,
+ }, {
+ # https://github.com/hypervideo/hypervideo/issues/5557
+ 'url': 'https://tv.apple.com/it/show/loot---una-fortuna/umc.cmc.5erbujil1mpazuerhr1udnk45?ctx_brand=tvs.sbd.4000',
+ 'only_matching': True,
+ }]
+
+ def _real_extract(self, url):
+ raise ExtractorError(
+ f'The requested site is known to use DRM protection. '
+ f'It will {self._downloader._format_err("NOT", self._downloader.Styles.EMPHASIS)} be supported.{LF}'
+ f'Please {self._downloader._format_err("DO NOT", self._downloader.Styles.ERROR)} open an issue, '
+ 'unless you have evidence that the video is not DRM protected', expected=True)
+
+
+class KnownPiracyIE(UnsupportedInfoExtractor):
+ """Sites that have been deemed to be piracy
+
+ In order for this to not end up being a catalog of piracy sites,
+ only sites that were once supported should be added to this list
+ """
+
+ URLS = (
+ r'dood\.(?:to|watch|so|pm|wf|re)',
+ )
+
+ _TESTS = [{
+ 'url': 'http://dood.to/e/5s1wmbdacezb',
+ 'only_matching': True,
+ }]
+
+ def _real_extract(self, url):
+ raise ExtractorError(
+ f'This website is no longer supported since it has been determined to be primarily used for piracy.{LF}'
+ f'{self._downloader._format_err("DO NOT", self._downloader.Styles.ERROR)} open issues for it', expected=True)