|
|
|
@ -7,6 +7,8 @@ import urllib.parse
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
from ..utils import ExtractorError, parse_iso8601, try_get
|
|
|
|
|
|
|
|
|
|
_BASE_URL_RE = r'https?://(?:www\.)?(?:watchnebula\.com|nebula\.app|nebula\.tv)'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NebulaBaseIE(InfoExtractor):
|
|
|
|
|
_NETRC_MACHINE = 'watchnebula'
|
|
|
|
@ -148,7 +150,7 @@ class NebulaBaseIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NebulaIE(NebulaBaseIE):
|
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?:watchnebula\.com|nebula\.app)/videos/(?P<id>[-\w]+)'
|
|
|
|
|
_VALID_URL = rf'{_BASE_URL_RE}/videos/(?P<id>[-\w]+)'
|
|
|
|
|
_TESTS = [
|
|
|
|
|
{
|
|
|
|
|
'url': 'https://nebula.app/videos/that-time-disney-remade-beauty-and-the-beast',
|
|
|
|
@ -246,7 +248,7 @@ class NebulaIE(NebulaBaseIE):
|
|
|
|
|
|
|
|
|
|
class NebulaSubscriptionsIE(NebulaBaseIE):
|
|
|
|
|
IE_NAME = 'nebula:subscriptions'
|
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?:watchnebula\.com|nebula\.app)/myshows'
|
|
|
|
|
_VALID_URL = rf'{_BASE_URL_RE}/myshows'
|
|
|
|
|
_TESTS = [
|
|
|
|
|
{
|
|
|
|
|
'url': 'https://nebula.app/myshows',
|
|
|
|
@ -274,7 +276,7 @@ class NebulaSubscriptionsIE(NebulaBaseIE):
|
|
|
|
|
|
|
|
|
|
class NebulaChannelIE(NebulaBaseIE):
|
|
|
|
|
IE_NAME = 'nebula:channel'
|
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?:watchnebula\.com|nebula\.app)/(?!myshows|videos/)(?P<id>[-\w]+)'
|
|
|
|
|
_VALID_URL = rf'{_BASE_URL_RE}/(?!myshows|videos/)(?P<id>[-\w]+)'
|
|
|
|
|
_TESTS = [
|
|
|
|
|
{
|
|
|
|
|
'url': 'https://nebula.app/tom-scott-presents-money',
|
|
|
|
|