Image verification and geolocation playbook
Check a photo's metadata, find earlier copies, and work out where and when it was taken
intermediate
Builds reverse image search links for an image URL: Google Lens, Bing, Yandex, TinEye and more
Community-packaged from github.com/osintverse-community/reverse-image-links: the registry's community pins the upstream release; the tool is its authors' work. Maintain that project? Claim this package.
Run
Through ot mcp, an agent calls run_tool with this; ot asks you before anything that goes online or touches a target. Set it up: ot mcp install claude (or cursor, vscode, codex, gemini).
{"tool":"osintverse-community/reverse-image-links","target":"https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg","input_type":"url"}Or just say: "Run osintverse-community/reverse-image-links on https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg with OTInstaller." The registry's read-only MCP server at api.otinstaller.com/mcp can find tools without installing anything.
ot run osintverse-community/reverse-image-links url:https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg --format tableot install osintverse-community/reverse-image-linksDocker image in a read-only container · no network · no key · up to 1 min. The first ot run installs the tool after asking once. The example value is the registry's own test input, so this command has run. Drop --format table for JSON.
ot? Install it in one linecurl -fsSL https://get.otinstaller.com/ot | shot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in /usr/local/bin or ~/.local/bin. Nothing else is written. Read the script.irm https://get.otinstaller.com/ot.ps1 | iexot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in %LOCALAPPDATA%\Programs\ot, and adds it to your PATH. Nothing else is written. Read the script.sha256:35b295e8…d83cb8. The same bytes on every install; ot pulls by digest, never by tag.ot checks the same identity before every install and refuses another signer.ot pulls the same digest from the mirror and checks the same signature.{
"envelope": 1,
"tool": "osintverse-community/reverse-image-links@0.1.0",
"runtime": "docker",
"input": {
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg"
},
"started_at": "2026-10-21T09:00:00Z",
"duration_ms": 4100,
"exit_code": 0,
"entities": [
{
"type": "url",
"value": "https://example.com/page"
}
],
"warnings": []
}Every tool returns this shape, shaped here from what this tool declares it finds. --format table to read it; ot extract and ot auto to continue.
Gives you ready-made reverse image search links for one image URL on Google Lens, Bing Visual Search, Yandex, TinEye, Baidu, SauceNAO and IQDB. It only builds the links, so it runs offline and nothing is uploaded until you open them.
ot run osintverse-community/reverse-image-links --url https://example.com/a.jpg --format table
| Input | Required | |
|---|---|---|
url |
yes | URL of the image |
engines |
no | Comma-separated engines, such as yandex,tineye |
Engines differ a lot: Yandex is strongest on faces and places in Eastern Europe, TinEye sorts by first appearance, and SauceNAO and IQDB cover artwork. Opening a link sends the image URL to that engine.
Compare the matches you find with osintverse-community/image-hash.
pip install # no dependencies
python -m unittest
ot validate
Releases are built, signed and published by the otinstaller release workflow (Actions tab, with the version to release).
MIT
Check a photo's metadata, find earlier copies, and work out where and when it was taken
reverse-image-links finds url. Tools that take those:
Alternatives to reverse-image-links that also take an url; ot auto runs every installed one on the same value.
Lists the images and metadata of posts and galleries on Reddit, Flickr, Imgur, Tumblr and 300+ sites
Splits a URL or hostname into subdomain, registered domain and public suffix
Breaks a URL into everything it encodes: timestamps, IDs, search terms, tracking and session data
Finds the oldest or newest Wayback Machine capture of a URL, or every archived URL of a site
Extracts metadata from videos and channels on YouTube, TikTok, X, Instagram and 1,000+ other sites