Bahasa Indonesia

Video & subtitle · Perangkat Subtitle

Bagaimana file subtitle diedit tanpa meninggalkan perangkat Anda: File API ke Blob

· Cara kerjanya

subtitle pemrosesan browser pribadi

File yang menangani memasuki tab browser, diubah dalam memori dan ditulis kembali sebagai unduhan, tanpa jalur ke server
Ilustrasi vektor ToolAcre asli

Alat file ToolAcre membaca dan menulis file di dalam tab. Postingan ini menjelaskan API browser yang memungkinkan file subtitle, mulai dari pemilih file hingga link download, dan cara mengonfirmasi tidak ada yang diupload.

Transkripnya bersifat rahasia dan konverter ingin Anda mengunggahnya — masalah ini dapat diselesaikan oleh pemrosesan di sisi browser

Transkrip deposisi bukanlah file yang Anda serahkan ke layanan web untuk mengetahui apakah konversi berhasil. Kebanyakan konverter daring bersifat unggah-dan-kembali: byte masuk ke server, sesuatu terjadi, dan hasilnya kembali. Untuk materi rahasia yang merupakan pengungkapan, dan itu sudah terjadi pada saat Anda melihat hasilnya.

Pemrosesan sisi browser menghilangkan pertanyaan tersebut. File dibuka oleh halaman, bukan dikirim ke sana, setiap transformasi dijalankan terhadap salinan di memori, dan hasilnya ditulis kembali ke disk dari tab yang sama. Klaim tersebut dapat diuji, yang mana lebih penting daripada klaim, karena panel jaringan akan menunjukkan apakah ada permintaan yang memuat konten tersebut.

Memilih file: objek File — bagaimana browser memberikan halaman pegangan ke byte tanpa mengirimnya ke mana pun

Memilih file melalui input file tidak mentransfer apa pun. Halaman tersebut menerima objek File, yang merupakan pegangan: nama, ukuran, tipe, dan referensi yang dapat dibaca oleh browser. Memilih file bukanlah sebuah unggahan, dan menahan pegangan itu tidak menyebabkan permintaan. Byte tetap di tempatnya sampai kode memintanya.

Perbedaan ini merupakan dasar keseluruhan pemrosesan lokal, dan ini juga merupakan alasan mengapa properti privasi adalah milik kode, bukan milik browser. Halaman yang menyimpan objek File mampu mempostingnya di suatu tempat. Apa yang menjadikan suatu alat bersifat lokal adalah bahwa alat tersebut tidak bersifat lokal.

Membaca teks secara lokal — File.text() dan TextDecoder mengubah byte menjadi isyarat di memori

Membaca teks memanggil metode teks File API, yang menghasilkan string yang didekodekan sebagai UTF-8. String tersebut diuraikan menjadi isyarat di memori, dan setiap operasi selanjutnya bekerja pada objek isyarat tersebut: pergeseran menambah stempel waktu milidetik bilangan bulat, membersihkan pengganti di atas teks, validasi menelusuri daftar untuk mencari kesalahan pemesanan dan durasi. Tidak ada satupun yang menyentuh file asli, yang tidak pernah ditulisi.

Karena parse menghasilkan objek biasa, file pada disk tidak tersentuh meskipun tab ditutup saat sedang mengedit. Tidak ada salinan sementara yang harus dibersihkan dan tidak ada keluaran yang ditulis sebagian, karena penulisan hanya terjadi ketika unduhan diminta.

Mengapa ini berjalan di thread utama dan bukan di Web Worker, dan apa sebenarnya fungsi plafon ukuran tersebut

Garis besar buku kerja mengharapkan tahap ini berjalan di Web Worker, dan untuk beberapa alat ToolAcre, hal ini berjalan; aplikasi CSV, gambar, dan PDF masing-masing memindahkan pekerjaan beratnya dari thread utama. Aplikasi subtitle sengaja tidak melakukannya, dan alasannya dicatat dalam sumbernya sendiri: seorang pekerja akan menambahkan bundel kedua dan mode kegagalan kedua untuk pekerjaan yang tidak memerlukannya, karena file teks berdurasi fitur beberapa ratus kilobyte dan diurai dalam milidetik.

Peringatan jujurnya adalah ukuran langit-langit. Batas sepuluh megabita diberlakukan sebelum penguraian dan pemberian nama pada halaman alat, namun alat tersebut mendokumentasikan bahwa pemeriksaan dilewati untuk apa pun yang diberi nama dengan ekstensi subtitle, sehingga file subtitle yang terlalu besar memuat dan memblokir halaman daripada ditolak. Itu adalah konsekuensi nyata dari berjalan di thread utama, dan ini didokumentasikan, bukan disembunyikan.

