Skip to content

Closed Alpha

FluxPlay is currently in Closed Alpha. This documentation is a work in progress and may be incomplete or out of date. Features, UI, and APIs are subject to change without notice. For access inquiries, please contact [email protected].

EXTERNAL ACTIONS

Add custom action buttons to media detail pages that link to external tools and services. Three action types, flexible URL templates, and SSRF protection built in.

Extend the Detail Page

External actions appear as buttons in the action toolbar on media detail pages. They let you deep-link into tools like Radarr, Sonarr, Ombi, IMDB, Trakt, or any custom internal service — constructed dynamically from item metadata.

Capabilities

Link Type

Opens the constructed URL in a new browser tab. The simplest action type — ideal for IMDB, Letterboxd, or custom dashboards.

Iframe Type

Renders the URL in an embedded panel on the media detail page. Useful for displaying complementary information inline.

Window Type

Opens the URL in a configurable popup window with defined dimensions. Good for tools that need their own viewport.

URL Templates

Use template variables like {title}, {year}, {imdbId}, {tmdbId} that are substituted with actual item metadata at click time.

SSRF Protection

URL templates are validated on save. Internal IP ranges, localhost, and cloud metadata endpoints are blocked.

Media Placements

Choose which detail pages show the action: Movie Detail, TV Show Detail, Season Detail, Episode Detail, Album Detail, Track Detail.

Action Types

Link

Opens the URL in a new browser tab. The constructed URL replaces all template variables before the tab is opened.

https://www.imdb.com/title/{imdbId}/
Iframe

Renders the URL inside an embedded panel. The target site must not send X-Frame-Options: DENY. Height is configurable.

https://www.themoviedb.org/movie/{tmdbId}
Window

Opens a popup window with configurable width and height. Useful for companion tools that need their own viewport.

https://internal.tool.local/media?id={tmdbId}

URL Template Variables

Variables are substituted at click time with the actual values from the media item's metadata. If a variable is not available for an item (e.g. {imdbId} on a music track), the action button is hidden for that item type.

VariableDescription
{title}The item title (URL-encoded)
{originalTitle}Original language title, if different
{year}Release year (4 digits)
{imdbId}IMDb ID (e.g. tt1234567)
{tmdbId}TMDB numeric ID
{tvdbId}TVDB numeric ID
{season}Season number (TV only)
{episode}Episode number (TV only)
{mbId}MusicBrainz ID (music only)

SSRF Protection

When an admin saves an external action, the base URL is validated against the SSRF protection rules. URLs that resolve to private IP ranges (RFC1918), loopback addresses, link-local ranges, or cloud metadata endpoints (169.254.169.254) are rejected. This prevents external actions from being used to probe internal services.

Blocked destination ranges

  • 127.0.0.0/8 — Loopback
  • 10.0.0.0/8 — RFC1918 private
  • 172.16.0.0/12 — RFC1918 private
  • 192.168.0.0/16 — RFC1918 private
  • 169.254.0.0/16 — Link-local / cloud metadata
  • ::1/128 — IPv6 loopback
  • fc00::/7 — IPv6 unique local

Admin Setup

External actions are configured under Admin → External Actions. Each action has a name, icon, action type, URL template, and placement list. Actions can be enabled or disabled without deletion. The display order on the detail page is controlled by a drag-and-drop order field.