{"skill":{"slug":"memoriesai-upload","displayName":"luci-upload","summary":"Upload a video or image to memories.ai. Use when the user wants to upload media, add a video/photo to their memory, or send a file to Luci. This skill is des...","description":"---\nname: luci-upload\ndescription: \"Upload a video or image to memories.ai. Use when the user wants to upload media, add a video/photo to their memory, or send a file to Luci. This skill is designed to work with luci-memory skill from clawhub\"\nmetadata: {\"clawdbot\":{\"emoji\":\"📤\",\"requires\":{\"bins\":[\"python3\",\"ffprobe\"],\"env\":[\"MEMORIES_AI_KEY\"]},\"primaryEnv\":\"MEMORIES_AI_KEY\"}}\n---\n\n# luci-upload\n\nUpload a video or image file to memories.ai with capture time and location metadata. User can also download LUCI AI app to manually upload as well.\n\n## Setup\n\nRequires `MEMORIES_AI_KEY` — same key as luci-memory. If not found, create `{baseDir}/.env`:\n\n```\nMEMORIES_AI_KEY=sk-your-key-here\n```\n\nAlso requires `ffprobe` (from ffmpeg) for auto-extracting video metadata. Images can be uploaded without ffprobe finding anything — in that case the agent must supply time and location explicitly.\n\n## When to use\n- User wants to upload a video or image to memories.ai\n- User says \"add this video/photo to my memory\" or similar\n- User wants to send/import media to Luci\n\n## How it works\n\nThe script tries to auto-extract capture time and GPS coordinates from the file metadata (via ffprobe). Videos from phones and JPEGs with EXIF usually work; PNGs and screenshots rarely have this info. If metadata is missing, the agent should ask the user for:\n\n1. **When** was it taken? → pass as `--datetime` with `--timezone`\n2. **Where** was it taken? → pass as `--location` (geocoded automatically) or `--lat`/`--lon`\n\nThe multipart `Content-Type` is chosen by file extension (`.mp4` → `video/mp4`, `.png` → `image/png`, `.jpg` → `image/jpeg`, etc.).\n\n## How to invoke\n\n```bash\n# Probe metadata only (no upload) — do this first to check what info is available\nbash {baseDir}/run.sh --probe --file /path/to/file\n\n# Upload a video with auto-detected metadata\nbash {baseDir}/run.sh --file /path/to/video.mp4\n\n# Upload a video with explicit time and location name (geocoded to lat/lon)\nbash {baseDir}/run.sh --file /path/to/video.mp4 --datetime \"2025-06-22 14:00:00\" --timezone Asia/Shanghai --location \"Suzhou, China\"\n\n# Upload an image — usually needs explicit time/location since EXIF is often missing\nbash {baseDir}/run.sh --file /path/to/photo.png --datetime \"2025-09-01 00:00:00\" --timezone Asia/Shanghai --location \"Shunde, China\"\n\n# Upload with explicit coordinates and epoch timestamp\nbash {baseDir}/run.sh --file /path/to/video.mp4 --time 1769097600000 --lat 31.3 --lon 120.59\n```\n\n## Parameters\n\n| Flag | Short | Description |\n|------|-------|-------------|\n| `--file` | `-f` | Path to video or image file (required) |\n| `--probe` | | Only show extracted metadata, don't upload |\n| `--time` | | Start time as epoch milliseconds |\n| `--datetime` | | Start time as readable datetime (e.g. `2025-06-22 14:00:00`) |\n| `--timezone` | | Timezone for `--datetime` (e.g. `Asia/Shanghai`, `UTC`, `+8`) |\n| `--lat` | | Latitude |\n| `--lon` | | Longitude |\n| `--location` | | Location name to geocode (e.g. `Suzhou, China`) |\n\n## Workflow\n\n1. **Probe first**: run with `--probe` to see what metadata the file has\n2. If time and GPS are both present → upload directly\n3. If missing (common for images, screenshots), ask the user for the missing info (time and/or location)\n4. Upload with all parameters filled in","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":316,"installsAllTime":12,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1778164972502,"updatedAt":1778492872010},"latestVersion":{"version":"1.0.0","createdAt":1778164972502,"changelog":"Realse under official name","license":"MIT-0"},"metadata":{"setup":[{"key":"MEMORIES_AI_KEY","required":true}],"os":null,"systems":null},"owner":{"handle":"memories-ai-official","userId":"s17at2353t9phxw9pn66nspqad84vrax","displayName":"memories-ai-official","image":"https://avatars.githubusercontent.com/u/258160197?v=4"},"moderation":null}