Menulis kembali: Blob dan atribut download — bagaimana file yang diedit mencapai disk Anda sebagai unduhan baru

Menulis kembali akan membuat Blob dari teks berseri dan menyerahkannya ke browser sebagai unduhan. Teks dibungkus dengan tipe media eksplisit yang membawa jaringan karakter UTF-8, objek URL dibuat untuk Blob tersebut, jangkar yang membawa atribut unduh diklik, dan jangkar dihapus. File tersebut tiba di folder unduhan sebagai file baru; yang asli tidak diubah.

Pencabutan ini sengaja ditunda dan tidak segera dilakukan. Mencabut objek URL secara serempak setelah klik dapat membatalkan pengunduhan di beberapa browser, sehingga satu tugas makro dijadwalkan kemudian, yang aman dan cepat. Ini adalah jenis detail yang hanya muncul ketika pengunduhan gagal dimulai.

Contoh praktis: mengamati panel jaringan selama konversi dan waktu penuh - panel senyap dari pembukaan file hingga penyimpanan file

URL objek adalah bagian yang bocor jika tidak ada yang melihat. Pelajaran ini ditulis ke dalam pembantu repositori: proyek yang diaudit membuat URL objek di beberapa tempat dan mencabutnya tepat di nol, sehingga setiap pratinjau menyimpan seluruh blobnya selama masa aktif tab. Di ponsel, beberapa halaman raster sudah cukup bagi browser untuk mematikan tab.

Solusinya lebih bersifat struktural dan bukan disipliner. Tidak ada yang memanggil browser API secara langsung; pembantu yang tercakup menjalankan kode Anda dengan URL dan mencabutnya ketika kode tersebut ditetapkan, saat berhasil, saat dilempar, dan saat ditolak, dan pegangan terkelola menawarkan pencabutan idempoten untuk kasus yang bertahan lebih lama dari satu fungsi. Pembersihan yang benar adalah default, bukan sesuatu yang harus diingat oleh setiap situs panggilan.

Apa yang tidak tercakup dalam hal ini — alat ini tidak dapat melindungi file yang kemudian Anda unggah di tempat lain; privasi berakhir saat alur kerja Anda meninggalkan tab

Untuk memverifikasi daripada mempercayai, buka panel jaringan sebelum memilih file dan biarkan terbuka selama seluruh pekerjaan. Pilih file, konversikan, atur ulang, unduh hasilnya. Permintaan untuk halaman dan skripnya muncul saat halaman dimuat; yang tidak seharusnya muncul adalah permintaan apa pun yang payloadnya adalah file. Pertahankan log di seluruh sesi sehingga tidak ada yang terlewat di antara langkah-langkah.

Dua kualifikasi jujur. Sebuah halaman dapat memuat analitik atau skrip iklan dari sumber lain, dan skrip tersebut terlihat di panel yang sama dan merupakan pertanyaan terpisah apakah file Anda telah dikirim. Dan properti berakhir di tab: alat yang memproses secara lokal tidak dapat melindungi file yang kemudian Anda kirim melalui email, sinkronkan ke penyimpanan cloud, atau tempelkan ke layanan lain. Pemrosesan lokal mempersempit paparan terhadap mesin Anda sendiri; itu tidak mengikuti file setelahnya.

Kesimpulan: file Anda, tab Anda, disk Anda — bagaimana Perangkat Subtitle melakukan seluruh pekerjaan secara lokal dan memungkinkan Anda memverifikasinya

Jalurnya adalah pegangan file, teks dalam memori, isyarat dalam memori, Blob, unduhan, dan tidak ada apa pun dalam urutan itu yang memerlukan server. File dibaca per halaman, bukan dikirim ke sana, diubah sebagai objek, dan ditulis kembali sebagai file baru, dengan file asli tidak tersentuh seluruhnya.

Alasan untuk memilih materi rahasia ini bukan karena janji telah dibuat tetapi klaim tersebut dapat diperiksa dalam waktu sekitar satu menit. Buka panel jaringan terlebih dahulu, lakukan seluruh pekerjaan, dan baca log. Alat yang memproses secara lokal akan menampilkan panel tanpa permintaan yang membawa transkrip Anda, yang merupakan jaminan lebih kuat dibandingkan kebijakan privasi apa pun.