npx skills add ...
npx skills add useosint/osint-skills --skill find-the-original-image
Reverse image search across Yandex, Google Lens, Bing Visual Search, TinEye and Baidu to find where a picture came from and who published it first. Use when reverse image searching, identifying a photo, face, logo, product, uniform or building, tracing a profile picture or avatar, finding the oldest copy of an image, checking whether a photo is stock or a repost, or reverse-searching a video by keyframes. Applies to romance and investment scam investigation, fake-profile and synthetic-identity detection, disinformation and media verification, counterfeit and brand-infringement work, and insurance claim review. Reference at useosint.com/skills/find-the-original-image.
npx skills add useosint/osint-skills --skill find-the-original-image
The goal is almost never "find a match". It is find the earliest publication and read its page. A match tells you the image exists elsewhere; the earliest page tells you the photographer, the date, the caption, and the names — which is what you actually pivot on.
The beginner mistake: uploading the full frame to one engine, getting nothing, and concluding the image is unindexed. Cropping to one distinctive object and re-searching finds things full-frame search cannot.
| You have | Start with | Why |
|---|---|---|
| A face | Yandex | Its index is built around facial similarity, so it returns different people who look alike and the same person in other photographs. No other general engine does this. |
| A face, and Yandex fails | A dedicated face engine (see below) | Only after you have cleared the legal and consent questions. |
| A street scene outside North America / Western Europe | Yandex | Deeply indexed Russian, Central Asian, Eastern European, Turkish and Chinese web content that Google under-crawls. |
| A product, book cover, artwork, plant, animal | Google Lens | Object and entity recognition, tied to Shopping and Knowledge Graph. |
| Text inside the image | Google Lens | It OCRs the frame and lets you search the extracted string. Often the text is the answer and the image search is irrelevant. |
| A landmark or a well-known building | Google Lens | Landmark classification is its strongest single feature. |
| A specific region of a cluttered photo | Bing Visual Search | Draw a box on the uploaded image and it re-searches only that region — the fastest crop-and-retry loop of any engine. |
| A press photo, meme, or anything you suspect is old | TinEye | The only major engine that sorts by oldest and that reliably surfaces modified copies. |
| Chinese-language or China-hosted content | Baidu image search | Coverage the others simply do not have. |
Run at least three. They disagree constantly, and that disagreement is information: TinEye finding an exact copy from years back while Lens finds only recent reposts is the signature of recycled media.
Yandex matches on visual similarity with a strong face component. Its results page groups "sites containing this image" separately from "similar images" — only the first group is evidence. It tolerates crops, rotation and heavy recompression better than the others.
Google Lens has moved away from whole-image duplicate matching toward "what is this, and what can I sell you". For provenance work use the option that lists pages containing the image rather than the visual-match carousel, and expect it to return visually similar but unrelated photos as if they were matches.
Bing Visual Search sits between the two. Its region-select tool is the reason to use it: no download, crop, re-upload cycle.
TinEye is crawl-based and comparatively small — plenty of images return zero results, and absence from TinEye proves nothing. What it does that nothing else does: exact and near-duplicate matching with the ability to sort by oldest, and detection of copies that have been cropped, colour-shifted or watermarked, which it will show you side by side against your input.
secrets-in-file-metadata on the original
before you start editing copies.2019-04-city-event-03.jpg), and any surrounding article text. This is where
the selectors are.An earliest-known-copy date is a claim about your search coverage, not about the world. To harden it:
read-deleted-pages — the archive's
first capture of the URL bounds when the page really existed, and the page's
displayed date can be back- or forward-dated by its CMS.google-like-a-spy to look for
earlier text mentions of the same event or caption.PimEyes and FaceCheck.ID crawl the open web for faces and match on biometric similarity. They find people that no general engine will. They also carry real exposure:
Use face search when you have a documented authorization or a legitimate protective purpose — verifying a counterparty in a fraud case, identity verification with the subject's consent, missing-persons work, or checking your own exposure. Do not use it to identify a stranger from a photo, to attach a name to a face in a protest crowd, or to locate a private individual. Note in the case file that you ran it and why. And treat a face-engine hit as unconfirmed on its own — look-alike false positives are common and the engine gives you no reasoning to audit.
is-this-photo-real rather than
concluding the photo is an unpublished original.investigate-without-getting-made.An account posts a photo captioned "police raid this morning, [city]".
Full frame in Lens: nothing but generic riot-police stock. Yandex: a dozen similar police photos, none matching. TinEye: no results — which I note as uninformative, since TinEye's index is small.
Crop to the shoulder patch and re-search in Bing using region select. It reads as a municipal force from a different country than the caption claims.
Crop the shop sign in the background, OCR it in Lens, and search the business name as text. Two hits, both a street in that other country. Dead end on the image search itself — but the text pivot lands it.
Back to Yandex with the storefront crop: a news gallery from three years earlier, same street, same shop awning, same barrier arrangement. Photographer credited. Archive shows a capture of that gallery page two days after its stated date, which corroborates it.
Conclusion: confirmed that this image was published years before the claimed
event, in another country. Recontextualised, not fabricated. Hand the location to
geolocate-from-pixels and the photographer credit to find-anyone.
| What you got | Send to |
|---|---|
| Location, street scene, storefront | geolocate-from-pixels |
| Named people, photographer credit | find-anyone |
| Publishing site or agency domain | who-owns-this-domain |
| Match page that is gone or altered | read-deleted-pages |
| Caption text, business name, filename slug | google-like-a-spy |
| Suspected manipulation or generation | is-this-photo-real |
| Posting account, avatar reused elsewhere | hunt-a-handle, pattern-of-life-from-socials |
| Full photo/video geolocation case | where-was-this-taken |
Engine-by-engine selection detail: reference/engine-matrix.md.