Spaces:
Sleeping
π² Add places from your phone β the iOS Shortcut
Share an Instagram reel from your phone and have the place land on your map automatically β no copy-paste, no export, no Google account.
Why a Shortcut (and why you build it yourself)
Instagram blocks requests from cloud servers, so the hosted web app can't fetch a post for you. The trick the paid apps use is to fetch the post on your phone (your home/carrier IP isn't blocked). An iOS Shortcut does exactly that for free β it fetches the post on-device and sends only the caption to the app, which extracts the place and queues it for your map.
We can't ship a one-tap .shortcut file (Apple signs them per-device and they
go stale), so here's the ~8-action recipe. It takes about five minutes in the
Shortcuts app and you only build it once.
Before you start β get your capture code
- Open the web app β πΊ Explore tab.
- In the βDrop your places fileβ card, expand π² Add places from your phone.
- Copy the code shown there (it's stored only on your device). You'll paste
it into the Shortcut as
token. - Note your app's address (e.g.
https://your-space.hf.spaceorhttp://localhost:8000for local Docker). That'sYOUR_APP_URLbelow. - If you use the Claude path, have your Anthropic API key handy (
YOUR_API_KEY). On a local Ollama build you can leave the key blank.
Build the Shortcut
In the Shortcuts app β οΌ (new) β add these actions in order:
- Receive β tap the settings (β) β Show in Share Sheet ON β accept URLs. (This makes it appear when you tap Share on a reel.)
- Get URLs from Input.
- Replace Text β Regular Expression ON. Find
\?.*$β Replace with (empty). (Strips Instagram's tracking query string.) Call this Clean URL. - Text β
[Clean URL]/embed/captioned/(insert the Clean URL variable; this is the on-device-fetchable embed page). - Get Contents of URL β URL = the Text from step 4 Β· Method: GET Β·
add Header
User-Agent=Mozilla/5.0. This is the on-device fetch. Call the result Embed HTML. - Get Contents of URL β URL =
YOUR_APP_URL/captureΒ· Method: POST Β· Request Body: Form with these fields:Key Value embed_htmlEmbed HTML (from step 5) urlClean URL (from step 3) tokenyour capture code api_keyYOUR_API_KEY(omit on local Ollama) - Show Notification β text:
Saved to your map β(optional; you can also show the response to see the place name).
Name it IG Food Mapper and you're done.
Use it
- In Instagram, open a reel β Share β IG Food Mapper.
- The Shortcut fetches the post and sends the caption to your app.
- Open the web app β it pulls your captures and merges them in: βπ² N places captured from your phoneβ, each tagged β¨ New.
Your visited status and edits are always kept (merges never overwrite them), and duplicates are ignored (matched on the Instagram link).
Notes & limits
- Caption-based. Extraction uses the post caption. If a post also carries an
Instagram location tag, add
lat/lngform fields to step 6 to pin it exactly without geocoding (advanced β get them from the post's location page). - You see captures next time you open the app, not instantly on the phone β the app drains the queue on load.
- The queue is temporary. Captures wait up to ~7 days; if you don't open the app in that window, just re-share the reel.
- Privacy. Only the caption (and the link) reach the app. The fetch happens on your device; nothing about your library is uploaded.
- One device. The capture code lives in the browser you copied it from. Use the same browser, or copy the code to each device's Shortcut.