Chuyển VTT sang JSON
Hoặc dán văn bản phụ đề
Chuyển đổi này thay đổi điều gì
1 thứ bị bỏ hoặc cần một quyết định
- Nội dung riêng của định dạng
nội dung mà định dạng nguồn giữ bên ngoài các cue (khối không phải cue, văn bản đầu tệp, thiết lập riêng từng cue, sự kiện bị chú thích) — định dạng đích không có chỗ cho nó
Danh sách này đến từ ma trận năng lực của hai định dạng này, không phải từ tệp cụ thể bạn đã tải lên. Một tệp cụ thể có thể mất nhiều hơn nếu nó dùng các tính năng mà định dạng cho phép nhưng ma trận không mô hình hóa.
Tệp VTT mang dòng đầu, chú thích và thiết lập theo cue bên cạnh phần chữ. Trang này chuyển tệp VTT sang JSON. Kết quả là một tài liệu JSON liệt kê từng cue với thời điểm bắt đầu, kết thúc và phần chữ. Lược đồ là của trang này, cố ý nhỏ — một số phiên bản và một mảng cue, thời gian là số nguyên mili giây.
Cái giá của hướng này nằm ở cấu trúc riêng của định dạng nguồn: JSON không giữ được chúng như VTT. Bạn thấy danh sách trước khi chuyển, và sau khi mở tệp báo cáo còn cho biết tệp của bạn thực sự có bao nhiêu trong số đó.
Không có byte nào của phụ đề rời khỏi máy bạn — việc đọc và ghi diễn ra ngay trong tab trình duyệt. Với cả mùa phim, hàng đợi chạy từng tệp một, có thể dừng giữa chừng, và cuối cùng bạn tải về một tệp ZIP duy nhất.
Ví dụ
Một tệp VTT thông thường, chuyển sang JSON
Đầu vào
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
Kết quả
{
"version": 1,
"cues": [
{
"id": "intro",
"start": 1000,
"end": 4000,
"lines": [
"Hello there."
]
},
{
"start": 4500,
"end": 8000,
"lines": [
{
"text": "Second line with italics.",
"tags": [
{
"kind": "italic",
"start": 17,
"end": 24
}
]
}
]
}
]
}
So hai bên theo từng dòng để thấy phần nào đi qua nguyên vẹn và phần nào đổi khi ra JSON.
Cùng phép chuyển VTT sang JSON trên một tệp lộn xộn
Đầu vào
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
Kết quả
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 2000,
"lines": [
"No header, two lines before the timecode."
]
}
]
}
Đây là kiểu hỏng tệp thật hay gặp — xuống dòng lẫn lộn, khoảng trắng thừa, trường bỏ trống. Đặt cạnh ví dụ gọn phía trên để thấy trình đọc tha cho những gì.
Câu hỏi thường gặp
JSON xuất từ VTT theo lược đồ nào?
Lược đồ riêng của trang này: một số phiên bản rồi một mảng cue. Mỗi cue có id, start và end bằng mili giây, và một mảng lines. Tệp VTT có định danh cue thì chúng được ghi vào id; không có siêu dữ liệu ẩn và không phụ thuộc định dạng của bên thứ ba.
Vì sao danh sách mất mát khi chuyển VTT sang JSON lại ngắn?
Vì lược đồ JSON được dựng để chứa mọi thứ mô hình cue của công cụ mang được, và mô hình đó phủ gần hết những gì VTT có. Phần còn lại là thứ VTT giữ bên ngoài các cue: dòng đầu, chú thích, khối NOTE, STYLE, REGION và thiết lập theo cue.
Định danh cue như intro hay sign-1 có được giữ khi VTT sang JSON?
Có. VTT cho phép định danh tự do trước mỗi cue và lược đồ JSON có trường id dành cho nó, nên nó được ghi nguyên. Nếu chuyển sang SRT thì các cue sẽ được đánh số lại, vì bộ đếm của SRT phải là số.
Mốc thời gian của VTT có bị làm tròn khi sang JSON không?
Không. VTT và JSON đều ghi tới mili giây, nên 00:00:01.234 thành 1234 rồi quay lại nguyên vẹn: không mất mát, không dịch chuyển, không đổi thứ tự.
Tôi có thể đưa bản chép lời riêng tư qua phép chuyển VTT sang JSON không?
Được. Việc đọc và ghi diễn ra trong trình duyệt, nên tệp bạn thả vào không bao giờ được gửi tới máy chủ — điều này quan trọng hơn bình thường với cặp này, vì JSON là thứ script hay đường ống tiêu thụ, và đó thường là những bản chép lời không được rời khỏi cơ quan.