Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

find-scene寻找场景

Agent Skill

find-scene 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

367

周安装

15

GitHub Stars

3

下载量

119
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:find-scene(寻找场景)
来源仓库:https://github.com/uriva/find-scene-skill
仓库路径:skills/find-scene
安装命令:
npx skills add https://github.com/uriva/find-scene-skill --skill find-scene
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/uriva/find-scene-skill --skill find-scene

简介

用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中快速定位候选结果。

  • 适用于关键词搜索、任务场景匹配或来源线索筛选等研究检索场景。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围、维护状态及是否触发联网或文件操作。
  • find-scene 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

find-scene API

API for searching and downloading movie/TV show scenes by dialog, time, or visual description.

Base URL

https://api.find-scene.com

All endpoints are POST with Content-Type: application/json, except GET /api/operation/{id}.

Authentication

Every API request requires a _token field in the JSON body.

{ "_token": "user-api-token", ...other fields }

How to get a token

  1. Go to https://find-scene.com and sign in
  2. Open https://find-scene.com/settings
  3. Click "Generate new token" — the token is shown once, so copy it immediately
  4. Include it as _token in every API request body

To revoke a token, go to https://find-scene.com/settings and click "Revoke" next to the token you want to disable.

Response Format

All successful responses are wrapped in {"result": <structured object>}. Each endpoint returns a typed JSON object (not a plain string). Error responses use {"error": "message"} at the top level (HTTP 4xx/5xx) or {"result": {"error": "message"}} for domain-level errors within a 200 response.

Video Source Hash

An internal find-scene ID for a video file. Obtained from get_best_video_source. This is NOT an IMDB ID or filename. Required for downloads, frame extraction, and high-accuracy text source lookups.

Text Source Hash

An internal find-scene ID for a subtitle/text file. Obtained from get_text_source or get_high_accuracy_text_source. Required for phrase search and subtitle retrieval. NOT a filename or IMDB ID.

Async Operations

get_best_video_source, get_text_source, get_high_accuracy_text_source, download_by_time, extract_frame, stitch_videos, stitch_videos_side_by_side and transcribe_by_time return an operation ID (not a direct result). You must poll GET /api/operation/{id} until status is completed, then use the result fields from the response.

Statuses: in_progress, completed, failed, cancelled

Video Query Object

Many endpoints accept a video query object with these optional fields:

FieldTypeDescription
movieOrTVShowNamestring/nullMovie or TV show name
dubbedstring/nullDubbing language code, e.g. "en", "de", "pt-br"
animatedboolean/nullIs the video animated
blackAndWhiteboolean/nullIs the video black and white
yearnumber/nullYear (for distinguishing remakes)
isSeriesboolean/nullUser explicitly said it's a series
seasonnumber/nullSeason number (series only)
episodenumber/nullEpisode number (series only)

Time Format

All time parameters use HH:MM:SS format, e.g. "00:01:30".

Display Params Object

Used by download_by_time and extract_frame:

FieldTypeDefaultDescription
removeWatermarkbooleanfalsePro users only
gifbooleanfalseOnly if user explicitly asked for GIF
mobilebooleanfalseCrop to mobile format. Only if user asked

Typical Workflows

Workflow 1: Find and download a scene by quote

1. quote_to_movie        -> identify which movie contains the quote
2. get_best_video_source -> returns operation ID, poll until completed to get videoHash
3. get_text_source       -> returns operation ID, poll until completed to get textSource hash
4. search_phrase         -> find exact timestamp of the quote
5. download_by_time      -> schedule clip download (returns operation ID)
6. GET /api/operation/id -> poll until completed, get download URL

Workflow 2: Download a scene by time

1. get_best_video_source -> returns operation ID, poll until completed to get videoHash
2. download_by_time      -> schedule download with start/end times
3. GET /api/operation/id -> poll until completed

Workflow 3: Search by visual scene description

1. find_by_scene_description -> search by what happens visually
2. get_best_video_source     -> returns operation ID, poll until completed to get videoHash
3. download_by_time          -> download the scene
4. GET /api/operation/id     -> poll until completed

Workflow 4: Find which episode contains a quote (TV series)

1. find_episode_by_phrase -> find season/episode for a phrase
2. get_best_video_source  -> returns operation ID, poll until completed to get videoHash
3. get_text_source        -> returns operation ID, poll until completed to get textSource
4. search_phrase          -> get exact timestamp
5. download_by_time       -> download clip
6. GET /api/operation/id  -> poll until completed

