Skip to content

Учитывать параметр --lang при разборе массива субтитров #5

@OCTAGRAM

Description

@OCTAGRAM

В текущей логике, похоже, учитывается только --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, и по-хорошему надо искать именно такой вариант, а вдруг он будет отличаться от варианта, когда была сделана попытка перевести с другого языка. Мало ли с какими запросами в Яндекс лезут, а там это всё остаётся

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions