mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-04-23 14:17:46 -04:00
Fixed analysis of corrupted video file that may wrongly throttle providers. #2034
This commit is contained in:
parent
66327677b3
commit
92be39beba
2 changed files with 16 additions and 4 deletions
|
@ -32,7 +32,7 @@ def refine_from_ffprobe(path, video):
|
|||
data = parse_video_metadata(file=path, file_size=file_id['file_size'],
|
||||
episode_file_id=file_id['episode_file_id'])
|
||||
|
||||
if 'ffprobe' not in data and 'mediainfo' not in data:
|
||||
if not data or ('ffprobe' not in data and 'mediainfo' not in data):
|
||||
logging.debug("No cache available for this file: {}".format(path))
|
||||
return video
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import logging
|
||||
import pickle
|
||||
|
||||
from knowit.api import know
|
||||
from knowit.api import know, KnowitException
|
||||
|
||||
from languages.custom_lang import CustomLanguage
|
||||
from app.database import TableEpisodes, TableMovies
|
||||
|
@ -26,6 +26,10 @@ def embedded_subs_reader(file, file_size, episode_file_id=None, movie_file_id=No
|
|||
data = parse_video_metadata(file, file_size, episode_file_id, movie_file_id, use_cache=use_cache)
|
||||
|
||||
subtitles_list = []
|
||||
|
||||
if not data:
|
||||
return subtitles_list
|
||||
|
||||
if data["ffprobe"] and "subtitle" in data["ffprobe"]:
|
||||
for detected_language in data["ffprobe"]["subtitle"]:
|
||||
if "language" not in detected_language:
|
||||
|
@ -121,10 +125,18 @@ def parse_video_metadata(file, file_size, episode_file_id=None, movie_file_id=No
|
|||
|
||||
# if we have ffprobe available
|
||||
if ffprobe_path:
|
||||
data["ffprobe"] = know(video_path=file, context={"provider": "ffmpeg", "ffmpeg": ffprobe_path})
|
||||
try:
|
||||
data["ffprobe"] = know(video_path=file, context={"provider": "ffmpeg", "ffmpeg": ffprobe_path})
|
||||
except KnowitException as e:
|
||||
logging.error(f"BAZARR ffprobe cannot analyze this video file {file}. Could it be corrupted? {e}")
|
||||
return None
|
||||
# or if we have mediainfo available
|
||||
elif mediainfo_path:
|
||||
data["mediainfo"] = know(video_path=file, context={"provider": "mediainfo", "mediainfo": mediainfo_path})
|
||||
try:
|
||||
data["mediainfo"] = know(video_path=file, context={"provider": "mediainfo", "mediainfo": mediainfo_path})
|
||||
except KnowitException as e:
|
||||
logging.error(f"BAZARR mediainfo cannot analyze this video file {file}. Could it be corrupted? {e}")
|
||||
return None
|
||||
# else, we warn user of missing binary
|
||||
else:
|
||||
logging.error("BAZARR require ffmpeg/ffprobe or mediainfo, please install it and make sure to choose it in "
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue