360 Secure SkillHub
360 安全技能中心

luci-upload

核心功能:将视频、图片上传至memories.ai,可自动提取拍摄时间、GPS等元数据,缺失时支持手动补充;支持先探测元数据再上传。典型场景:用户需把媒体存入Luci记忆、上传文件给Luci。输入为媒体文件路径,可选时间、时区、位置等参数;输出为上传结果或探测到的元数据。需配置MEMORIES_AI_KEY,视频处理依赖ffprobe。

memories-ai-official
memories-ai-official
热度 29.10
最近更新 2026-05-11 17:47:52
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add memoriesai-upload
Metadata
name
luci-upload
description
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
metadata
{"clawdbot":{"emoji":"📤","requires":{"bins":["python3","ffprobe"],"env":["MEMORIES_AI_KEY"]},"primaryEnv":"MEMORIES_AI_KEY"}}

luci-upload

Upload 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.

Setup

Requires MEMORIES_AI_KEY — same key as luci-memory. If not found, create {baseDir}/.env:

MEMORIES_AI_KEY=sk-your-key-here

Also 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.

When to use

  • User wants to upload a video or image to memories.ai
  • User says "add this video/photo to my memory" or similar
  • User wants to send/import media to Luci

How it works

The 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:

  1. When was it taken? → pass as --datetime with --timezone
  2. Where was it taken? → pass as --location (geocoded automatically) or --lat/--lon

The multipart Content-Type is chosen by file extension (.mp4 → video/mp4, .png → image/png, .jpg → image/jpeg, etc.).

How to invoke

# Probe metadata only (no upload) — do this first to check what info is available
bash {baseDir}/run.sh --probe --file /path/to/file

# Upload a video with auto-detected metadata
bash {baseDir}/run.sh --file /path/to/video.mp4

# Upload a video with explicit time and location name (geocoded to lat/lon)
bash {baseDir}/run.sh --file /path/to/video.mp4 --datetime "2025-06-22 14:00:00" --timezone Asia/Shanghai --location "Suzhou, China"

# Upload an image — usually needs explicit time/location since EXIF is often missing
bash {baseDir}/run.sh --file /path/to/photo.png --datetime "2025-09-01 00:00:00" --timezone Asia/Shanghai --location "Shunde, China"

# Upload with explicit coordinates and epoch timestamp
bash {baseDir}/run.sh --file /path/to/video.mp4 --time 1769097600000 --lat 31.3 --lon 120.59

Parameters

Flag Short Description
--file -f Path to video or image file (required)
--probe Only show extracted metadata, don't upload
--time Start time as epoch milliseconds
--datetime Start time as readable datetime (e.g. 2025-06-22 14:00:00)
--timezone Timezone for --datetime (e.g. Asia/Shanghai, UTC, +8)
--lat Latitude
--lon Longitude
--location Location name to geocode (e.g. Suzhou, China)

Workflow

  1. Probe first: run with --probe to see what metadata the file has
  2. If time and GPS are both present → upload directly
  3. If missing (common for images, screenshots), ask the user for the missing info (time and/or location)
  4. Upload with all parameters filled in