Quickstart
Machine-readable spec: OpenAPI JSON
- /clean and /normalize accept application/json and return JSON.
- /strip (EXIF Stripper) returns the **image bytes**. Use multipart/form-data (recommended) or JSON with base64.
- Browser demos call Workers cross-origin; CORS is enabled.
cURL (JSON → JSON)
curl -s -X POST "https://subtitle-cleaner.edgepipe.workers.dev/clean" \
-H "content-type: application/json" \
-d '{
"type":"srt",
"options": {"remove_hi": true, "max_chars_per_line": 42},
"content": "1\n00:00:01,000 --> 00:00:02,500\n[Music] Hello!"
}'
JavaScript (fetch → JSON)
const r = await fetch("https://filename-normalizer.edgepipe.workers.dev/normalize", {
method: "POST",
headers: {"content-type":"application/json"},
body: JSON.stringify({
filenames: ["Résumé Final .PDF", "con.txt"],
options: { mode: "slug", keep_accents: true }
})
});
const data = await r.json();
EXIF Stripper (multipart → image)
# cURL (multipart)
curl -s -X POST "https://exif-stripper.edgepipe.workers.dev/strip" \
-F "file=@/path/to/photo.jpg" \
-o stripped.jpg -D -
<!-- JS (FormData) -->
const fd = new FormData();
fd.append("file", fileInput.files[0]);
const res = await fetch("https://exif-stripper.edgepipe.workers.dev/strip", { method: "POST", body: fd });
const blob = await res.blob(); // image/jpeg|png|webp