Handle empty responses from whisper to prevent JSONDecodeErrors

pull/2741/head
JayZed 6 months ago committed by GitHub
parent 4eb09c546d
commit 2c8712f891
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -5,6 +5,7 @@ from datetime import timedelta
from requests import Session
from requests.exceptions import JSONDecodeError
from subliminal_patch.subtitle import Subtitle
from subliminal_patch.providers import Provider
from subliminal import __short_version__
@ -269,10 +270,19 @@ class WhisperAIProvider(Provider):
params={'encode': 'false'},
files={'audio_file': out},
timeout=(self.response, self.timeout))
try:
results = r.json()
except JSONDecodeError:
results = {}
if len(results) == 0:
logger.info(f"Whisper returned empty response when detecting language")
return None
logger.debug(f"Whisper detected language of {path} as {r.json()['detected_language']}")
logger.debug(f"Whisper detected language of {path} as {results['detected_language']}")
return whisper_get_language(r.json()["language_code"], r.json()["detected_language"])
return whisper_get_language(results["language_code"], results["detected_language"])
def query(self, language, video):
if language not in self.languages:

Loading…
Cancel
Save