Workflow 5: Extract a frame / screenshot

1. get_best_video_source -> get videoHash
2. extract_frame         -> schedule frame extraction (returns operation ID)
3. GET /api/operation/id -> poll until completed, get image URL

Tips

  • Always get the video source hash first before attempting downloads or text source lookups.
  • Use get_high_accuracy_text_source (with videoHash) over get_text_source when you have a video source, for better subtitle timing alignment.
  • All async tools return operation IDs. Never return these to the user as download links. Always poll until you get the actual result.
  • Keep clip durations reasonable (under 60 seconds) to avoid long processing times.
  • For TV series, use find_episode_by_phrase first to identify the episode before searching within it.
  • The find_by_scene_description endpoint requires the video to have been indexed. If it returns no results, use request_indexing_for_scene_description and try again later.
  • OpenAPI spec is available at https://api.find-scene.com/api/openapi.json for machine-readable schema details.

Error Handling

  • 400: Invalid parameters (check required fields)
  • 401: Invalid or missing _token
  • 500: Internal server error (retry or report)

API Endpoints Reference

POST /api/get_best_video_source

Schedules a task to get the best video source for a given video. The result will be automatically delivered when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
queryobjectrequired
timeoutSecondsnumberoptionalMax time to wait for video sources to respond (in seconds). Leave empty unless the user gave a seconds value; avoid manual minute->seconds math. Default is 60 seconds.

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/compute_running_time

Compute the running time of a video.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
imdbIdstringrequired

Response: {"runtimeSeconds": number | null}

POST /api/get_high_accuracy_text_source

Schedules a task to get a text source for given video source. The result will be automatically delivered when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
languagestringoptionalThe subs language we are interested in. e.g. pt-br, en, de etc'
queryobjectrequired
videoHashstringrequiredAn internal find-scene.com id of the video source (not an imdb id or a filename). This will be in the output of the get_best_video_source tool.

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/get_text_source

Schedules a task to get a text source for given video details. If you have the video source use the other version, it will be more accurate with the timings. Note that this outputs a text source hash. NOT a video source hash. The result will be automatically delivered when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
languagestringoptionalThe subs language we are interested in. e.g. pt-br, en, de etc'
queryobjectrequired
minDurationnumberoptionalIf provided, only return subtitles where the final entry time end time is larger than this number of seconds.

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/search_phrase

Search phrases in video text.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
phraseSearchParamsobjectrequired
textSourcestringrequired

Response: {"occurrences": object[]} or {"error": string}

POST /api/get_srt_entries_around_phrase

Get subtitle entries (text and times) around a phrase, for a given video. Returns entries within a time window before and after the phrase.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
limitnumberrequiredMax number of sections to return, if the phrase occurs many times.
skipnumberrequiredSkip this many phrase occurrences, e.g. if user asked for the next match.
textSourcestringrequired
phrasestringrequiredPhrase to search for in subtitles
secondsBeforenumberrequiredSeconds before the phrase to include
secondsAfternumberrequiredSeconds after the phrase to include

Response: {"occurrences": object[]} or {"error": string}

POST /api/get_srt_entries_by_time_range

Get subtitle entries (text and times) for a given video and time range.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
videoQueryobjectrequired
startTimestringrequirede.g. 00:01:30
endTimestringrequirede.g. 00:01:30
subsLanguagestringoptionalSubtitle language, e.g. en, pt-br

Response: {"srt": string} or {"error": string}

POST /api/download_by_time

Schedules a task to download a video part by time. The result will be automatically delivered to the user (UI + email) and billed when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
startTimestringrequirede.g. 00:01:30
endTimestringrequirede.g. 00:01:30
srtOffsetnumberoptionalIf you need to correct for time in the subs file, give the offset here.
videoHashstringrequiredAn internal find-scene.com id of the video source (not an imdb id or a filename). This will be in the output of the get_best_video_source tool.
textSourcestringoptionalInternal find-scene id of a text source. Not a filename or an imdb id. It can be got using the get_high_accuracy_text_source tool.
displayParamsobjectoptional

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/extract_frame

