Video Reverse Prompt

v1.0.3

Analyze videos to extract reverse prompts, shot-by-shot breakdowns, and AI-ready visual descriptions via the NanoPhoto.AI Video Reverse Prompt API. Use when:...

0· 258·0 current·0 all-time
byNanoPhoto.AI@nanophotohq

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for nanophotohq/video-reverse-prompt.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Video Reverse Prompt" (nanophotohq/video-reverse-prompt) from ClawHub.
Skill page: https://clawhub.ai/nanophotohq/video-reverse-prompt
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: NANOPHOTO_API_KEY
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install video-reverse-prompt

ClawHub CLI

Package manager switcher

npx clawhub@latest install video-reverse-prompt
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, SKILL.md, API reference, and the bundled script all consistently target NanoPhoto.AI's reverse-prompt endpoint. The single required env var (NANOPHOTO_API_KEY) is the expected credential for this external API.
Instruction Scope
Runtime instructions and the script perform exactly the operations described: determine source, optionally read a local .mp4, base64-encode it, and POST to https://nanophoto.ai/api/sora-2/reverse-prompt, streaming the text response to stdout. This is within scope, but be aware that user-supplied videos are uploaded to an external service and responses (extracted prompts/descriptions) are printed/returned verbatim.
Install Mechanism
No install step is provided (instruction-only with a helper script). No downloads from third-party URLs or archive extraction. The included Python script is plain, readable, and uses standard library modules.
Credentials
Only NANOPHOTO_API_KEY is required and used by the script. No unrelated secrets, system credentials, or config paths are requested or accessed.
Persistence & Privilege
The skill does not request always:true or attempt to modify other skills or system settings. It requires an API key to call the external service but otherwise has no special persistent privileges.
Assessment
This skill looks coherent, but consider these practical points before installing: (1) It uploads whatever video you provide to an external service (nanophoto.ai) — do not upload private or copyrighted content you are not authorized to share. (2) Provide the API key via the platform's secure env var setting (NANOPHOTO_API_KEY); never paste the key into chat. (3) Local files are read and fully base64-encoded in memory (script enforces a 30 MB limit) — large files may use significant memory. (4) The script prints the API's streaming text response (the extracted prompts/descriptions) to stdout — treat those outputs as potentially sensitive. (5) If you need guarantees about retention/privacy, review NanoPhoto.AI's terms and privacy policy before uploading content.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

EnvNANOPHOTO_API_KEY
Primary envNANOPHOTO_API_KEY
latestvk97fydamfpkzxr5r9nk7f6vew583sjhe
258downloads
0stars
4versions
Updated 1mo ago
v1.0.3
MIT-0

Video Reverse Prompt

Analyze videos to extract detailed shot breakdowns and AI-ready prompts via the NanoPhoto.AI API.

Use the bundled script for local file uploads instead of inlining large base64 payloads directly in the shell; it is more reliable for multi-megabyte videos.

Prerequisites

  1. Obtain an API key at: https://nanophoto.ai/settings/apikeys
  2. Configure NANOPHOTO_API_KEY before using the skill.

Preferred OpenClaw setup:

  • Open the skill settings for this skill
  • Add an environment variable named NANOPHOTO_API_KEY
  • Paste the API key as its value

Equivalent config shape:

{
  "skills": {
    "entries": {
      "video-reverse-prompt": {
        "enabled": true,
        "env": {
          "NANOPHOTO_API_KEY": "your_api_key_here"
        }
      }
    }
  }
}

Other valid ways to provide the key:

  • Shell: export NANOPHOTO_API_KEY="your_api_key_here"
  • Tool-specific env config: any runtime that injects NANOPHOTO_API_KEY

Credential declaration summary:

  • Required env var: NANOPHOTO_API_KEY
  • Primary credential: NANOPHOTO_API_KEY
  • No unrelated credentials are required

If the env var is not set, ask the user to configure it before proceeding.

Workflow

  1. Collect the video source from the user (YouTube link, direct .mp4 URL, or local file path)
  2. Determine videoSource type: youtube, url, or file
  3. Confirm the user is authorized to upload or process the content
  4. If local file: read and base64-encode it (must be .mp4, max 30 MB)
  5. Call the API (streaming response)
  6. Return the shot breakdown and prompts to the user

API Call

YouTube Video

curl -X POST "https://nanophoto.ai/api/sora-2/reverse-prompt" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NANOPHOTO_API_KEY" \
  --data-raw '{
    "videoSource": "youtube",
    "locale": "en",
    "videoUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX"
  }'

Direct Video URL

curl -X POST "https://nanophoto.ai/api/sora-2/reverse-prompt" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NANOPHOTO_API_KEY" \
  --data-raw '{
    "videoSource": "url",
    "locale": "en",
    "videoUrl": "https://example.com/video.mp4"
  }'

Local File (Preferred: bundled script)

python3 scripts/reverse_prompt_file.py your-video.mp4 --locale en

The script reads NANOPHOTO_API_KEY from the environment, validates the file size/format, base64-encodes the MP4, and prints the streaming text response.

Local File (Manual Base64 request)

VIDEO_BASE64=$(base64 < your-video.mp4)

curl -X POST "https://nanophoto.ai/api/sora-2/reverse-prompt" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NANOPHOTO_API_KEY" \
  --data-raw "{
    \"videoSource\": \"file\",
    \"locale\": \"en\",
    \"videoFile\": \"$VIDEO_BASE64\",
    \"videoFileName\": \"your-video.mp4\"
  }"

Parameters

ParameterTypeRequiredDescription
videoSourcestringYesyoutube, url, or file
localestringNoOutput language (default: en). Supported: en, zh, zh-TW, ja, ko, es, fr, de, pt, ru, ar
videoUrlstringConditionalYouTube link or direct .mp4 URL
videoFilestringConditionalBase64-encoded video (when videoSource is file)
videoFileNamestringNoOriginal filename for uploaded videos

Constraints

  • Only .mp4 format supported
  • Max file size: 30 MB (before base64 encoding)
  • videoFile accepts plain base64 or Data URL (data:video/mp4;base64,...)
  • Costs 1 credit per API call

Response

The API returns a streaming text response (Content-Type: text/plain; charset=utf-8) containing a Markdown table with:

  • Shot number, framing/angle, camera movement
  • Detailed visual description
  • Audio analysis (BGM, sound effects, narration)
  • Duration per shot
  • Overall summary

Error Handling

errorCodeHTTPCauseAction
LOGIN_REQUIRED401Invalid or missing API keyVerify key at https://nanophoto.ai/settings/apikeys
API_KEY_RATE_LIMIT_EXCEEDED429Rate limit exceededWait and retry
INSUFFICIENT_CREDITS402Not enough creditsTop up credits
INVALID_INPUT400Missing required parametersCheck videoSource and corresponding fields
INVALID_YOUTUBE_URL400Invalid YouTube URLAsk user for a valid YouTube link
INVALID_VIDEO_URL400Invalid video URLAsk user for a valid .mp4 URL
INVALID_FORMAT400Not MP4 formatOnly .mp4 is supported
FILE_TOO_LARGE400File exceeds 30 MBAsk user for a smaller file
VIDEO_DOWNLOAD_FAILED400Cannot download videoCheck URL accessibility
VIDEO_PROCESSING_FAILED422Processing errorRetry or try a different video
AI_SERVICE_ERROR503AI service unavailableRetry later

Bundled script

  • scripts/reverse_prompt_file.py: Reliable local-file uploader for .mp4 inputs. Use it when the user provides a local video path.

Full API Reference

See references/api.md for complete endpoint documentation.

Comments

Loading comments...