Request media on Overseerr

# Overseerr Request Media Skill ## Purpose Request a movie or TV show using the user's Overseerr instance. Overseerr forwards the request to Sonarr/Radarr. ## Requirements Environment variables: - OVERSEERR_URL (example: https://overseerr.yourdomain.com) - OVERSEERR_API_KEY Authentication header: - X-Api-Key: $OVERSEERR_API_KEY Overseerr can detect if media is already available or already requested based on your configured Plex + Sonarr/Radarr connections. ## What this skill handles User examples: - "Request Interstellar" - "Add Interstellar to overseerr" - "Request Reacher season 2" - "Request The Office seasons 2-4" ## Workflow (ALWAYS FOLLOW) ### 1) Parse the user's request Extract: - Title - Optional type hint: movie or tv - Optional season request: - "season 2" - "seasons 1-3" - "season 1 and 4" ### 2) Search Overseerr GET: $OVERSEERR_URL/api/v1/search?query=<urlencoded title> Example: curl -s -H "X-Api-Key: $OVERSEERR_API_KEY" \ "$OVERSEERR_URL/api/v1/search?query=interstellar" ### 3) Clarify if the result is ambiguous (movie vs show with same name) If the search results include BOTH: - a movie match AND - a tv match with the same (or extremely similar) title, THEN ask the user to choose before requesting. Show 2-4 options max, like: - Movie: Title (Year) - TV: Title (Year) If the user provided an obvious hint like "movie", "show", "tv", "season 2", then pick the matching type automatically. ### 4) Pick the best match Rules: - Prefer exact title match - Prefer the highest popularity match when multiple results exist - Respect the user's type hint if provided (movie vs tv) ### 5) Check if it already exists (available or already requested) Before creating a request: - Inspect the selected result for availability/request status info returned by Overseerr (library/availability/request indicators). - If it indicates the media is already available in the library: - Do NOT request it - Reply: "Already available ✅" - If it indicates the media is already requested (pending/processing/approved/requested): - Do NOT request it again - Reply: "Already requested ✅" If the API response does NOT clearly indicate status: - Proceed with creating the request - If the POST fails due to duplicate/existing request, reply "Already requested ✅" ### 6) Create the request POST: $OVERSEERR_URL/api/v1/request Movie JSON: { "mediaType": "movie", "mediaId": <tmdbId> } TV JSON (full series): { "mediaType": "tv", "mediaId": <tmdbId> } TV JSON (specific seasons): { "mediaType": "tv", "mediaId": <tmdbId>, "seasons": [2,3] } Examples: Movie: curl -s -X POST \ -H "X-Api-Key: $OVERSEERR_API_KEY" \ -H "Content-Type: application/json" \ "$OVERSEERR_URL/api/v1/request" \ -d '{"mediaType":"movie","mediaId":157336}' TV (full): curl -s -X POST \ -H "X-Api-Key: $OVERSEERR_API_KEY" \ -H "Content-Type: application/json" \ "$OVERSEERR_URL/api/v1/request" \ -d '{"mediaType":"tv","mediaId":71912}' TV (season 2): curl -s -X POST \ -H "X-Api-Key: $OVERSEERR_API_KEY" \ -H "Content-Type: application/json" \ "$OVERSEERR_URL/api/v1/request" \ "$OVERSEERR_URL/api/v1/request" \ -d '{"mediaType":"tv","mediaId":71912,"seasons":[2]}' ### 7) Respond cleanly - Confirm what was requested - If TV request was partial, list seasons - If already requested/available, say so - If no results, ask for alternate spelling or more context ## Output style Short confirmations: - "✅ Requested: Interstellar (2014)" - "✅ Requested: Reacher (Season 2)" - "Already requested ✅" - "Already available ✅" ## Error handling - If search returns 0 results: - Ask for alternate title or year - If multiple equally good matches remain: - Ask the user to pick from 2-4 options

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Request media on Overseerr" with this command: npx skills add trialskid/overseerr-request-media

Overseerr Request Media Skill

Purpose

Request a movie or TV show using the user's Overseerr instance. Overseerr forwards the request to Sonarr/Radarr.

Requirements

Environment variables:

Authentication header:

  • X-Api-Key: $OVERSEERR_API_KEY

Overseerr can detect if media is already available or already requested based on your configured Plex + Sonarr/Radarr connections.

What this skill handles

User examples:

  • "Request Interstellar"
  • "Add Interstellar to overseerr"
  • "Request Reacher season 2"
  • "Request The Office seasons 2-4"

