Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built 154 PDF and video tools that run entirely in the browser: how, and how to check

Most free online PDF tools work the same way: you upload your file, a server processes it, and you download the result. For a passport scan or a bank statement, that is a lot to ask of a stranger's computer. I built Stayput Tools , a set of 154 free PDF, image, audio and video tools where the work happens inside your browser tab. Nothing is uploaded. This post is about how that works, what it…

Most free online PDF tools function in the same manner: users upload their files, a server processes them, and then they download the results. For sensitive documents like passport scans or bank statements, entrusting a stranger's computer with such tasks is a significant concern. To address this issue, I developed Stayput Tools, a collection of 154 free PDF, image, audio and video tools that process data directly within a user's browser tab.

During this process, no files are uploaded. This article discusses how Stayput Tools operates, its associated costs, and how you can verify that the tools are not merely deceiving. Uploading files is not necessary because modern browsers possess the capability to perform numerous tasks independently: PDF-lib facilitates PDF creation and editing, pdf.js is utilized for display, OCR is executed through a WebAssembly build of an OCR engine, video processing is carried out using WebCodecs (through Mediabunny library), and background removal is achieved using a small neural network running via ONNX Runtime (WebAssembly).

The website is static and devoid of any server capable of receiving files. This approach entails certain limitations: video processing is restricted to approximately 1 GB per file (8 GB with Compress Video and Trim Video), long videos on mobile devices take roughly as long to process as they play, and HEVC video requires a browser that can decode it.

To verify that no files are being uploaded, users can open their browser's developer tools (F12) and navigate to the Network tab. After utilizing any tool on the website, examining the requests will reveal that none of them contain the user's file. Alternatively, disconnecting from the internet and repeating the process will yield the same result.

Each tool page also displays the number of bytes sent, which can be verified by navigating to the specific page and copying the exact wording. Additionally, the website employs a Content-Security-Policy that limits connections to only its own domain, ensuring that even a bug cannot transmit files to external locations. Personal lessons learned: Without a frame rate, the encoder assumed 30 fps, resulting in a video with twice the bitrate when processed at 60 fps.

Adjusting the frame rate subsequently rectified this issue (from 2.7 Mbps requested, 5.6 Mbps before, and 2.9 Mbps after). Try out Stayput Tools and report any issues encountered. The website is a recent creation, thus any discovered bugs are of particular interest.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Docker failed to calculate checksum of ref, in CI

Docker failed to calculate checksum of ref is BuildKit naming the content reference it was hashing when a path under it could not be read.

  • Docker fails to calculate checksum of ref during build
  • Error occurs when referenced path is missing or excluded
  • Check error message for path to identify missing file or stage

The Answer Checker Explains the Missing Question

Our practice page grades answers with one line: parse ( $( '#practice-answer' ) . value ) . eq ( answer ) If answer is undefined , that line throws.

  • Practice page grades answer submissions with a single line of code
  • Undefined answer throws error instead of marking incorrect
  • Fix requires updating grader to recognize undefined slopes

maven could not transfer artifact ci, not a missing jar

A maven could not transfer artifact ci failure means the resolver tried to move bytes and could not, which is a different failure from the repository telling Maven the artifact is not there.

  • "Could not transfer artifact" message differs from "Could not resolve dependencies"
  • Cached failure related to "not-found" issue, not retry property
  • Timeout of 30 minutes often triggers job kill before error appears

More from Sunday 15 November →