mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-22 02:01:50 +00:00
[TVer] Support redirect from landing page
This commit is contained in:
parent
a803582717
commit
2a4c11ddb4
1 changed files with 19 additions and 1 deletions
|
@ -6,6 +6,7 @@ import re
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from ..compat import compat_str
|
from ..compat import compat_str
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
|
ExtractorError,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
remove_start,
|
remove_start,
|
||||||
smuggle_url,
|
smuggle_url,
|
||||||
|
@ -14,7 +15,7 @@ from ..utils import (
|
||||||
|
|
||||||
|
|
||||||
class TVerIE(InfoExtractor):
|
class TVerIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:www\.)?tver\.jp/(?P<path>(?:corner|episode|feature)/(?P<id>f?\d+))'
|
_VALID_URL = r'https?://(?:www\.)?tver\.jp/(?P<path>(?:corner|episode|feature|lp)/(?P<id>[fc]?\d+))'
|
||||||
# videos are only available for 7 days
|
# videos are only available for 7 days
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://tver.jp/corner/f0062178',
|
'url': 'https://tver.jp/corner/f0062178',
|
||||||
|
@ -29,16 +30,33 @@ class TVerIE(InfoExtractor):
|
||||||
# subtitle = ' '
|
# subtitle = ' '
|
||||||
'url': 'https://tver.jp/corner/f0068870',
|
'url': 'https://tver.jp/corner/f0068870',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
# redirect "f"
|
||||||
|
'url': 'https://tver.jp/lp/f0009694',
|
||||||
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
# redirect "c"
|
||||||
|
'url': 'https://tver.jp/lp/c0000239',
|
||||||
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
_TOKEN = None
|
_TOKEN = None
|
||||||
BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/%s/default_default/index.html?videoId=%s'
|
BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/%s/default_default/index.html?videoId=%s'
|
||||||
|
|
||||||
|
def _extract_redirect(self, url):
|
||||||
|
webpage = self._download_webpage(url, "")
|
||||||
|
newpath = re.search(r'to_href="(.+?)";', webpage)
|
||||||
|
if newpath is None:
|
||||||
|
raise ExtractorError('Not found redirect path', expected=True)
|
||||||
|
return re.match(self._VALID_URL, "https://tver.jp" + newpath.group(1)).groups()
|
||||||
|
|
||||||
def _real_initialize(self):
|
def _real_initialize(self):
|
||||||
self._TOKEN = self._download_json(
|
self._TOKEN = self._download_json(
|
||||||
'https://tver.jp/api/access_token.php', None)['token']
|
'https://tver.jp/api/access_token.php', None)['token']
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
path, video_id = re.match(self._VALID_URL, url).groups()
|
path, video_id = re.match(self._VALID_URL, url).groups()
|
||||||
|
if path[0:2] == "lp":
|
||||||
|
path, video_id = self._extract_redirect(url)
|
||||||
main = self._download_json(
|
main = self._download_json(
|
||||||
'https://api.tver.jp/v4/' + path, video_id,
|
'https://api.tver.jp/v4/' + path, video_id,
|
||||||
query={'token': self._TOKEN})['main']
|
query={'token': self._TOKEN})['main']
|
||||||
|
|
Loading…
Reference in a new issue