项目介绍

lucasgelfond/exiftool-web 是一个托管在 GitHub 上的开源项目,主要使用 Svelte 编写,目前获得 160 个 Star、10 次 Fork。

仓库全名
lucasgelfond/exiftool-web
Star 数
160
Fork 数
10
未关闭 Issue
2

README 摘要

exiftool-web Demo available at http://exiftool.lucasgelfond.online. Acknowledgements This would not have been possible without Andrew Sampson's phenomenal package zeroperl and corresponding writeup. (A few days after I built this, they finished up a dedicated exiftool package, that has a nicer API if you're trying to integrate this into another project!) This also would not have been possible without…

完整内容见 GitHub 原始 README 或本页 。

常见问题

exiftool-web 用什么语言开发?

主要使用 Svelte 编写,目前有 160 个 Star。

如何获取 exiftool-web 的源码?

可以直接克隆仓库:git clone https://github.com/lucasgelfond/exiftool-web.git,默认分支为 main;安装与运行步骤见仓库 README。

exiftool-web 最近还在维护吗?

仓库最近一次更新为 1月11日,当前有 2 个未关闭 Issue;Star 数为 160,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

exiftool (OSINT image metadata utility) in the browser (via WebAssembly!)

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
182
价值分
99
活跃状态
活跃

语言占比

CSS
Dockerfile
HTML
JavaScript
Svelte
TypeScript

README

exiftool-web

Demo available at http://exiftool.lucasgelfond.online.

output

Acknowledgements

This would not have been possible without Andrew Sampson’s phenomenal package zeroperl and corresponding writeup. (A few days after I built this, they finished up a dedicated exiftool package, that has a nicer API if you’re trying to integrate this into another project!) This also would not have been possible without browser_wasi_shim, a package that provides WASI support in web browsers, necessary for execution here.

There’s lots of prior art about emulating Perl in the browser that I looked through but didn’t end up using, like perlwasm and webperl. Also helpful was documentation about WASI support in the browser, including “Building a minimal WASI polyfill for browsers”, wasm-cross, wasmer-js, WASI-Virt, and others.

Getting Started

All of the code here lives in frontend, a standard Svelte webapp.

Make sure you have pnpm installed. After this, git clone the repo, cd frontend and pnpm install on the main directory. If you pnpm dev, the app should start running! pnpm build will make a production-ready version.

Background

Open source intelligence (OSINT) is a technique used by researchers to glean insights from publicly available data sources. For example, Bellingcat used metadata on videos released by Russian separtists to prove that a video was released several days before its stated date. Researchers widely agree that exiftool is the best resource, but it is only available by command-line, and GUIs are Windows-only and many years old. Command-line tools present a large barrier to entry for non-programmer OSINT researchers, because they are non-intuitive to install and use.

Rather than building another GUI that requires installation, this one runs totally client-side! Using OPFS, we download the WASM executable from CDN (thanks zeroperl!), connect it to WASI browser shim to emulate the capabilities we need, and then do all of the bridge work with the regular browser file API in order to process multiple files.

Future Work

It would not be very difficult to add to this tool in a way that would allow you to edit (or totally remove) EXIF data from images and download them, which would be a nice anonymization/privacy ue case. You can think of this somewhat in those terms as well—you can see what you are putting out there! I’m also pretty eager to make this offline-friendly (i.e. with service workers / a browser manifest), and to bundle this as a desktop app: there’s a few commits in here of starting to setup Tauri, but I got sidetracked / that will be a project for a different day!

We’re open for patches and issues! Let me know how you find this.

评论

暂无评论