{% extends "base.html" %} {% block title %}{{ _('Integrations') }} — MediaForge{% endblock %} {% import "_settings_card_macro.html" as ext %} {% block styles %} {# sources.css carries the drag-and-drop order-row styles reused by the CineInfo provider-order list below (same rows as Settings › Sources). #} {% endblock %} {% block content %}
{# Brand-new tabs requested by a registered extension whose settings_tab doesn't match one of the ids above (see registry.py's resolve_dynamic_tabs / _KNOWN_TABS). No template edit needed to add one — see the matching panel loop after the UpTime tab below. #} {% for t in get_dynamic_tabs('integrations') %} {% endfor %}

{{ _('Seerr Integration') }}

{{ _('Connect MediaForge with your Jellyseerr or Overseerr instance. Pending requests will appear under "Seerr Requests".') }}
{# Extensions attaching to this existing tab (settings_host="integrations", settings_tab="seerr") — see register_thirdparty() in registry.py. #} {% for card in get_settings_cards('integrations', 'seerr') %} {{ ext.render_settings_card(card) }} {% endfor %}

Mediaplayer Jellyfin / Plex

{{ _('After every completed download, a library refresh is automatically triggered on the selected server.') }}
{{ _('Service') }}
{{ _('Which media server should MediaForge use?') }}

MediaScan Plex / Jellyfin

{{ _('Detects whether a series is already in your Plex or Jellyfin library and shows the ✓ Present badge on the home page. Connection data is automatically taken from the Mediaplayer integration.') }}
{{ _('Enable') }}
{{ _('Presence detection via library instead of folder scan') }}
{% for card in get_settings_cards('integrations', 'mediaplayer') %} {{ ext.render_settings_card(card) }} {% endfor %}

CineInfo TMDB

{{ _('Shows streaming providers, genres and age rating on the home page and in the detail modal. Requires a free API key from') }} themoviedb.org. {{ _('Without a key, CineInfo is automatically inactive.') }}
{{ _('Advanced TMDB Search') }}
{{ _('Shows a menu item in the sidebar for advanced search including genres and keywords.') }}
{{ _('Calendar View') }}
{{ _('Shows a sidebar menu item with upcoming episode air dates for your AutoSync jobs based on TMDB data.') }}
{{ _('↳ Show Seerr requests in calendar') }}
{{ _('Adds open Seerr requests to the calendar based on their TMDB air/release dates.') }}
{{ _('↳ Show Media Library series in calendar') }}
{{ _('Adds series from your Media Library to the calendar.') }}
{{ _('↳ Calendar refresh interval') }}
{{ _('How often to refresh existing calendar data from TMDB (in hours).') }}

{{ _('Display Options') }}

{{ _('Streaming Providers') }}
{{ _('1 provider on the card · all in the modal below the title') }}
{{ _('Provider order') }}
{{ _('Which source may show its provider pill first. The first source that knows the title wins; the others are skipped. Modules that register their own pill appear here automatically.') }}
{{ _('Age Rating (FSK)') }}
{{ _('FSK badge on the card and centered below the cover in the modal') }}
{{ _('TMDB Genres') }}
{{ _('Replaces the original site genres in the modal with TMDB genres (e.g. Action, Fantasy)') }}
{{ _('Rating') }}
{{ _('Shows the TMDB user rating as a badge next to the series title in the modal') }}
{{ _('Similar Series (Recommendations)') }}
{{ _('Shows a list of similar series based on TMDB below the episodes') }}
{{ _('Show trailer') }}
{{ _('Shows a YouTube trailer in the series detail modal (if available)') }}
{{ _('Hover Effects') }} Design
{{ _('These options control which info is shown when hovering over a series card on the home page.') }}
{{ _('Show rating') }}
{{ _('Shows the TMDB rating when hovering on the home page') }}
{{ _('Show genres') }}
{{ _('Shows the TMDB genres when hovering on the home page') }}
{{ _('Show age rating') }}
{{ _('Shows the age rating when hovering on the home page') }}
{{ _('Cache Options') }} {{ _('ATTENTION') }}
{{ _('Clear cache & reload') }}
{{ _('Deletes all stored TMDB data and restarts the preloading process. Also clears cached Fernsehserien.de provider lookups. Useful when info is outdated or after an API key change.') }}
{{ _('Metadata is preloaded in the background and cached in the database for 24 h. Fernsehserien.de provider lookups are cached for 24 h as well.') }}
{% for card in get_settings_cards('integrations', 'cineinfo') %} {{ ext.render_settings_card(card) }} {% endfor %}
{% for card in thirdparty_cards %} {{ ext.render_settings_card(card) }} {% endfor %}

SyncPlay {{ _('Watch Together') }}

{{ _('Watch films and series together, perfectly in sync across phone, tablet and PC. Everyone connects to this instance — no third-party server. Invited guests can join via a link without an account.') }}
{{ _('Enable SyncPlay') }}
{{ _('Adds a SyncPlay entry to the sidebar and lets you start watch-together rooms.') }}
{% for card in get_settings_cards('integrations', 'syncplay') %} {{ ext.render_settings_card(card) }} {% endfor %}

UpTime {{ _('Monitoring') }}

{{ _('Continuously monitors your source sites — reachability and real-site verification, the same check used in the DNS diagnostics. When enabled, an "UpTime" entry appears in the sidebar with an Uptime-Kuma-style dashboard (online/offline, uptime percentage, response time, heartbeat history).') }}
{{ _('Enable UpTime monitoring') }}
{{ _('Adds an UpTime entry to the sidebar and starts the background monitor.') }}
{% for card in get_settings_cards('integrations', 'uptime') %} {{ ext.render_settings_card(card) }} {% endfor %}
{% for t in get_dynamic_tabs('integrations') %}
{% for card in get_settings_cards('integrations', t.id) %} {{ ext.render_settings_card(card) }} {% endfor %}
{% endfor %}
{% endblock %}