mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-16 13:23:20 +00:00
handle _download_json
error correctly
This commit will fallback to webpage extraction if the API url is not found in particular regiom
This commit is contained in:
parent
9a6fc7f863
commit
f92dedc92a
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from ..compat import compat_str
|
from ..compat import compat_str
|
||||||
|
from ..networking.exceptions import HTTPError
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
DownloadError,
|
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
merge_dicts,
|
merge_dicts,
|
||||||
|
@ -304,10 +304,12 @@ def _real_extract(self, url):
|
||||||
try:
|
try:
|
||||||
product_data = self._download_json(
|
product_data = self._download_json(
|
||||||
f'http://www.viu.com/ott/{country_code}/index.php', video_id,
|
f'http://www.viu.com/ott/{country_code}/index.php', video_id,
|
||||||
'Downloading video info', query=query, fatal=False)['data']
|
'Downloading video info', query=query)['data']
|
||||||
# The `fatal` in `_download_json` didn't prevent json error
|
# The `fatal` in `_download_json` didn't prevent json error
|
||||||
# FIXME: probably the error still too broad
|
# FIXME: probably the error still too broad
|
||||||
except (DownloadError, ExtractorError):
|
except ExtractorError as e:
|
||||||
|
if not isinstance(e.cause, (json.JSONDecodeError, HTTPError)):
|
||||||
|
raise
|
||||||
# NOTE: some geo-blocked like https://www.viu.com/ott/sg/en/vod/108599/The-Beauty-Inside actually can bypassed
|
# NOTE: some geo-blocked like https://www.viu.com/ott/sg/en/vod/108599/The-Beauty-Inside actually can bypassed
|
||||||
# on other region (like in ID)
|
# on other region (like in ID)
|
||||||
product_data = traverse_obj(
|
product_data = traverse_obj(
|
||||||
|
|
Loading…
Reference in a new issue