mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-08-26 09:11:58 +02:00
[extractor/unsupported] Raise error on known DRM-only sites (#5483)
Authored by: coletdjnz
This commit is contained in:
parent
efdc45a6ea
commit
d9df9b4919
@ -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,
|
||||||
|
93
yt_dlp/extractor/unsupported.py
Normal file
93
yt_dlp/extractor/unsupported.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user