[extractor/unsupported] Raise error on known DRM-only sites (#5483)

Authored by: coletdjnz
This commit is contained in:
Matthew 2022-11-09 22:09:13 +13:00 committed by GitHub
parent efdc45a6ea
commit d9df9b4919
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 94 additions and 0 deletions

View File

@ -2023,6 +2023,7 @@
from .unistra import UnistraIE from .unistra import UnistraIE
from .unity import UnityIE from .unity import UnityIE
from .unscripted import UnscriptedNewsVideoIE from .unscripted import UnscriptedNewsVideoIE
from .unsupported import KnownDRMIE
from .uol import UOLIE from .uol import UOLIE
from .uplynk import ( from .uplynk import (
UplynkIE, UplynkIE,

View File

@ -0,0 +1,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)