Insights·2026-07-17

How Do You Reverse-Locate a Place From an Instagram Reel Alone?

A promotional reel has to pull people in, so it leaves a pile of clues on screen. This skill pulls frames from the video, has an AI read those clues (signs, landmarks, on-screen text, captions), searches Kakao Map, Naver blogs, and the uploader's account in parallel to narrow candidates, then tries to disprove each before confirming the location. Install it as a plugin in Claude Code and hand it a reel URL. It targets public places in promotional content only, and it's open source (MIT).

What problem it solves

This kind of reel is everywhere on Instagram: "Follow and drop a comment, and I'll DM you the location." The very thing you want, the place, only comes after that DM.

But a promotional reel is a video made to attract people, so it actually leaves plenty of clues on screen: the text on a sign, the shape of a bridge, the color of a lighthouse, a line of on-screen text, a caption hashtag. This skill finds the place from those clues alone. No DM required.

First, what is Claude Code

Claude Code is an AI coding agent from Anthropic that runs in your terminal. It handles what you ask by reading files and running commands on its own.

A 'skill' is an extension that adds a specific capability to Claude Code, and a 'plugin' is how skills are packaged and distributed. This tool ships one skill, 'reverse-locate the place in a reel,' as a plugin. As long as you have Claude Code, the two lines below wire it in.

Install - two lines

Type the following inside Claude Code to register the marketplace and install the skill.

You don't need to know what yt-dlp (a video downloader) or ffmpeg (a frame extractor) are. On first run, a preflight detects them, installs via Homebrew on macOS, and prints the exact install command on Linux and Windows.

Inside Claude Code
/plugin marketplace add hjsh200219/insta-spot-search
/plugin install insta-spot-search@insta-spot-search

How to use it - one line

Just hand it a reel URL. You can use the slash command, plain language, or the path to a video file you've saved locally.

If you know anything at all about the place, add it as a hint. A single "looks like a beach in Gangwon" narrows the search and lifts accuracy.

Run
/insta-spot-search https://www.instagram.com/reels/XXXX/

# plain language works too
where is this reel? https://www.instagram.com/reels/XXXX/

# a hint raises accuracy
/insta-spot-search <URL> looks like a beach in Gangwon

What happens inside - four stages

On the surface it's one URL, but four stages run inside. It automates exactly how a person would gather and cross-check clues like a detective.

The last stage is the point. It doesn't stop at finding a candidate; for each one it deliberately looks for a reason it might be wrong. Only candidates that survive the attempt to disprove them get marked as confirmed, which keeps plausible-but-wrong answers out of the report.

The four stages
1) ingest.py  yt-dlp pulls metadata, captions, comments, location tags + downloads video
              ffmpeg extracts frames (24 by default, 1024px)
2) Read frames  Claude builds a clue inventory (signs, bridges, lighthouses, text, hashtags)
3) Parallel search  Kakao Map keywords - Naver blog signatures - uploader trace-back
4) Cross-check  try to disprove each candidate -> confidence (confirmed/likely/candidate) + evidence report

A real run - a 19-second drone reel

In one real run, a single 19-second drone reel pinned down Sacheonjin Beach in Gangneung, down to the address and map link.

It took an arched bridge, a yellow lighthouse, and people gleaning on the tidal rocks as clues, then cross-checked where all three line up at once. Any single clue leaves several candidates, but only one spot fit all three.

When it gets stuck - common cases

If Instagram blocks logged-out access, it retries automatically with your browser cookies (chrome by default). You just need to be logged into Instagram in Chrome.

An "empty media response" error usually means yt-dlp is outdated and its Instagram extractor broke. brew upgrade yt-dlp clears it.

If you want the narration used as a clue too, add --audio to transcribe the speech (reusing your GROQ or OpenAI key). The downloaded video and frames stay in a local temp folder only and are never uploaded anywhere.

The line it draws

It only targets content promoting public places, like shops and tourist spots. A guardrail refuses use aimed at tracing a private home or someone's movements.

It's all open source (MIT). The original repo is in the source link below.