Вилучити HTML-теги зі субтитрів
Або вставте текст субтитрів
Параметри
Одне поле, сім виборів, і кожен вибір має власну сторінку. Курсив, жирний, підкреслення й колір вилучають один різновид діапазону й лишають решту оформлення рядка. «Усе» вилучає кожен діапазон, який моделює інструмент — ті чотири плюс караоке-таймінг — і не чіпає нічого іншого в тексті. «HTML» робить те саме й додатково вимітає кутову розмітку, що лишилася в тексті, бо інструмент її не моделює, як-от теги мовця VTT <v Bob> і <c.className>. «ASS» робить те саме для блоків перекриття, очищаючи коди {...}, не розпізнані під час розбору, як-от {\fad(500,500)}. Ця сторінка заповнює поле вибором, який називає її заголовок, і не пропонує інших.
У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.
Ця сторінка прибирає розмітку з тексту субтитрів: кожен діапазон оформлення, який несе файл, плюс теги в кутових дужках, що лишилися в самому тексті. Повертається простий читабельний діалог — слова, таймінги й більше нічого. Це прогін для файлу, у чиєму тексті ще сидять тег мовця, тег класу або самотня закривна дужка посеред рядка.
Саме ця друга половина й пояснює, чому сторінка існує поруч зі «Прибрати все оформлення з субтитрів». Інструмент моделює чотири теги наголосу, які розуміє, а все інше лишає точно там, де знайшов, — і це правильно, поки файл читають: тихо з’їдати розмітку, якої не впізнаєш, означало б втрачати дані. Але через це файл WebVTT із «<v Боб>» зберігає цей тег крізь усі інші чищення на сайті, а файл, що пройшов OCR або ручне редагування, часто має непарну закривну дужку посеред рядка. Ця сторінка — та, що їх вимітає, і її назва про це каже.
Вимітання навмисно вузьке. Воно прибирає лише те, що має форму тега: літеру або скісну риску відразу після відкривної дужки. Порівняння в діалозі на кшталт «5 < 10» і сумне обличчя на кшталт «<3» лишаються зовсім недоторканими, бо ширше правило видаляло б слова між двома дужками й не лишало б у продукті сліду, що це зробило. Чого не змодельовано, того не вгадують.
Нічого не завантажується; файл читають і записують у вкладці браузера. Файл, що вже є простим текстом, повертається байт у байт, і це також найдешевший спосіб дізнатися, чи справді там є невидима розмітка, яку ви підозрюєте.
Приклади
Файл WebVTT із тегом мовця й тегом класу
Вхід
WEBVTT
00:00:01.000 --> 00:00:02.000
<v Bob><c.yellow>Hello there</c>
00:00:03.000 --> 00:00:04.000
<i>She left</i> <ruby>東京<rt>とうきょう</rt></ruby>.
Результат
WEBVTT
00:00:01.000 --> 00:00:02.000
Hello there
00:00:03.000 --> 00:00:04.000
She left 東京とうきょう.
Тег мовця, тег класу, курсив і рубі-позначка йдуть, лишаючи слова. Зверніть увагу на другу репліку: читання всередині «<rt>» було текстом, а не розміткою, тож воно лишається — продукт показує кану поруч із кандзі, що плеєр усе одно показав би.
Файл SRT із непарною закривною дужкою
Вхід
1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> there</i> again.
2
00:00:03,000 --> 00:00:04,000
<b>And</b> one more.
Результат
1
00:00:01,000 --> 00:00:02,000
Hello there again.
2
00:00:03,000 --> 00:00:04,000
And one more.
Пару навколо «Hello» прочитали як діапазон і видалили цілком; самотній «</i>» після «there» читач лишив у тексті, і його вимітають тут. Обидва врешті зникають із продукту, і в цьому сенс виконання двох робіт за один прогін: саме такі непарні теги файл приносить після OCR або ручного редагування.
Порівняння й символи — не теги
Вхід
1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1
2
00:00:03,000 --> 00:00:04,000
<3 you
Результат
1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1
2
00:00:03,000 --> 00:00:04,000
<3 you
Не видаляється нічого, і це половина сторінки, що важить найбільше. Вимітання торкається лише того, що має форму тега, тобто літери або скісної риски відразу після дужки; математичне порівняння й серце зі знака «менше» обоє виживають недоторканими, як і все, написане між двома дужками.
Часті запитання
Чим ця сторінка відрізняється від прибирання всього оформлення?
Ця робить ту роботу й іде далі. Видалення оформлення забирає діапазони наголосу, які інструмент моделює, — курсив, жирний, підкреслення, колір і караоке. Ця сторінка прибирає й їх, а потім вимітає теги в кутових дужках, що лишилися в самому тексті: теги мовця, теги класу, рубі-розмітку й самотні або непарні закривні теги. Якщо у вашому файлі такої розмітки немає, обидві сторінки дають однаковий продукт.
Які теги вимітання прибирає, а які лишає?
Прибирає все, що має форму тега: відкривну дужку, за якою відразу йде літера або скісна риска, до наступної закривної дужки. Чого не чіпає — дужку, за якою йде щось інше, тож порівняння на кшталт «5 < 10 і 3 > 1» і символ на кшталт «<3» проходять недоторканими. Ця вузькість навмисна: ширше правило видаляло б діалог між двома дужками й не лишало б сліду в продукті.
Чи видаляє ця сторінка слова, що були всередині видаленого тега?
Залежить від того, що було всередині. Власні атрибути тега йдуть разом із ним, як і все, вкладене в тег, що сам видаляється, — читання всередині рубі-позначки, наприклад, є текстом і лишається в рядку, поки рубі-розмітка навколо нього зникає. Чого ніколи не стається — видалення тексту, що стоїть між двома дужками у звичайному діалозі, бо це не має форми тега.
Чи буде продукт і далі правильним у моєму плеєрі після зникнення розмітки?
Так, і надійніше, ніж раніше. WebVTT дозволяє непарний закривний тег без скарг, але тег мовця без закривної дужки може в деяких плеєрах проковтнути решту рядка, і різні плеєри розходяться щодо того, що означає незнайомий тег. Простий текст такої двозначності не має, ось чому файл для платформи, що перекриває оформлення, часто краще очистити, ніж оформлювати.
Чи можна прибрати лише залишкову розмітку, а курсив зберегти?
Не цією сторінкою: діапазони наголосу йдуть першими, а вимітання виконується після, тож файл із курсивом повертається без нього. Цей порядок не випадковий — видалення розмітки коротшає текст, і кожен діапазон після видалення довелося б перерахувати, щоб він і далі вказував на правильні символи. Виконання обох робіт разом і робить результат точним, тож половинного налаштування тут немає.
Чому прогін повідомив про відсутність змін, коли у файлі явно була розмітка?
Імовірна причина — розмітка не має форми тега: дужка, за якою йде пробіл, цифра чи символ, лишається навмисно, тож нічого не видалено й файл повернувся байт у байт. Якщо файл справді містить щось на кшталт «<v Боб>» і все одно повертається без змін, перевірте, що це той файл, про який ви думаєте: сторінка читає файл за тим форматом, чим він насправді є, а не за розширенням, яке він несе.