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.