- Минимальная версия A-Parser
- 1.2.2596
Youtube позволяет получать содержимое видео в текстовом виде:
Выглядит это так:
По сути это субтитры видео вместе с отметками времени, выведенные вместе с разделами в правильном порядке. Все эти данные умеет парсить
SE::YouTube::Video (subtitles и chapters), остается только вывести их в нужном виде.
Эту задачу можно полностью решить с помощью шаблонизатора:
В результате получаем расшифровку в таком же виде, как она отображается в браузере при нажатии на кнопку "Расшифровка видео":
Выглядит это так:
По сути это субтитры видео вместе с отметками времени, выведенные вместе с разделами в правильном порядке. Все эти данные умеет парсить
SE::YouTube::Video (subtitles и chapters), остается только вывести их в нужном виде.Эту задачу можно полностью решить с помощью шаблонизатора:
Код:
[% arr = [];
FOREACH item IN p1.subtitles;
IF item.text.trim();
arr.push({ start = item.start, text = item.text });
END;
END;
FOREACH item IN p1.chapters;
start = item.start * 1000;
arr.push({ start = item.start * 1000, text = item.title, chapter = 1 });
END;
arr = arr.nsort('start');
max = arr.size - 1;
USE Math;
FOREACH i IN [0..max];
item = arr.${i};
m = Math.int(item.start / 60000);
s = (item.start / 1000) % 60 FILTER format('%02d');
nextI = i + 1;
(item.chapter ? '' : m _ ':' _ s _ ' - ') _ item.text _ (arr.${nextI}.chapter ? "\n\n" : "\n");
END %]
В результате получаем расшифровку в таком же виде, как она отображается в браузере при нажатии на кнопку "Расшифровка видео":