-
Notifications
You must be signed in to change notification settings - Fork 2
Description
В текущей логике, похоже, учитывается только --reslang, целевой язык, но не исходный --lang. Я по ошибке запросил переводы с английского на английский и с английского на русский. А видео было на русском, и английские субтитры получились без перевода, на русском. Типа хотели субтитры на английском без перевода, а на видео говорили на другом понятном языке, и этот понятный язык тоже без перевода пошёл в субтитры. Я потом исправил ошибку и запросил субтитры с русского на русский и с русского на английский, но vot-cli-live качает фигню. Вот те закешированные типа-английские субтитры, которые на самом деле русские. А я массив JSON проверил, там нормальные английские субтитры появились, но качаются не они. Я сам попробовал скачать, а там субтитры в формате JSON, с которыми не понятно, что делать. Онлайн конвертер JSON 2 SRT ожидает формат TED JSON, а у Яндекса формат какой-то другой.
Предположительно, это нужно делать так:
const subOnReqLang = parent.translateResult.subsOrError.find(
(s) => s.language === RESPONSE_LANG && s.translatedFromLanguage === REQUEST_LANG,
) || parent.translateResult.subsOrError.find(
(s) => s.language === RESPONSE_LANG,
);
UPD. Этот мой пример, похоже, всё ещё не вполне учитывает ситуацию субтитров без перевода. Когда нет перевода, то RESPONSE_LANG === REQUEST_LANG === s.language, а s.translatedFromLanguage undefined, и по-хорошему надо искать именно такой вариант, а вдруг он будет отличаться от варианта, когда была сделана попытка перевести с другого языка. Мало ли с какими запросами в Яндекс лезут, а там это всё остаётся