360 Secure SkillHub
360 安全技能中心

Seerr Media Requests

调用 Seerr 的 HTTP API 搜索电影与电视剧,返回标题、年份、评分、简介和媒体状态,并在未入库时自动提交下载请求;结果以 Discord 消息逐条发送,可附 TMDB 海报图。需预先配置 Seerr 实例地址与 API key,并已接好 Sonarr/Radarr。

ximga
ximga
热度 58.67
最近更新 2026-05-17 13:15:37
分类:生活依赖:代码执行 / 第三方 API应用场景:推荐

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add seerr
Metadata
name
seerr
description
Search for movies and TV shows via a Seerr instance and request them for download. Use when the user asks to download, find, request, or queue a movie or TV show. Requires a running Seerr instance with Sonarr/Radarr configured.
env
["SEERR_URL","SEERR_API_KEY"]

Seerr Media Requests

Search and request movies/TV shows through Seerr's API. Seerr routes movie requests to Radarr and TV requests to Sonarr automatically.

Setup

The agent needs two environment variables. Store them in your OpenClaw environment or .env file:

  • SEERR_URL — Base URL of the Seerr instance (e.g. http://localhost:5055 if running locally, or http://<server-ip>:5055 for remote)
  • SEERR_API_KEY — API key from Seerr → Settings → General

Important: Always use $SEERR_URL (not hardcoded localhost) in API calls so it works regardless of where Seerr is hosted.

API Reference

All requests require the header X-Api-Key: <SEERR_API_KEY>.

Search

curl -s -H "X-Api-Key: $SEERR_API_KEY" \
  "$SEERR_URL/api/v1/search?query=PERCENT_ENCODED_QUERY&page=1&language=en"

Results array. Key fields per result:

  • mediaType — movie, tv, or person
  • id — TMDB id (used for requests)
  • title (movies) / name (TV)
  • releaseDate / firstAirDate
  • overview
  • mediaInfo.status — 1 (unknown), 2 (pending), 3 (processing), 4 (partially available), 5 (available). Absent if never requested.

Filter results to mediaType of movie or tv only.

Request a Movie

curl -s -X POST -H "X-Api-Key: $SEERR_API_KEY" -H "Content-Type: application/json" \
  "$SEERR_URL/api/v1/request" \
  -d '{"mediaType":"movie","mediaId":TMDB_ID}'

Request a TV Show

All seasons:

curl -s -X POST -H "X-Api-Key: $SEERR_API_KEY" -H "Content-Type: application/json" \
  "$SEERR_URL/api/v1/request" \
  -d '{"mediaType":"tv","mediaId":TMDB_ID,"seasons":"all"}'

Specific seasons:

curl -s -X POST -H "X-Api-Key: $SEERR_API_KEY" -H "Content-Type: application/json" \
  "$SEERR_URL/api/v1/request" \
  -d '{"mediaType":"tv","mediaId":TMDB_ID,"seasons":[1,3]}'

Check Status

# Movie
curl -s -H "X-Api-Key: $SEERR_API_KEY" "$SEERR_URL/api/v1/movie/TMDB_ID"

# TV
curl -s -H "X-Api-Key: $SEERR_API_KEY" "$SEERR_URL/api/v1/tv/TMDB_ID"

Workflow

  1. Search for the title
  2. Filter to movie/tv results
  3. For each result, send a separate Discord message with:
    • Poster image via media field
    • Title, year, rating, genres
    • Brief overview
    • Status emoji + text
    • Seerr link
  4. Check availability and auto-request if not available:
    • If mediaInfo.status = 5 (available), just show status
    • Otherwise, request via API and confirm
  5. Send each result as its own message (don't combine into one message)

Discord Integration

When responding in Discord, send plain text messages with inline links and optional poster images. Do not use interactive components — OpenClaw doesn't support them yet.

Discord Message Format

Send each result as its own separate message. Use the media field to embed the poster.

{
  "action": "send",
  "channel": "discord",
  "to": "channel:<CHANNEL_ID>",
  "message": "<emoji> **<title>** (<year>) — ⭐ <rating>\n<genre1>, <genre2>\n\n<overview (truncated to 1-2 sentences)>\n\n<status emoji> <status text>\n\n🔗 [View in Seerr]($SEERR_URL/<mediaType>/<tmdbId>)",
  "media": "https://image.tmdb.org/t/p/w500/<posterPath>"
}

Key Points

  • Send each search result as a separate message (one message per result)
  • Use media field for the poster image (TMDB URL format: https://image.tmdb.org/t/p/w500/<posterPath>)
  • Include status emoji: ✅ available, ⏳ pending, 🔄 processing/partially available
  • Auto-request if not available, then update the message or send follow-up confirmation