ig-v1 / SHORTCUT.md
harshith99's picture
Docs: SHORTCUT.md build guide (Phase C) β€” completes incremental capture
221abde
|
Raw
History Blame Contribute Delete
3.92 kB

πŸ“² 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

  1. Open the web app β†’ πŸ—Ί Explore tab.
  2. In the β€œDrop your places file” card, expand πŸ“² Add places from your phone.
  3. Copy the code shown there (it's stored only on your device). You'll paste it into the Shortcut as token.
  4. Note your app's address (e.g. https://your-space.hf.space or http://localhost:8000 for local Docker). That's YOUR_APP_URL below.
  5. 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:

  1. Receive β€” tap the settings (β“˜) β†’ Show in Share Sheet ON β†’ accept URLs. (This makes it appear when you tap Share on a reel.)
  2. Get URLs from Input.
  3. Replace Text β€” Regular Expression ON. Find \?.*$ β†’ Replace with (empty). (Strips Instagram's tracking query string.) Call this Clean URL.
  4. Text β€” [Clean URL]/embed/captioned/ (insert the Clean URL variable; this is the on-device-fetchable embed page).
  5. 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.
  6. Get Contents of URL β€” URL = YOUR_APP_URL/capture Β· Method: POST Β· Request Body: Form with these fields:
    Key Value
    embed_html Embed HTML (from step 5)
    url Clean URL (from step 3)
    token your capture code
    api_key YOUR_API_KEY (omit on local Ollama)
  7. 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

  1. In Instagram, open a reel β†’ Share β†’ IG Food Mapper.
  2. The Shortcut fetches the post and sends the caption to your app.
  3. 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 / lng form 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.