Workflow (ALWAYS FOLLOW)

1) Parse the user's request

Extract:

  • Title
  • Optional type hint: movie or tv
  • Optional season request:
    • "season 2"
    • "seasons 1-3"
    • "season 1 and 4"

2) Search Overseerr

GET: $OVERSEERR_URL/api/v1/search?query=<urlencoded title>

Example: curl -s -H "X-Api-Key: $OVERSEERR_API_KEY"
"$OVERSEERR_URL/api/v1/search?query=interstellar"

3) Clarify if the result is ambiguous (movie vs show with same name)

If the search results include BOTH:

  • a movie match AND
  • a tv match with the same (or extremely similar) title,

THEN ask the user to choose before requesting.

Show 2-4 options max, like:

  • Movie: Title (Year)
  • TV: Title (Year)

If the user provided an obvious hint like "movie", "show", "tv", "season 2", then pick the matching type automatically.

4) Pick the best match

Rules:

  • Prefer exact title match
  • Prefer the highest popularity match when multiple results exist
  • Respect the user's type hint if provided (movie vs tv)

5) Check if it already exists (available or already requested)

Before creating a request:

  • Inspect the selected result for availability/request status info returned by Overseerr (library/availability/request indicators).
  • If it indicates the media is already available in the library:
    • Do NOT request it
    • Reply: "Already available ✅"
  • If it indicates the media is already requested (pending/processing/approved/requested):
    • Do NOT request it again
    • Reply: "Already requested ✅"

If the API response does NOT clearly indicate status:

  • Proceed with creating the request
  • If the POST fails due to duplicate/existing request, reply "Already requested ✅"

6) Create the request

POST: $OVERSEERR_URL/api/v1/request

Movie JSON: { "mediaType": "movie", "mediaId": <tmdbId> }

TV JSON (full series): { "mediaType": "tv", "mediaId": <tmdbId> }

TV JSON (specific seasons): { "mediaType": "tv", "mediaId": <tmdbId>, "seasons": [2,3] }

Examples:

Movie: curl -s -X POST
-H "X-Api-Key: $OVERSEERR_API_KEY"
-H "Content-Type: application/json"
"$OVERSEERR_URL/api/v1/request"
-d '{"mediaType":"movie","mediaId":157336}'

TV (full): curl -s -X POST
-H "X-Api-Key: $OVERSEERR_API_KEY"
-H "Content-Type: application/json"
"$OVERSEERR_URL/api/v1/request"
-d '{"mediaType":"tv","mediaId":71912}'

TV (season 2): curl -s -X POST
-H "X-Api-Key: $OVERSEERR_API_KEY"
-H "Content-Type: application/json"
"$OVERSEERR_URL/api/v1/request"
"$OVERSEERR_URL/api/v1/request"
-d '{"mediaType":"tv","mediaId":71912,"seasons":[2]}'

7) Respond cleanly

  • Confirm what was requested
  • If TV request was partial, list seasons
  • If already requested/available, say so
  • If no results, ask for alternate spelling or more context

Output style

Short confirmations:

  • "✅ Requested: Interstellar (2014)"
  • "✅ Requested: Reacher (Season 2)"
  • "Already requested ✅"
  • "Already available ✅"

Error handling

  • If search returns 0 results:
    • Ask for alternate title or year
  • If multiple equally good matches remain:
    • Ask the user to pick from 2-4 options

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Omniscient

全知全能技能 — 整合认知套件、执行框架、系统控制三大能力层,并配备编排引擎。 认知层:四种思维操作码(直用/改进/迁移/构建)覆盖所有思考任务; 执行层:大语言模型 + 命令执行工具,自动化代码生成与脚本执行; 操控层:Windows桌面软件、系统硬件、串口设备、物联网平台、图形界面自动化、蓝牙设备、GPU显卡...

Registry SourceRecently Updated
General

系统清理技能

定期清理OpenClaw系统中的备份、临时及会话文件,分析磁盘使用并检查系统状态,优化系统性能。

Registry SourceRecently Updated
General

Whoislookup

Look up domain WHOIS registration info — registrar, creation date, expiry date, nameservers, and domain status. Use when asked to check who owns a domain, wh...

Registry SourceRecently Updated
General

WayinVideo - Find Moments in the Video

Find specific moments in a video using a natural language query. Ideal for locating particular scenes, topics, or events in long videos (e.g., “the part wher...

Registry SourceRecently Updated