Extract a single frame from a video at a specific time. Useful for creating stickers or screenshots. The result will be automatically delivered to the user when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
videoHashstringrequiredAn internal find-scene.com id of the video source (not an imdb id or a filename). This will be in the output of the get_best_video_source tool.
timestringrequirede.g. 00:01:30
textSourcestringoptionalOptional text source to overlay subtitles on the frame
overrideTextTopstringoptionalOptional custom text to overlay at the top of the frame (meme generator mode)
overrideTextBottomstringoptionalOptional custom text to overlay at the bottom of the frame (meme generator mode)
displayParamsobjectoptional

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/stitch_videos

Stitch multiple previously downloaded video clips into a single video. Accepts URLs from completed download_by_time operations. The result will be automatically delivered to the user (UI + email) and billed when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
urlsstring[]requiredArray of video URLs to stitch together in order. These should be URLs from completed download_by_time operations.
displayParamsobjectrequired

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/stitch_videos_side_by_side

Place multiple previously downloaded video clips side by side in a single frame. All videos play simultaneously. Accepts URLs from completed download_by_time operations. The result will be automatically delivered to the user (UI + email) and billed when complete. You will be notified when the operation finishes — do not poll or check status.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
urlsstring[]requiredArray of video URLs to stitch together in order. These should be URLs from completed download_by_time operations.
displayParamsobjectrequired

Response: {"operationId": string} or {"error": string}

This is an async endpoint. Returns {"result": {"operationId": "..."}}. Poll GET /api/operation/{id} until completed.

POST /api/cancel_operation

Cancel a stuck async operation by its ID.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
idstringrequiredThe operation ID to cancel

Response: {"cancelled": boolean, "operationId": string} or {"cancelled": boolean, "reason": string}

POST /api/is_string_a_movie_name

Check if the string is a movie name

Request body (JSON, requires _token):

FieldTypeRequiredDescription
stringstringrequiredThe string to check

Response: {"isMovieName": boolean}

POST /api/quote_to_movie

Get movie name from quote

Request body (JSON, requires _token):

FieldTypeRequiredDescription
quotestringrequiredThe quote to check

Response: {"candidates": string[]}

POST /api/find_episode_by_phrase

Find a series episode by a phrase. This is not for movies, but tv shows.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
phrasestringrequiredThe quote or phrase to search for
videoQueryobjectrequiredThe TV show to search in. Must include 'name' (the show title).
seasonnumberoptionalNarrow search to a specific season
limitnumberrequired

Response: {"episodes": object[]}

POST /api/query_imdb

Get movie information from IMDB, including the imdb id itself, if you only have the title.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
titlestringrequiredThe movie title to query
yearnumberoptionalThe year of the movie
imdbIdstringoptionalThe IMDB ID of the movie
seasonnumberoptional
episodenumberoptional

Response: {"name": string, "imdb": string, "year": number, "season": number, "episode": number}

POST /api/popular_quotes_from_title

Get popular quotes from a movie or TV show title

Request body (JSON, requires _token):

FieldTypeRequiredDescription
limitnumberrequired
namestringrequired
imdbstringoptionalThe IMDB ID of the movie

Response: {"quotes": string[]}

POST /api/find_by_scene_description

Search scene by non dialog description.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
descriptionstringrequireda description of what happens in the scene, if provided by the user. do not include the movie or tv show name here.
videoanyoptional
nResultsnumberrequired
nSkipnumberrequiredskip this amount of results, e.g. if user requested the next result, or another one.
scoreThresholdnumberoptionalminimum similarity score (0-1) to include a result. use higher values (e.g. 0.6) for specific scenes, lower (e.g. 0.3) for vague descriptions.

Response: {"results": object[], "warning": string} or {"error": string}

POST /api/request_indexing_for_scene_description

Request indexing of a video. If it's a series we need to know the season and episode.

Request body (JSON, requires _token):

FieldTypeRequiredDescription
videoobjectrequired

Response: {"requested": boolean}

POST /api/check_quota

Check how many search credits the current user has remaining. Credits work on a rolling 30-day window — each credit returns exactly 30 days after it was used. If the user is low on credits, tell them when their next credit returns.

Response: {"creditsRemaining": number, "nextCreditReturnMs": number}

GET /api/operation/{id}

Poll the status of an async operation (returned by download_by_time or extract_frame)

Path parameters:

NameTypeRequiredDescription
idstringyes

Response: object

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.87%
按下载量换算46

Claude

27.35%
按下载量换算33

Cursor

20.6%
按下载量换算25

Gemini CLI

9.7%
按下载量换算12

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills